##// END OF EJS Templates
Download as always starts downloads in new window/tab...
Download as always starts downloads in new window/tab This is a slightly worse user experience if it succeeds, because the new tab flashes up before closing again, but it will let us display an informative error page if it fails, without navigating the user away from the interactive notebook view.

File last commit:

r8262:99483a20
r13838:19c6ee99
Show More
test_octavemagic.py
85 lines | 2.2 KiB | text/x-python | PythonLexer
Stefan van der Walt
Add tests.
r7383 """Tests for Octave magics extension."""
import nose.tools as nt
try:
import oct2py
import numpy as np
import numpy.testing as npt
from IPython.extensions import octavemagic
Matthias BUSSONNIER
conform to pep 3110...
r7787 except Exception as e:
Stefan van der Walt
Add tests.
r7383 __test__ = False
global octave
def setup():
ip = get_ipython()
global octave
octave = octavemagic.OctaveMagics(ip)
ip.register_magics(octave)
ip.ex('import numpy as np')
def test_octave_inline():
ip = get_ipython()
result = ip.run_line_magic('octave', '[1, 2, 3] + 1;')
npt.assert_array_equal(result, [[2, 3, 4]])
def test_octave_roundtrip():
ip = get_ipython()
ip.ex('x = np.arange(3); y = 4.5')
ip.run_line_magic('octave_push', 'x y')
ip.run_line_magic('octave', 'x = x + 1; y = y + 1;')
ip.run_line_magic('octave_pull', 'x y')
npt.assert_array_equal(ip.user_ns['x'], [[1, 2, 3]])
nt.assert_equal(ip.user_ns['y'], 5.5)
def test_octave_cell_magic():
ip = get_ipython()
ip.ex('x = 3; y = [1, 2]')
ip.run_cell_magic('octave', '-f png -s 400,400 -i x,y -o z',
'z = x + y;')
npt.assert_array_equal(ip.user_ns['z'], [[4, 5]])
def verify_publish_data(source, data):
if 'image/svg+xml' in data:
svg = data['image/svg+xml']
assert 'height="500px"' in svg
assert 'width="400px"' in svg
test_octave_plot.svgs_generated += 1
def test_octave_plot():
octave._publish_display_data = verify_publish_data
test_octave_plot.svgs_generated = 0
ip = get_ipython()
ip.run_cell_magic('octave', '-f svg -s 400,500',
'plot([1, 2, 3]); figure; plot([4, 5, 6]);')
nt.assert_equal(test_octave_plot.svgs_generated, 2)
Guy Haskin Fernald
Added functionality to %R and %octave magics so that -i first looks in local...
r8262
def test_octavemagic_localscope():
ip = get_ipython()
ip.magic('load_ext octavemagic')
ip.push({'x':0})
ip.run_line_magic('octave', '-i x -o result result = x+1')
result = ip.user_ns['result']
nt.assert_equal(result, 1)
ip.run_cell('''def octavemagic_addone(u):
%octave -i u -o result result = u+1
return result''')
ip.run_cell('result = octavemagic_addone(1)')
result = ip.user_ns['result']
nt.assert_equal(result, 2)
nt.assert_raises(
KeyError,
ip.run_line_magic,
"octave",
"-i var_not_defined 1+1")