class DTypeResolverTest(unittest.TestCase): def setUp(self): self.__typeResolver = DTypeResolver() def test_basic(self): result = self.__typeResolver.resolve( 'injecta.parameter.ParametersParser') self.assertEqual( DType('injecta.parameter.ParametersParser', 'ParametersParser'), result) def test_classic(self): result = self.__typeResolver.resolve('importlib.util.LazyLoader') self.assertEqual(DType('importlib.util', 'LazyLoader'), result)
class ValueResolverFactory: def __init__(self): self.__d_type_resolver = DTypeResolver() def create(self, val) -> ValueResolverInterface: resolver_type = self.__d_type_resolver.resolve(val["resolver_class"]) resolver_class = attribute_loader.load(resolver_type.module_name, resolver_type.class_name) resolver_arguments = val[ "resolver_arguments"] if "resolver_arguments" in val else [] return resolver_class(*resolver_arguments)