summaryrefslogtreecommitdiffstats
path: root/contrib/tools/cython/Cython/Build/Tests/TestIpythonMagic.py
diff options
context:
space:
mode:
authorAleksandr <[email protected]>2022-02-10 16:47:52 +0300
committerDaniil Cherednik <[email protected]>2022-02-10 16:47:52 +0300
commitb05913d1c3c02a773578bceb7285084d2933ae86 (patch)
treec0748b5dcbade83af788c0abfa89c0383d6b779c /contrib/tools/cython/Cython/Build/Tests/TestIpythonMagic.py
parentea6c5b7f172becca389cacaff7d5f45f6adccbe6 (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.py190
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)