Пример #1
0
def test_deferred_registration_subclass():
    """Registering a printer for BaseTestDeferredType should be resolved
    when using the subclass ConcreteTestDeferredType"""

    expected = 'Deferred type works.'

    @register_pretty('tests.test_prettyprinter.BaseTestDeferredType')
    def pretty_testdeferredtype(value, ctx):
        return expected

    assert not is_registered(
        ConcreteTestDeferredType,
        check_superclasses=False,
        register_deferred=False
    )

    assert is_registered(
        ConcreteTestDeferredType,
        check_superclasses=True,
        register_deferred=False
    )

    assert pformat(ConcreteTestDeferredType()) == expected
    assert is_registered(
        ConcreteTestDeferredType,
        check_superclasses=True,
        check_deferred=False,
        register_deferred=False
    )
    assert pformat(ConcreteTestDeferredType()) == expected
Пример #2
0
def test_deferred_registration():
    expected = 'Deferred type works.'

    assert not is_registered(TestDeferredType, register_deferred=False)

    @register_pretty('tests.test_prettyprinter.TestDeferredType')
    def pretty_testdeferredtype(value, ctx):
        return expected

    assert not is_registered(
        TestDeferredType,
        check_deferred=False,
        register_deferred=False
    )
    assert is_registered(
        TestDeferredType,
        register_deferred=False
    )

    assert pformat(TestDeferredType()) == expected

    # Printer should have been moved to non-deferred registry
    assert is_registered(
        TestDeferredType,
        check_deferred=False,
        register_deferred=False
    )
Пример #3
0
def test_is_registered():
    class MyClass:
        pass

    assert not is_registered(MyClass)

    # object is not counted as a subclass
    assert not is_registered(MyClass, check_superclasses=True)

    @register_pretty(MyClass)
    def pretty_myclass(instance, ctx):
        return '...'

    assert is_registered(MyClass)
    assert is_registered(MyClass, check_superclasses=True)
def test_mappingproxytype():
    assert is_registered(MappingProxyType,
                         check_deferred=True,
                         register_deferred=False)
    value = MappingProxyType({'a': 1, 'b': 2})
    expected = "mappingproxy({'a': 1, 'b': 2})"
    assert pformat(value, sort_dict_keys=True) == expected
def test_purepath(typ, name, args, pathstr):
    path = typ(*args)
    assert is_registered(typ, check_superclasses=True)
    assert pformat(path) == 'pathlib.{}({})'.format(name, pathstr)
    assert pformat(path, width=20) == """\
pathlib.{}(
    {}
)""".format(name, pathstr)
Пример #6
0
def test_is_registered_subclass():
    class MyList(list):
        pass

    assert not is_registered(MyList)
    assert is_registered(MyList, check_superclasses=True)
def test_exception():
    exc = ValueError(1)
    assert is_registered(ValueError, check_superclasses=True)
    assert pformat(exc) == 'ValueError(1)'
Пример #8
0
    if not check_deferred and register_deferred:
        raise ValueError(
            "register_deferred may not be True when check_deferred is False")

    if type in pretty_dispatch.registry:
        return True

    if not check_superclasses:
        return False

    return pretty_dispatch.dispatch(type) is not _BASE_DISPATCH


# Resolve deferred names and prevent them being used again.
prettyprinter.is_registered(type(_T),
                            check_superclasses=True,
                            check_deferred=True,
                            register_deferred=True)
prettyprinter.is_registered = is_registered
sys.modules[
    "prettyprinter.prettyprinter"].is_registered = is_registered  # type: ignore


@register_pretty(enum.EnumMeta)
@register_pretty(enum.Enum)
@register_pretty(enum.IntEnum)
@register_pretty(enum.Flag)
@register_pretty(enum.IntFlag)
def pretty_enum(value, ctx) -> str:
    r"""
	Pretty-prints the given :class:`~enum.Enum`.
	"""