예제 #1
0
	def test_shared(self):
		class AClass(object):
			pass

		di = DI()
		di.attempt(AClass, shared=True)

		assert di.get(AClass) == di.get(AClass)
예제 #2
0
	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"
예제 #3
0
    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"
예제 #4
0
    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
예제 #5
0
	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
예제 #6
0
    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
예제 #7
0
    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)
예제 #8
0
	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
예제 #9
0
    def test_shared(self):
        class AClass(object):
            pass

        di = DI()
        di.attempt(AClass, shared=True)

        assert di.get(AClass) == di.get(AClass)
예제 #10
0
	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)
예제 #11
0
    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"
예제 #12
0
	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"
예제 #13
0
    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"
예제 #14
0
	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"
예제 #15
0
    def test_dummy(self):
        di = DI()

        assert di.get(DI) == di
예제 #16
0
	def test_dummy(self):
		di = DI()

		assert di.get(DI) == di
예제 #17
0
#    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__))
예제 #18
0
from NoJoy_DI.di import DI
from NoJoy_DI.patterns import DefaultPattern, BorgPattern

class MyVariableSvc(object):
    var = "var"

class AService(object):
    def __init__(self, param:MyVariableSvc):
        super(AService, self).__init__()
        print("MyService.__init__: %s" % param.__class__.__name__)

    def some_method(self, param:MyVariableSvc):
        print("MyService.some_method: %s" % param.__class__.__name__)

di = DI()
mydict = {'className':'SomeClass',
          '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)
예제 #19
0
		print("I am: ", self.__class__)


class AService(object):
	a = None
	b = None
	def __init__(self, param:VarClass):
		super(AService, self).__init__()
		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)
예제 #20
0

class MyVariableSvc(object):
    var = "var"


class AService(object):
    def __init__(self, param: MyVariableSvc):
        super(AService, self).__init__()
        print(("MyService.__init__: %s" % param.__class__.__name__))

    def some_method(self, param: MyVariableSvc):
        print(("MyService.some_method: %s" % param.__class__.__name__))


di = DI()
mydict = {
    'className':
    'SomeClass',
    'properties': [{
        'name': 'response',
        'value': {
            'type': 'service',
            'name': 'response'
        }
    }, {
        'name': 'someFlag',
        'value': {
            'type': 'paramter',
            'value': True
        }
예제 #21
0
		print(("I am: ", self.__class__))


class AService(object):
	a = None
	b = None
	def __init__(self, param:VarClass):
		super(AService, self).__init__()
		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)