From 1e8e17c01e6bd36ce2c70dd161e2279c3fcbaaf5 Mon Sep 17 00:00:00 2001 From: Anthony Sottile Date: Sun, 26 Aug 2018 16:13:22 -0700 Subject: [PATCH] Improve the coverage of testing/code --- testing/code/test_code.py | 29 +++++++++++++++-------------- testing/code/test_source.py | 13 +++++-------- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/testing/code/test_code.py b/testing/code/test_code.py index f7a8a4dbd..d1ae648c8 100644 --- a/testing/code/test_code.py +++ b/testing/code/test_code.py @@ -32,10 +32,8 @@ def test_code_with_class(): pytest.raises(TypeError, "_pytest._code.Code(A)") -if True: - - def x(): - pass +def x(): + raise NotImplementedError() def test_code_fullsource(): @@ -48,7 +46,7 @@ def test_code_source(): code = _pytest._code.Code(x) src = code.source() expected = """def x(): - pass""" + raise NotImplementedError()""" assert str(src) == expected @@ -85,9 +83,9 @@ def test_unicode_handling(): raise Exception(value) excinfo = pytest.raises(Exception, f) - str(excinfo) - if sys.version_info[0] < 3: - text_type(excinfo) + text_type(excinfo) + if sys.version_info < (3,): + bytes(excinfo) @pytest.mark.skipif(sys.version_info[0] >= 3, reason="python 2 only issue") @@ -105,25 +103,25 @@ def test_unicode_handling_syntax_error(): def test_code_getargs(): def f1(x): - pass + raise NotImplementedError() c1 = _pytest._code.Code(f1) assert c1.getargs(var=True) == ("x",) def f2(x, *y): - pass + raise NotImplementedError() c2 = _pytest._code.Code(f2) assert c2.getargs(var=True) == ("x", "y") def f3(x, **z): - pass + raise NotImplementedError() c3 = _pytest._code.Code(f3) assert c3.getargs(var=True) == ("x", "z") def f4(x, *y, **z): - pass + raise NotImplementedError() c4 = _pytest._code.Code(f4) assert c4.getargs(var=True) == ("x", "y", "z") @@ -188,11 +186,14 @@ class TestReprFuncArgs(object): tw = TWMock() - args = [("unicode_string", u"São Paulo"), ("utf8_string", "S\xc3\xa3o Paulo")] + args = [("unicode_string", u"São Paulo"), ("utf8_string", b"S\xc3\xa3o Paulo")] r = ReprFuncArgs(args) r.toterminal(tw) if sys.version_info[0] >= 3: - assert tw.lines[0] == "unicode_string = São Paulo, utf8_string = São Paulo" + assert ( + tw.lines[0] + == r"unicode_string = São Paulo, utf8_string = b'S\xc3\xa3o Paulo'" + ) else: assert tw.lines[0] == "unicode_string = São Paulo, utf8_string = São Paulo" diff --git a/testing/code/test_source.py b/testing/code/test_source.py index d7e8fe422..14f06acd0 100644 --- a/testing/code/test_source.py +++ b/testing/code/test_source.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- # flake8: noqa # disable flake check on this file because some constructs are strange # or redundant on purpose and can't be disable on a line-by-line basis @@ -41,15 +42,11 @@ def test_source_str_function(): def test_unicode(): - try: - unicode - except NameError: - return - x = Source(unicode("4")) + x = Source(u"4") assert str(x) == "4" - co = _pytest._code.compile(unicode('u"\xc3\xa5"', "utf8"), mode="eval") + co = _pytest._code.compile(u'u"å"', mode="eval") val = eval(co) - assert isinstance(val, unicode) + assert isinstance(val, six.text_type) def test_source_from_function(): @@ -632,7 +629,7 @@ def test_issue55(): assert str(s) == ' round_trip("""\n""")' -def XXXtest_multiline(): +def test_multiline(): source = getstatement( 0, """\