##// END OF EJS Templates
Merge pull request #2231 from Carreau/ja...
Merge pull request #2231 from Carreau/ja Improve Image format validation and add html width,height This addresses the first two bullets of #2053 Validates first argument to constrain format to png, jpeg, Lets user specify width, height, or both and emits appropriate html I introduced a couple of class constants to minimize the number of times I saw 'jpeg' and 'png' and document the _ACCEPTABLE_FORMATS. I added one real jpeg image to the test directory and one zero-length gif file to survive the file not found error in super() Closes #2053 Add `assert_is_none`, `assert_is_not_none` to `nose.tools`

File last commit:

r8099:b4231a49
r8116:19feb23c merge
Show More
test_ultratb.py
51 lines | 1.5 KiB | text/x-python | PythonLexer
"""Tests for IPython.core.ultratb
"""
import os.path
import unittest
from IPython.testing import tools as tt
from IPython.utils.syspathcontext import prepended_to_syspath
from IPython.utils.tempdir import TemporaryDirectory
ip = get_ipython()
file_1 = """1
2
3
def f():
1/0
"""
file_2 = """def f():
1/0
"""
class ChangedPyFileTest(unittest.TestCase):
def test_changing_py_file(self):
"""Traceback produced if the line where the error occurred is missing?
https://github.com/ipython/ipython/issues/1456
"""
with TemporaryDirectory() as td:
fname = os.path.join(td, "foo.py")
with open(fname, "w") as f:
f.write(file_1)
with prepended_to_syspath(td):
ip.run_cell("import foo")
with tt.AssertPrints("ZeroDivisionError"):
ip.run_cell("foo.f()")
# Make the file shorter, so the line of the error is missing.
with open(fname, "w") as f:
f.write(file_2)
# For some reason, this was failing on the *second* call after
# changing the file, so we call f() twice.
with tt.AssertNotPrints("Internal Python error", channel='stderr'):
with tt.AssertPrints("ZeroDivisionError"):
ip.run_cell("foo.f()")
with tt.AssertPrints("ZeroDivisionError"):
ip.run_cell("foo.f()")