def test_shared(self): class AClass(object): pass di = DI() di.attempt(AClass, shared=True) assert di.get(AClass) == di.get(AClass)
def test_patternizer(self): class AClass(object): pass class AnotherClass(object): def __init__(self, dep): super(AnotherClass, self).__init__() self.dep = dep di = DI() di.attempt(AClass).set_pattern(SingletonPattern) di.attempt(AnotherClass).set_pattern(DefaultPattern).input(dep__svc=AClass) #TODO: Check for exceptions instead of valid instance assert isinstance(di.get(AnotherClass).dep, AClass) assert di.get(AnotherClass) != di.get(AnotherClass)
def test_injector(self): di = DI() class AnInjector_Class(object): def injector(self, arg): arg.injected = True def injector_input(self, input): input["arg"] = "Injected argument arg" class AClass(object): injected = False def __init__(self, arg): super(AClass, self).__init__() self.arg = arg def injected_status(self): return self.injected di.attempt(AnInjector_Class) di.attempt(AClass).injector(service=AnInjector_Class, function="injector", function_args="injector_input") obj = di.get(AClass) assert obj.arg == "Injected argument arg" assert obj.injected_status
def test_patternizer(self): class AClass(object): pass class AnotherClass(object): def __init__(self, dep): super(AnotherClass, self).__init__() self.dep = dep di = DI() di.attempt(AClass).set_pattern(SingletonPattern) di.attempt(AnotherClass).set_pattern(DefaultPattern).input( dep__svc=AClass) #TODO: Check for exceptions instead of valid instance assert isinstance(di.get(AnotherClass).dep, AClass) assert di.get(AnotherClass) != di.get(AnotherClass)
def test_constructor(self): class AClass(object): def __init__(self, constructor_argument): super(AClass, self).__init__() self.constructor_argument = constructor_argument di = DI() di.attempt(AClass).input(constructor_argument="A Constructor variable value") assert di.get(AClass).constructor_argument == "A Constructor variable value"
def test_borgtonpattern(self): class AClass(object): var = "var" di = DI() di.attempt(AClass).set_pattern(BorgPattern) obj1 = di.get(AClass) obj2 = di.get(AClass) obj1.var = "new var" assert obj1 != obj2 assert obj1.var == obj2.var
def test_constructor(self): class AClass(object): def __init__(self, constructor_argument): super(AClass, self).__init__() self.constructor_argument = constructor_argument di = DI() di.attempt(AClass).input( constructor_argument="A Constructor variable value") assert di.get( AClass).constructor_argument == "A Constructor variable value"
def test_variables(self): class AClass(object): variable = "var Value" di = DI() di.add_variable("variable", "new var value") di.attempt(AClass).set(variable__param="variable").set(additional_variable="another value") obj = di.get(AClass) print(obj.additional_variable) assert obj.variable == "new var value" assert obj.additional_variable == "another value"
def test_variables(self): class AClass(object): variable = "var Value" di = DI() di.add_variable("variable", "new var value") di.attempt(AClass).set(variable__param="variable").set( additional_variable="another value") obj = di.get(AClass) print((obj.additional_variable)) assert obj.variable == "new var value" assert obj.additional_variable == "another value"
def test_factory(self): class AFactory(object): def manufacture(self, *args, **kwargs): return AClass(*args, **kwargs) class AClass(object): def __init__(self, an_argument): super(AClass, self).__init__() self.an_argument = an_argument di = DI() di.attempt(AFactory) di.attempt(AClass).set_factory(service=AFactory, function="manufacture").input(an_argument="The Argument") obj = di.get(AClass) assert isinstance(obj, AClass) assert obj.an_argument == "The Argument"
def test_factory(self): class AFactory(object): def manufacture(self, *args, **kwargs): return AClass(*args, **kwargs) class AClass(object): def __init__(self, an_argument): super(AClass, self).__init__() self.an_argument = an_argument di = DI() di.attempt(AFactory) di.attempt(AClass).set_factory( service=AFactory, function="manufacture").input(an_argument="The Argument") obj = di.get(AClass) assert isinstance(obj, AClass) assert obj.an_argument == "The Argument"
def test_dummy(self): di = DI() assert di.get(DI) == di
# You should have received a copy of the GNU General Public License # along with Foobar. If not, see <http://www.gnu.org/licenses/>. # # Filename: by: andrek # Timesamp: 5/2/16 :: 11:36 PM from NoJoy_DI.di import DI from NoJoy_DI.patterns import BorgPattern, SingletonPattern, DefaultPattern class MyVariableSvc(object): pass class AClass(object): def __init__(self): self.b = "as" class AnotherClass(object): def __init__(self, dep): super(AnotherClass, self).__init__() self.dep = dep di = DI() di.attempt(AClass).set_pattern(SingletonPattern) di.attempt(AnotherClass).input(dep__svc=AClass).set_pattern(DefaultPattern) print((di.get(AnotherClass).__dict__))
'properties':[ {'name':'response', 'value': {'type':'service','name':'response'} }, {'name':'someFlag', 'value': {'type':'paramter','value':True} } ]} #pp = pprint.PrettyPrinter(indent=2) #pp.pprint(mydict) di.set(MyVariableSvc) myc1 = di.get(MyVariableSvc) myc2 = di.get(MyVariableSvc) myc2.var = "new_var" #c.attempt(AService).set_signature().call("some_method", True) print(myc1) print(myc2) print(myc1.var) print(myc2.var) myc3 = di.get(MyVariableSvc) myc3.var = "another_var" print(myc3) print(myc1.var) print(myc2.var) print(myc3.var) #print("Continer.get: %s" % c.get(AService).__class__.__name__)
self.a = param print("AService.__init__: %s" % param.__class__.__name__) def some_method(self, param:VarClass): self.b = param print("AService.some_method: %s" % param.__class__.__name__) di = DI() di.attempt(VarClass) di.add_variable('Variable_name', "variable_data") di.attempt(SuperSvc, True).input(obj__svc=VarClass, text__param="Variable_name", value="The DATA") di.set(VarClass) di.attempt(AService).set_signature().call("some_method", True) print("Continer.get: %s" % di.get(AService).__class__.__name__) id = di.get(SuperSvc) id2 = di.get_raw(SuperSvc) di.set(MyVariableSvc) myc1 = di.get(MyVariableSvc) myc2 = di.get(MyVariableSvc) myc2.var = "new_var" def test_answer(): """ Simple test case to verify that the classes are instantiated as expected. :return: """ assert isinstance(id2, Service)
'name': 'response' } }, { 'name': 'someFlag', 'value': { 'type': 'paramter', 'value': True } }] } #pp = pprint.PrettyPrinter(indent=2) #pp.pprint(mydict) di.set(MyVariableSvc) myc1 = di.get(MyVariableSvc) myc2 = di.get(MyVariableSvc) myc2.var = "new_var" #c.attempt(AService).set_signature().call("some_method", True) print(myc1) print(myc2) print((myc1.var)) print((myc2.var)) myc3 = di.get(MyVariableSvc) myc3.var = "another_var" print(myc3) print((myc1.var)) print((myc2.var)) print((myc3.var)) #print("Continer.get: %s" % c.get(AService).__class__.__name__)
self.a = param print(("AService.__init__: %s" % param.__class__.__name__)) def some_method(self, param:VarClass): self.b = param print(("AService.some_method: %s" % param.__class__.__name__)) di = DI() di.attempt(VarClass) di.add_variable('Variable_name', "variable_data") di.attempt(SuperSvc, True).input(obj__svc=VarClass, text__param="Variable_name", value="The DATA") di.set(VarClass) di.attempt(AService).set_signature().call("some_method", True) print(("Continer.get: %s" % di.get(AService).__class__.__name__)) id = di.get(SuperSvc) id2 = di.get_raw(SuperSvc) di.set(MyVariableSvc) myc1 = di.get(MyVariableSvc) myc2 = di.get(MyVariableSvc) myc2.var = "new_var" def test_answer(): """ Simple test case to verify that the classes are instantiated as expected. :return: """ assert isinstance(id2, Service)