| | |
| | """ |
| | Tests for testing.tools |
| | """ |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| |
|
| | import os |
| | import unittest |
| |
|
| | from IPython.testing import decorators as dec |
| | from IPython.testing import tools as tt |
| |
|
| | |
| | |
| | |
| |
|
| | @dec.skip_win32 |
| | def test_full_path_posix(): |
| | spath = "/foo/bar.py" |
| | result = tt.full_path(spath, ["a.txt", "b.txt"]) |
| | assert result, ["/foo/a.txt" == "/foo/b.txt"] |
| | spath = "/foo" |
| | result = tt.full_path(spath, ["a.txt", "b.txt"]) |
| | assert result, ["/a.txt" == "/b.txt"] |
| | result = tt.full_path(spath, "a.txt") |
| | assert result == ["/a.txt"] |
| |
|
| |
|
| | @dec.skip_if_not_win32 |
| | def test_full_path_win32(): |
| | spath = "c:\\foo\\bar.py" |
| | result = tt.full_path(spath, ["a.txt", "b.txt"]) |
| | assert result, ["c:\\foo\\a.txt" == "c:\\foo\\b.txt"] |
| | spath = "c:\\foo" |
| | result = tt.full_path(spath, ["a.txt", "b.txt"]) |
| | assert result, ["c:\\a.txt" == "c:\\b.txt"] |
| | result = tt.full_path(spath, "a.txt") |
| | assert result == ["c:\\a.txt"] |
| |
|
| | |
| | def test_parser(): |
| | err = ("FAILED (errors=1)", 1, 0) |
| | fail = ("FAILED (failures=1)", 0, 1) |
| | both = ("FAILED (errors=1, failures=1)", 1, 1) |
| | for txt, nerr, nfail in [err, fail, both]: |
| | nerr1, nfail1 = tt.parse_test_output(txt) |
| | assert nerr == nerr1 |
| | assert nfail == nfail1 |
| |
|
| |
|
| | def test_temp_pyfile(): |
| | src = 'pass\n' |
| | fname = tt.temp_pyfile(src) |
| | assert os.path.isfile(fname) |
| | with open(fname, encoding="utf-8") as fh2: |
| | src2 = fh2.read() |
| | assert src2 == src |
| |
|
| | class TestAssertPrints(unittest.TestCase): |
| | def test_passing(self): |
| | with tt.AssertPrints("abc"): |
| | print("abcd") |
| | print("def") |
| | print(b"ghi") |
| | |
| | def test_failing(self): |
| | def func(): |
| | with tt.AssertPrints("abc"): |
| | print("acd") |
| | print("def") |
| | print(b"ghi") |
| | |
| | self.assertRaises(AssertionError, func) |
| |
|
| |
|
| | class Test_ipexec_validate(tt.TempFileMixin): |
| | def test_main_path(self): |
| | """Test with only stdout results. |
| | """ |
| | self.mktmp("print('A')\n" |
| | "print('B')\n" |
| | ) |
| | out = "A\nB" |
| | tt.ipexec_validate(self.fname, out) |
| |
|
| | def test_main_path2(self): |
| | """Test with only stdout results, expecting windows line endings. |
| | """ |
| | self.mktmp("print('A')\n" |
| | "print('B')\n" |
| | ) |
| | out = "A\r\nB" |
| | tt.ipexec_validate(self.fname, out) |
| |
|
| | def test_exception_path(self): |
| | """Test exception path in exception_validate. |
| | """ |
| | self.mktmp("import sys\n" |
| | "print('A')\n" |
| | "print('B')\n" |
| | "print('C', file=sys.stderr)\n" |
| | "print('D', file=sys.stderr)\n" |
| | ) |
| | out = "A\nB" |
| | tt.ipexec_validate(self.fname, expected_out=out, expected_err="C\nD") |
| |
|
| | def test_exception_path2(self): |
| | """Test exception path in exception_validate, expecting windows line endings. |
| | """ |
| | self.mktmp("import sys\n" |
| | "print('A')\n" |
| | "print('B')\n" |
| | "print('C', file=sys.stderr)\n" |
| | "print('D', file=sys.stderr)\n" |
| | ) |
| | out = "A\r\nB" |
| | tt.ipexec_validate(self.fname, expected_out=out, expected_err="C\r\nD") |
| |
|
| |
|
| | def tearDown(self): |
| | |
| | |
| | tt.TempFileMixin.tearDown(self) |
| |
|