diff options
| author | Aleksandr <[email protected]> | 2022-02-10 16:47:52 +0300 |
|---|---|---|
| committer | Daniil Cherednik <[email protected]> | 2022-02-10 16:47:52 +0300 |
| commit | b05913d1c3c02a773578bceb7285084d2933ae86 (patch) | |
| tree | c0748b5dcbade83af788c0abfa89c0383d6b779c /contrib/tools/cython/Cython/Build/Tests/TestIpythonMagic.py | |
| parent | ea6c5b7f172becca389cacaff7d5f45f6adccbe6 (diff) | |
Restoring authorship annotation for Aleksandr <[email protected]>. Commit 2 of 2.
Diffstat (limited to 'contrib/tools/cython/Cython/Build/Tests/TestIpythonMagic.py')
| -rw-r--r-- | contrib/tools/cython/Cython/Build/Tests/TestIpythonMagic.py | 190 |
1 files changed, 95 insertions, 95 deletions
diff --git a/contrib/tools/cython/Cython/Build/Tests/TestIpythonMagic.py b/contrib/tools/cython/Cython/Build/Tests/TestIpythonMagic.py index 148d320e542..24213091b26 100644 --- a/contrib/tools/cython/Cython/Build/Tests/TestIpythonMagic.py +++ b/contrib/tools/cython/Cython/Build/Tests/TestIpythonMagic.py @@ -3,26 +3,26 @@ """Tests for the Cython magics extension.""" -from __future__ import absolute_import - +from __future__ import absolute_import + import os import sys -from contextlib import contextmanager -from Cython.Build import IpythonMagic -from Cython.TestUtils import CythonTest +from contextlib import contextmanager +from Cython.Build import IpythonMagic +from Cython.TestUtils import CythonTest try: - import IPython.testing.globalipapp -except ImportError: - # Disable tests and fake helpers for initialisation below. - def skip_if_not_installed(_): - return None -else: - def skip_if_not_installed(c): - return c - + import IPython.testing.globalipapp +except ImportError: + # Disable tests and fake helpers for initialisation below. + def skip_if_not_installed(_): + return None +else: + def skip_if_not_installed(c): + return c + try: - # disable IPython history thread before it gets started to avoid having to clean it up + # disable IPython history thread before it gets started to avoid having to clean it up from IPython.core.history import HistoryManager HistoryManager.enabled = False except ImportError: @@ -42,52 +42,52 @@ def call(x): """ pgo_cython3_code = cython3_code + u"""\ -def main(): - for _ in range(100): call(5) -main() +def main(): + for _ in range(100): call(5) +main() """ - + if sys.platform == 'win32': # not using IPython's decorators here because they depend on "nose" try: from unittest import skip as skip_win32 except ImportError: # poor dev's silent @unittest.skip() - def skip_win32(dummy): - def _skip_win32(func): - return None - return _skip_win32 + def skip_win32(dummy): + def _skip_win32(func): + return None + return _skip_win32 else: - def skip_win32(dummy): - def _skip_win32(func): - def wrapper(*args, **kwargs): - func(*args, **kwargs) - return wrapper - return _skip_win32 + def skip_win32(dummy): + def _skip_win32(func): + def wrapper(*args, **kwargs): + func(*args, **kwargs) + return wrapper + return _skip_win32 -@skip_if_not_installed +@skip_if_not_installed class TestIPythonMagic(CythonTest): - @classmethod - def setUpClass(cls): - CythonTest.setUpClass() - cls._ip = IPython.testing.globalipapp.get_ipython() - + @classmethod + def setUpClass(cls): + CythonTest.setUpClass() + cls._ip = IPython.testing.globalipapp.get_ipython() + def setUp(self): CythonTest.setUp(self) - self._ip.extension_manager.load_extension('cython') + self._ip.extension_manager.load_extension('cython') def test_cython_inline(self): - ip = self._ip + ip = self._ip ip.ex('a=10; b=20') result = ip.run_cell_magic('cython_inline', '', 'return a+b') self.assertEqual(result, 30) - @skip_win32('Skip on Windows') + @skip_win32('Skip on Windows') def test_cython_pyximport(self): - ip = self._ip + ip = self._ip module_name = '_test_cython_pyximport' ip.run_cell_magic('cython_pyximport', module_name, code) ip.ex('g = f(10)') @@ -101,14 +101,14 @@ class TestIPythonMagic(CythonTest): pass def test_cython(self): - ip = self._ip + ip = self._ip ip.run_cell_magic('cython', '', code) ip.ex('g = f(10)') self.assertEqual(ip.user_ns['g'], 20.0) def test_cython_name(self): # The Cython module named 'mymodule' defines the function f. - ip = self._ip + ip = self._ip ip.run_cell_magic('cython', '--name=mymodule', code) # This module can now be imported in the interactive namespace. ip.ex('import mymodule; g = mymodule.f(10)') @@ -116,7 +116,7 @@ class TestIPythonMagic(CythonTest): def test_cython_language_level(self): # The Cython cell defines the functions f() and call(). - ip = self._ip + ip = self._ip ip.run_cell_magic('cython', '', cython3_code) ip.ex('g = f(10); h = call(10)') if sys.version_info[0] < 3: @@ -128,7 +128,7 @@ class TestIPythonMagic(CythonTest): def test_cython3(self): # The Cython cell defines the functions f() and call(). - ip = self._ip + ip = self._ip ip.run_cell_magic('cython', '-3', cython3_code) ip.ex('g = f(10); h = call(10)') self.assertEqual(ip.user_ns['g'], 2.0 / 10.0) @@ -136,24 +136,24 @@ class TestIPythonMagic(CythonTest): def test_cython2(self): # The Cython cell defines the functions f() and call(). - ip = self._ip + ip = self._ip ip.run_cell_magic('cython', '-2', cython3_code) ip.ex('g = f(10); h = call(10)') self.assertEqual(ip.user_ns['g'], 2 // 10) self.assertEqual(ip.user_ns['h'], 2 // 10) - @skip_win32('Skip on Windows') - def test_cython3_pgo(self): - # The Cython cell defines the functions f() and call(). - ip = self._ip - ip.run_cell_magic('cython', '-3 --pgo', pgo_cython3_code) - ip.ex('g = f(10); h = call(10); main()') - self.assertEqual(ip.user_ns['g'], 2.0 / 10.0) - self.assertEqual(ip.user_ns['h'], 2.0 / 10.0) - - @skip_win32('Skip on Windows') + @skip_win32('Skip on Windows') + def test_cython3_pgo(self): + # The Cython cell defines the functions f() and call(). + ip = self._ip + ip.run_cell_magic('cython', '-3 --pgo', pgo_cython3_code) + ip.ex('g = f(10); h = call(10); main()') + self.assertEqual(ip.user_ns['g'], 2.0 / 10.0) + self.assertEqual(ip.user_ns['h'], 2.0 / 10.0) + + @skip_win32('Skip on Windows') def test_extlibs(self): - ip = self._ip + ip = self._ip code = u""" from libc.math cimport sin x = sin(0.0) @@ -161,45 +161,45 @@ x = sin(0.0) ip.user_ns['x'] = 1 ip.run_cell_magic('cython', '-l m', code) self.assertEqual(ip.user_ns['x'], 0) - - - def test_cython_verbose(self): - ip = self._ip - ip.run_cell_magic('cython', '--verbose', code) - ip.ex('g = f(10)') - self.assertEqual(ip.user_ns['g'], 20.0) - - def test_cython_verbose_thresholds(self): - @contextmanager - def mock_distutils(): - class MockLog: - DEBUG = 1 - INFO = 2 - thresholds = [INFO] - - def set_threshold(self, val): - self.thresholds.append(val) - return self.thresholds[-2] - - - new_log = MockLog() - old_log = IpythonMagic.distutils.log - try: - IpythonMagic.distutils.log = new_log - yield new_log - finally: - IpythonMagic.distutils.log = old_log - - ip = self._ip - with mock_distutils() as verbose_log: - ip.run_cell_magic('cython', '--verbose', code) - ip.ex('g = f(10)') - self.assertEqual(ip.user_ns['g'], 20.0) + + + def test_cython_verbose(self): + ip = self._ip + ip.run_cell_magic('cython', '--verbose', code) + ip.ex('g = f(10)') + self.assertEqual(ip.user_ns['g'], 20.0) + + def test_cython_verbose_thresholds(self): + @contextmanager + def mock_distutils(): + class MockLog: + DEBUG = 1 + INFO = 2 + thresholds = [INFO] + + def set_threshold(self, val): + self.thresholds.append(val) + return self.thresholds[-2] + + + new_log = MockLog() + old_log = IpythonMagic.distutils.log + try: + IpythonMagic.distutils.log = new_log + yield new_log + finally: + IpythonMagic.distutils.log = old_log + + ip = self._ip + with mock_distutils() as verbose_log: + ip.run_cell_magic('cython', '--verbose', code) + ip.ex('g = f(10)') + self.assertEqual(ip.user_ns['g'], 20.0) self.assertEqual([verbose_log.INFO, verbose_log.DEBUG, verbose_log.INFO], - verbose_log.thresholds) - - with mock_distutils() as normal_log: - ip.run_cell_magic('cython', '', code) - ip.ex('g = f(10)') - self.assertEqual(ip.user_ns['g'], 20.0) + verbose_log.thresholds) + + with mock_distutils() as normal_log: + ip.run_cell_magic('cython', '', code) + ip.ex('g = f(10)') + self.assertEqual(ip.user_ns['g'], 20.0) self.assertEqual([normal_log.INFO], normal_log.thresholds) |
