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