##// END OF EJS Templates
Merge pull request #1921 from bfroehle/_1890_magic_arguments_docstring...
Merge pull request #1921 from bfroehle/_1890_magic_arguments_docstring magic_arguments: dedent but otherwise preserve indentation. Previously magic_arguments stripped all whitespace at the beginning of each line, interfering with formatting syntax which relies on indentation to give context (e.g., code blocks). Now the docstring text is passed through dedent to strip the global indentation before being handed off to `RawDescriptionHelpFormatter` which preserves any remaining indentation. Thanks to @rkern for suggesting the solution approach. Closes gh-1890.

File last commit:

r7425:4aeb2e27
r7496:673e5331 merge
Show More
test_cythonmagic.py
58 lines | 1.2 KiB | text/x-python | PythonLexer
Brian Granger
Adding simple tests for the Cython magics extension.
r7035 # -*- coding: utf-8 -*-
"""Tests for the Cython magics extension."""
import os
import nose.tools as nt
Fernando Perez
Skip external libs test on Windows, we can't seem to make it build there.
r7425 from IPython.testing import decorators as dec
Brian Granger
More code review changes:...
r7102 from IPython.utils import py3compat
Brian Granger
Adding simple tests for the Cython magics extension.
r7035
Brian Granger
More code review changes:...
r7102 code = py3compat.str_to_unicode("""def f(x):
Brian Granger
Adding simple tests for the Cython magics extension.
r7035 return 2*x
Brian Granger
More code review changes:...
r7102 """)
Brian Granger
Adding simple tests for the Cython magics extension.
r7035
try:
import Cython
except:
Brian Granger
Using better approach for skipping test if Cython no pres.
r7036 __test__ = False
Fernando Perez
Add test for external library linking.
r7420 ip = get_ipython()
Brian Granger
Using better approach for skipping test if Cython no pres.
r7036 def setup():
ip.extension_manager.load_extension('cythonmagic')
Fernando Perez
Add test for external library linking.
r7420
Brian Granger
Using better approach for skipping test if Cython no pres.
r7036 def test_cython_inline():
ip.ex('a=10; b=20')
result = ip.run_cell_magic('cython_inline','','return a+b')
nt.assert_equals(result, 30)
Fernando Perez
Add test for external library linking.
r7420
Brian Granger
Using better approach for skipping test if Cython no pres.
r7036 def test_cython_pyximport():
module_name = '_test_cython_pyximport'
ip.run_cell_magic('cython_pyximport', module_name, code)
ip.ex('g = f(10)')
nt.assert_equals(ip.user_ns['g'], 20.0)
try:
os.remove(module_name+'.pyx')
except OSError:
pass
Fernando Perez
Add test for external library linking.
r7420
Brian Granger
Using better approach for skipping test if Cython no pres.
r7036 def test_cython():
ip.run_cell_magic('cython', '', code)
ip.ex('g = f(10)')
Brian Granger
More code review changes:...
r7102 nt.assert_equals(ip.user_ns['g'], 20.0)
Brian Granger
Adding simple tests for the Cython magics extension.
r7035
Fernando Perez
Skip external libs test on Windows, we can't seem to make it build there.
r7425
@dec.skip_win32
Fernando Perez
Add test for external library linking.
r7420 def test_extlibs():
code = py3compat.str_to_unicode("""
from libc.math cimport sin
x = sin(0.0)
""")
ip.user_ns['x'] = 1
ip.run_cell_magic('cython', '-l m', code)
nt.assert_equals(ip.user_ns['x'], 0)