def test_with_new_child(new_child, extend_default_translator): item_type = 'foo' class Foo(object): pass mapping = {item_type: Foo} kwargs = {} if new_child is not None: kwargs['new_child'] = new_child translator = Translator( mapping, extend_default_translator=extend_default_translator, **kwargs) assert item_type in translator assert translator.maps[0] == {} with pytest.raises(KeyError): del translator[item_type] class Bar(Foo): pass translator.register(item_type, Bar) assert translator.get(item_type) is Bar assert mapping == {item_type: Foo}
def test_without_new_child(extend_default_translator): item_type = 'foo' class Foo(object): pass mapping = {item_type: Foo} translator = Translator( mapping, new_child=False, extend_default_translator=extend_default_translator) assert item_type in translator assert translator.maps[0] is mapping class Bar(Foo): pass translator.register(item_type, Bar) assert translator.get(item_type) is Bar assert mapping == {item_type: Bar} del translator[item_type] assert not mapping