Example #1
0
 def test_iterable(self):
     self.assertEqual(
         '[{nl:<5}1,{nl:<5}2,{nl:<5}3,\n'
         ']'.format(nl='\n'),
         logwrap.pretty_str([1, 2, 3]),
     )
     self.assertEqual(
         '({nl:<5}1,{nl:<5}2,{nl:<5}3,\n'
         ')'.format(nl='\n'),
         logwrap.pretty_str((1, 2, 3)),
     )
     res = logwrap.pretty_str({1, 2, 3})
     self.assertTrue(res.startswith('{') and res.endswith('\n}'))
     res = logwrap.pretty_str(frozenset({1, 2, 3}))
     self.assertTrue(res.startswith('{') and res.endswith('\n}'))
Example #2
0
 def test_iterable(self):
     self.assertEqual(
         "[{nl:<5}1,{nl:<5}2,{nl:<5}3,\n"
         "]".format(nl="\n"),
         logwrap.pretty_str([1, 2, 3]),
     )
     self.assertEqual(
         "({nl:<5}1,{nl:<5}2,{nl:<5}3,\n"
         ")".format(nl="\n"),
         logwrap.pretty_str((1, 2, 3)),
     )
     res = logwrap.pretty_str({1, 2, 3})
     self.assertTrue(res.startswith("{") and res.endswith("\n}"))
     res = logwrap.pretty_str(frozenset({1, 2, 3}))
     self.assertTrue(res.startswith("{") and res.endswith("\n}"))
Example #3
0
    def test_003_complex(self):
        fmt = "\n{spc:<{indent}}<{obj!r} with interface ({args}){annotation}>".format
        namespace = {}

        exec("""
import typing
def func(a: typing.Optional[int]=None) -> None:
    pass
                                """,
             namespace
             )
        func = namespace['func']  # type: typing.Callable[..., None]

        self.assertEqual(
            logwrap.pretty_repr(func),
            fmt(
                spc='',
                indent=0,
                obj=func,
                args="\n    a: typing.Union[int, NoneType]=None,\n",
                annotation=" -> None"
            )
        )

        self.assertEqual(
            logwrap.pretty_str(func),
            fmt(
                spc='',
                indent=0,
                obj=func,
                args="\n    a: typing.Union[int, NoneType]=None,\n",
                annotation=" -> None"
            )
        )
Example #4
0
    def test_002_annotation_return(self):
        fmt = "\n{spc:<{indent}}<{obj!r} with interface ({args}){annotation}>".format
        namespace = {}

        exec("""
import typing
def func() -> None:
    pass
                                """,
             namespace
             )
        func = namespace['func']  # type: typing.Callable[[], None]

        self.assertEqual(
            logwrap.pretty_repr(func),
            fmt(
                spc='',
                indent=0,
                obj=func,
                args='',
                annotation=' -> None'
            )
        )

        self.assertEqual(
            logwrap.pretty_str(func),
            fmt(
                spc='',
                indent=0,
                obj=func,
                args='',
                annotation=' -> None'
            )
        )
Example #5
0
    def test_002_typing_specific_dict(self):
        class MyDict(typing.Dict[str, str]):
            """Dict subclass."""

        val = MyDict(key="value")
        self.assertEqual("MyDict({\n" "    'key': 'value',\n" "})", logwrap.pretty_repr(val))

        self.assertEqual("{\n" "    key: value,\n" "}", logwrap.pretty_str(val))
Example #6
0
    def test_001_dict_subclass(self):
        class MyDict(dict):
            """Dict subclass."""

        val = MyDict(key="value")
        self.assertEqual("MyDict({\n" "    'key': 'value',\n" "})", logwrap.pretty_repr(val))

        self.assertEqual("{\n" "    key: value,\n" "}", logwrap.pretty_str(val))
Example #7
0
    def test_003_typed_dict(self):
        # noinspection PyMissingOrEmptyDocstring
        class MyDict(typing.TypedDict):
            key: str

        val = MyDict(key="value")
        self.assertEqual("{\n" "    'key': 'value',\n" "}", logwrap.pretty_repr(val))

        self.assertEqual("{\n" "    key: value,\n" "}", logwrap.pretty_str(val))
Example #8
0
    def test_002_annotation_return(self):
        fmt = "\n{spc:<{indent}}<{obj!r} with interface ({args}){annotation}>".format

        def func() -> None:
            pass

        self.assertEqual(
            logwrap.pretty_repr(func),
            fmt(spc='', indent=0, obj=func, args='', annotation=' -> None'))

        self.assertEqual(
            logwrap.pretty_str(func),
            fmt(spc='', indent=0, obj=func, args='', annotation=' -> None'))
