Пример #1
0
def test_codec_registry_invalid_dumper_version():
    registry = charon.CodecRegistry()
    with pytest.raises(ValueError) as e:

        @registry.dumper(charon.CodecRegistry, version='a')
        def _d(data):
            return data

    assert str(e.value) == 'Version must be integer, not: str'
Пример #2
0
def test_loaders_version_test_missing():
    # pylint: disable=unused-variable
    test_registry = charon.CodecRegistry()

    @test_registry.loader(DummyClass, version=1)
    def _load_dummy_class_v1(_):
        pass

    charon.testing.ast_hash.test_loaders_version(charon.Codec([test_registry]))
Пример #3
0
def test_loaders_version_test_valid():
    # pylint: disable=unused-variable
    test_registry = charon.CodecRegistry()

    @test_registry.loader(DummyClass,
                          version=1,
                          class_hash='d2498176fad81ad017d1b0875eeeeb1b')
    def _load_dummy_class_v1(_):
        pass

    charon.testing.ast_hash.test_loaders_version(charon.Codec([test_registry]))
Пример #4
0
def test_dumpers_version_test_builtin():
    # pylint: disable=unused-variable
    test_registry = charon.CodecRegistry()

    @test_registry.dumper(set,
                          version=1,
                          class_hash='d2498176fad81ad017d1b0875eeeeb1b')
    def _load_set_v1(_):
        pass

    charon.testing.ast_hash.test_dumpers_version(charon.Codec([test_registry]))
Пример #5
0
def test_codec_registry_dumper_duplicate():
    registry = charon.CodecRegistry()

    with pytest.raises(charon.DuplicateVersion):

        @registry.dumper(charon.CodecRegistry, version=1)
        def _d(data):
            return data

        @registry.dumper(charon.CodecRegistry, version=1)
        def _d2(data):
            return data
Пример #6
0
def test_dumpers_version_test_invalid():
    # pylint: disable=unused-variable
    test_registry = charon.CodecRegistry()

    @test_registry.dumper(DummyClass, version=1, class_hash='invalid_hash')
    def _load_dummy_class_v1(_):
        pass

    with pytest.raises(AssertionError) as e:
        charon.testing.ast_hash.test_dumpers_version(
            charon.Codec([test_registry]))
    assert str(
        e.value
    ) == "DummyClass dumper has invalid hash 'invalid_hash', use `charon_ast_hash` to get current hash"
Пример #7
0
def test_codec():
    # pylint: disable=unused-variable
    test_registry = charon.CodecRegistry()

    @test_registry.dumper(DummyClass, version=1)
    def _dump_dummy_class(obj):
        return obj.version

    @test_registry.loader(DummyClass, version=1)
    def _load_dummy_class(data):
        return DummyClass(data)

    @test_registry.dumper(DummyClass2, version=1)
    def _dump_dummy_class2(obj):
        return obj.version

    @test_registry.loader(DummyClass2, version=1)
    def _load_dummy_class2(data):
        return DummyClass(data + 1)

    return charon.Codec([test_registry])
Пример #8
0
def test_registry():
    # pylint: disable=unused-variable
    registry = charon.CodecRegistry()

    @registry.dumper(charon.CodecRegistry, version=1)
    def _dump_codec_registry(data):
        return data

    @registry.loader(charon.CodecRegistry, version=1)
    def _load_codec_registry(data):
        return data

    @registry.dumper(DummyClass, version=1)
    def _dump_dummy_class(obj):
        return obj.data

    @registry.loader(DummyClass, version=1)
    def _load_dummy_class(data):
        return DummyClass(data)

    return registry
Пример #9
0
def test_codec_registry_add_dumper(test_registry):
    assert test_registry.dumpable(charon.CodecRegistry()) is True
    assert test_registry.dumpable(charon.Codec()) is False