##// END OF EJS Templates
Fix EncodingWarning on Python 3.10
Fix EncodingWarning on Python 3.10

File last commit:

r27494:23276ac4
r27494:23276ac4
Show More
test_tools.py
133 lines | 4.1 KiB | text/x-python | PythonLexer
Brian Granger
Adding test_tools.py
r1983 # encoding: utf-8
"""
Tests for testing.tools
"""
#-----------------------------------------------------------------------------
Matthias BUSSONNIER
update copyright to 2011/20xx-2011...
r5390 # Copyright (C) 2008-2011 The IPython Development Team
Brian Granger
Adding test_tools.py
r1983 #
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
import os
Thomas Kluyver
Add AssertPrints context manager to check output from tests.
r4901 import unittest
Brian Granger
Adding test_tools.py
r1983
from IPython.testing import decorators as dec
Fernando Perez
More win32 test fixes and a new test....
r2451 from IPython.testing import tools as tt
Brian Granger
Adding test_tools.py
r1983
#-----------------------------------------------------------------------------
# Tests
#-----------------------------------------------------------------------------
@dec.skip_win32
def test_full_path_posix():
Samuel Gaist
[testing][tests][tools] Remove nose
r26885 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"]
Brian Granger
Adding test_tools.py
r1983
@dec.skip_if_not_win32
def test_full_path_win32():
Samuel Gaist
[testing][tests][tools] Remove nose
r26885 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"]
Fernando Perez
Add test utility for parsing test output from stdout/stderr
r2353
Fernando Perez
More win32 test fixes and a new test....
r2451
Fernando Perez
Add test utility for parsing test output from stdout/stderr
r2353 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]:
Fernando Perez
More win32 test fixes and a new test....
r2451 nerr1, nfail1 = tt.parse_test_output(txt)
Samuel Gaist
[testing][tests][tools] Remove nose
r26885 assert nerr == nerr1
assert nfail == nfail1
Thomas Kluyver
Remove tests for parametric test machinery
r12371
Fernando Perez
More win32 test fixes and a new test....
r2451
def test_temp_pyfile():
src = 'pass\n'
Matthias Bussonnier
Do not return filehandle as unused
r25106 fname = tt.temp_pyfile(src)
Thomas Kluyver
Remove tests for parametric test machinery
r12371 assert os.path.isfile(fname)
gousaiyang
Fix EncodingWarning on Python 3.10
r27494 with open(fname, encoding='utf-8') as fh2:
Fernando Perez
More win32 test fixes and a new test....
r2451 src2 = fh2.read()
Samuel Gaist
[testing][tests][tools] Remove nose
r26885 assert src2 == src
Thomas Kluyver
Add AssertPrints context manager to check output from tests.
r4901
class TestAssertPrints(unittest.TestCase):
def test_passing(self):
with tt.AssertPrints("abc"):
Thomas Kluyver
Convert print statements to print function calls...
r13348 print("abcd")
print("def")
print(b"ghi")
Thomas Kluyver
Add AssertPrints context manager to check output from tests.
r4901
def test_failing(self):
def func():
with tt.AssertPrints("abc"):
Thomas Kluyver
Convert print statements to print function calls...
r13348 print("acd")
print("def")
print(b"ghi")
Thomas Kluyver
Add AssertPrints context manager to check output from tests.
r4901
self.assertRaises(AssertionError, func)
Jörgen Stenarson
Adding tests and another line normalization for stderr.
r8291
Matthias Bussonnier
Fix Mixin Inheritence in Xunit unittest....
r25113 class Test_ipexec_validate(tt.TempFileMixin):
Jörgen Stenarson
Adding tests and another line normalization for stderr.
r8291 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)
Jörgen Stenarson
Adding tests expecting windows lineendings.
r8293 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)
Jörgen Stenarson
Adding tests and another line normalization for stderr.
r8291 def test_exception_path(self):
"""Test exception path in exception_validate.
"""
Paul Ivanov
the __future__ is now.
r22963 self.mktmp("import sys\n"
Jörgen Stenarson
Adding tests and another line normalization for stderr.
r8291 "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")
Jörgen Stenarson
Adding tests expecting windows lineendings.
r8293
Thomas Kluyver
Remove unused imports in IPython.testing
r11133 def test_exception_path2(self):
Jörgen Stenarson
Adding tests expecting windows lineendings.
r8293 """Test exception path in exception_validate, expecting windows line endings.
"""
Paul Ivanov
the __future__ is now.
r22963 self.mktmp("import sys\n"
Jörgen Stenarson
Adding tests expecting windows lineendings.
r8293 "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")
Matthias Bussonnier
Correctly teardown test case, avoid filehandle leaking.
r22361
def tearDown(self):
# tear down correctly the mixin,
# unittest.TestCase.tearDown does nothing
tt.TempFileMixin.tearDown(self)