Example #9
0
 def test_dict(self):
     self.assertEqual(
         '{\n'
         '    1 : 1,\n'
         '    2 : 2,\n'
         '    33: 33,\n'
         '}',
         logwrap.pretty_str({
             1: 1,
             2: 2,
             33: 33
         }),
     )
Example #10
0
 def test_dict(self):
     self.assertEqual(
         "{\n"
         "    1 : 1,\n"
         "    2 : 2,\n"
         "    33: 33,\n"
         "}",
         logwrap.pretty_str({
             1: 1,
             2: 2,
             33: 33
         }),
     )
Example #11
0
    def test_magic_override(self):
        # noinspection PyMissingOrEmptyDocstring
        class Tst(object):
            def __str__(self):
                return 'Test'

            # noinspection PyMethodMayBeStatic
            def __pretty_str__(self, parser, indent, no_indent_start):
                return parser.process_element("Test Class",
                                              indent=indent,
                                              no_indent_start=no_indent_start)

        result = logwrap.pretty_str(Tst())
        self.assertNotEqual(result, 'Test')
        self.assertEqual(result, "Test Class".format(id(Tst)))
Example #12
0
    def test_003_complex(self):
        fmt = "\n{spc:<{indent}}<{obj!r} with interface ({args}){annotation}>".format

        def func(a: typing.Optional[int] = None) -> None:
            pass

        self.assertEqual(
            logwrap.pretty_repr(func),
            fmt(spc='',
                indent=0,
                obj=func,
                args="\n    a: typing.Union[int, NoneType]=None,\n",
                annotation=" -> None"))

        self.assertEqual(
            logwrap.pretty_str(func),
            fmt(spc='',
                indent=0,
                obj=func,
                args="\n    a: typing.Union[int, NoneType]=None,\n",
                annotation=" -> None"))
Example #13
0
    def test_callable(self):
        fmt = "\n{spc:<{indent}}<{obj!s} with interface ({args})>".format

        def empty_func():
            pass

        def full_func(arg, darg=1, *positional, **named):
            pass

        # noinspection PyMissingOrEmptyDocstring
        class TstClass(object):
            def tst_method(self, arg, darg=1, *positional, **named):
                pass

            @classmethod
            def tst_classmethod(cls, arg, darg=1, *positional, **named):
                pass

        tst_instance = TstClass()

        self.assertEqual(logwrap.pretty_str(empty_func),
                         fmt(spc='', indent=0, obj=empty_func, args=''))

        self.assertEqual(
            logwrap.pretty_str(full_func),
            fmt(spc='',
                indent=0,
                obj=full_func,
                args='\n'
                '    arg,\n'
                '    darg=1,\n'
                '    *positional,\n'
                '    **named,\n'))

        obj = TstClass.tst_method

        self.assertEqual(
            logwrap.pretty_str(obj),
            fmt(spc='',
                indent=0,
                obj=obj,
                args='\n'
                '    self,\n'
                '    arg,\n'
                '    darg=1,\n'
                '    *positional,\n'
                '    **named,\n'))

        obj = TstClass.tst_classmethod

        self.assertEqual(
            logwrap.pretty_str(obj),
            fmt(spc='',
                indent=0,
                obj=obj,
                args='\n'
                '    cls={cls!r},\n'
                '    arg,\n'
                '    darg=1,\n'
                '    *positional,\n'
                '    **named,\n'.format(cls=TstClass)))

        obj = tst_instance.tst_method

        self.assertEqual(
            logwrap.pretty_str(obj),
            fmt(spc='',
                indent=0,
                obj=obj,
                args='\n'
                '    self={self!r},\n'
                '    arg,\n'
                '    darg=1,\n'
                '    *positional,\n'
                '    **named,\n'.format(self=tst_instance)))

        obj = tst_instance.tst_classmethod

        self.assertEqual(
            logwrap.pretty_str(obj),
            fmt(spc='',
                indent=0,
                obj=obj,
                args='\n'
                '    cls={cls!r},\n'
                '    arg,\n'
                '    darg=1,\n'
                '    *positional,\n'
                '    **named,\n'.format(cls=TstClass)))
Example #14
0
 def test_simple_set(self):
     self.assertEqual(logwrap.pretty_str(set()), 'set()')
Example #15
0
 def test_text(self):
     self.assertEqual(logwrap.pretty_str('Unicode text'), "Unicode text")
     self.assertEqual(logwrap.pretty_str(b'bytes text\x01'),
                      "bytes text\x01")
Example #16
0
 def test_simple(self):
     self.assertEqual(logwrap.pretty_str(True), str(True))
Example #17
0
 def test_py2_compatibility_flag(self):
     self.assertIsInstance(logwrap.pretty_str(u'Text', py2_str=True), str)