Show More
@@ -2064,7 +2064,7 b' class InteractiveShell(SingletonConfigurable):' | |||||
2064 | etpl = "Line magic function `%%%s` not found%s." |
|
2064 | etpl = "Line magic function `%%%s` not found%s." | |
2065 | extra = '' if cm is None else (' (But cell magic `%%%%%s` exists, ' |
|
2065 | extra = '' if cm is None else (' (But cell magic `%%%%%s` exists, ' | |
2066 | 'did you mean that instead?)' % magic_name ) |
|
2066 | 'did you mean that instead?)' % magic_name ) | |
2067 | error(etpl % (magic_name, extra)) |
|
2067 | raise UsageError(etpl % (magic_name, extra)) | |
2068 | else: |
|
2068 | else: | |
2069 | # Note: this is the distance in the stack to the user's frame. |
|
2069 | # Note: this is the distance in the stack to the user's frame. | |
2070 | # This will need to be updated if the internal calling logic gets |
|
2070 | # This will need to be updated if the internal calling logic gets | |
@@ -2101,7 +2101,7 b' class InteractiveShell(SingletonConfigurable):' | |||||
2101 | etpl = "Cell magic `%%{0}` not found{1}." |
|
2101 | etpl = "Cell magic `%%{0}` not found{1}." | |
2102 | extra = '' if lm is None else (' (But line magic `%{0}` exists, ' |
|
2102 | extra = '' if lm is None else (' (But line magic `%{0}` exists, ' | |
2103 | 'did you mean that instead?)'.format(magic_name)) |
|
2103 | 'did you mean that instead?)'.format(magic_name)) | |
2104 | error(etpl.format(magic_name, extra)) |
|
2104 | raise UsageError(etpl.format(magic_name, extra)) | |
2105 | elif cell == '': |
|
2105 | elif cell == '': | |
2106 | message = '%%{0} is a cell magic, but the cell body is empty.'.format(magic_name) |
|
2106 | message = '%%{0} is a cell magic, but the cell body is empty.'.format(magic_name) | |
2107 | if self.find_line_magic(magic_name) is not None: |
|
2107 | if self.find_line_magic(magic_name) is not None: |
@@ -80,6 +80,35 b' def test_extract_symbols_raises_exception_with_non_python_code():' | |||||
80 | with nt.assert_raises(SyntaxError): |
|
80 | with nt.assert_raises(SyntaxError): | |
81 | code.extract_symbols(source, "hello") |
|
81 | code.extract_symbols(source, "hello") | |
82 |
|
82 | |||
|
83 | ||||
|
84 | def test_magic_not_found(): | |||
|
85 | # magic not found raises UsageError | |||
|
86 | with nt.assert_raises(UsageError): | |||
|
87 | _ip.magic('doesntexist') | |||
|
88 | ||||
|
89 | # ensure result isn't success when a magic isn't found | |||
|
90 | result = _ip.run_cell('%doesntexist') | |||
|
91 | assert isinstance(result.error_in_exec, UsageError) | |||
|
92 | ||||
|
93 | ||||
|
94 | def test_cell_magic_not_found(): | |||
|
95 | # magic not found raises UsageError | |||
|
96 | with nt.assert_raises(UsageError): | |||
|
97 | _ip.run_cell_magic('doesntexist', 'line', 'cell') | |||
|
98 | ||||
|
99 | # ensure result isn't success when a magic isn't found | |||
|
100 | result = _ip.run_cell('%%doesntexist') | |||
|
101 | assert isinstance(result.error_in_exec, UsageError) | |||
|
102 | ||||
|
103 | ||||
|
104 | def test_magic_error_status(): | |||
|
105 | def fail(shell): | |||
|
106 | 1/0 | |||
|
107 | _ip.register_magic_function(fail) | |||
|
108 | result = _ip.run_cell('%fail') | |||
|
109 | assert isinstance(result.error_in_exec, ZeroDivisionError) | |||
|
110 | ||||
|
111 | ||||
83 | def test_config(): |
|
112 | def test_config(): | |
84 | """ test that config magic does not raise |
|
113 | """ test that config magic does not raise | |
85 | can happen if Configurable init is moved too early into |
|
114 | can happen if Configurable init is moved too early into |
General Comments 0
You need to be logged in to leave comments.
Login now