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'
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]))
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]))
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]))
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
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"
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])
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
def test_codec_registry_add_dumper(test_registry): assert test_registry.dumpable(charon.CodecRegistry()) is True assert test_registry.dumpable(charon.Codec()) is False