##// END OF EJS Templates
raise UsageError on magic not found...
Min RK -
Show More
@@ -2076,7 +2076,7 b' class InteractiveShell(SingletonConfigurable):'
2076 etpl = "Line magic function `%%%s` not found%s."
2076 etpl = "Line magic function `%%%s` not found%s."
2077 extra = '' if cm is None else (' (But cell magic `%%%%%s` exists, '
2077 extra = '' if cm is None else (' (But cell magic `%%%%%s` exists, '
2078 'did you mean that instead?)' % magic_name )
2078 'did you mean that instead?)' % magic_name )
2079 error(etpl % (magic_name, extra))
2079 raise UsageError(etpl % (magic_name, extra))
2080 else:
2080 else:
2081 # Note: this is the distance in the stack to the user's frame.
2081 # Note: this is the distance in the stack to the user's frame.
2082 # This will need to be updated if the internal calling logic gets
2082 # This will need to be updated if the internal calling logic gets
@@ -2115,7 +2115,7 b' class InteractiveShell(SingletonConfigurable):'
2115 etpl = "Cell magic `%%{0}` not found{1}."
2115 etpl = "Cell magic `%%{0}` not found{1}."
2116 extra = '' if lm is None else (' (But line magic `%{0}` exists, '
2116 extra = '' if lm is None else (' (But line magic `%{0}` exists, '
2117 'did you mean that instead?)'.format(magic_name))
2117 'did you mean that instead?)'.format(magic_name))
2118 error(etpl.format(magic_name, extra))
2118 raise UsageError(etpl.format(magic_name, extra))
2119 elif cell == '':
2119 elif cell == '':
2120 message = '%%{0} is a cell magic, but the cell body is empty.'.format(magic_name)
2120 message = '%%{0} is a cell magic, but the cell body is empty.'.format(magic_name)
2121 if self.find_line_magic(magic_name) is not None:
2121 if self.find_line_magic(magic_name) is not None:
@@ -74,6 +74,35 b' def test_extract_symbols_raises_exception_with_non_python_code():'
74 with nt.assert_raises(SyntaxError):
74 with nt.assert_raises(SyntaxError):
75 code.extract_symbols(source, "hello")
75 code.extract_symbols(source, "hello")
76
76
77
78 def test_magic_not_found():
79 # magic not found raises UsageError
80 with nt.assert_raises(UsageError):
81 _ip.magic('doesntexist')
82
83 # ensure result isn't success when a magic isn't found
84 result = _ip.run_cell('%doesntexist')
85 assert isinstance(result.error_in_exec, UsageError)
86
87
88 def test_cell_magic_not_found():
89 # magic not found raises UsageError
90 with nt.assert_raises(UsageError):
91 _ip.run_cell_magic('doesntexist', 'line', 'cell')
92
93 # ensure result isn't success when a magic isn't found
94 result = _ip.run_cell('%%doesntexist')
95 assert isinstance(result.error_in_exec, UsageError)
96
97
98 def test_magic_error_status():
99 def fail(shell):
100 1/0
101 _ip.register_magic_function(fail)
102 result = _ip.run_cell('%fail')
103 assert isinstance(result.error_in_exec, ZeroDivisionError)
104
105
77 def test_config():
106 def test_config():
78 """ test that config magic does not raise
107 """ test that config magic does not raise
79 can happen if Configurable init is moved too early into
108 can happen if Configurable init is moved too early into
General Comments 0
You need to be logged in to leave comments. Login now