Example #1
0
def test():
    injector = create_injector([Module()])
    something = injector.get_instance(ISomething)
    assert isinstance(something, Something)

    something = injector.get_instance(SomethingProvider)
    assert something.injector is injector
Example #2
0
    def setup(self):
        class PeopleModule(object):
            def configure(self, binder):
                binder.bind(ch.Person, to=ch.EvilPerson)

        self.injector = create_injector([PeopleModule()])
        self.instance = self.injector.get_instance(ch.Person)
Example #3
0
 def setup(self):
     class PeopleModule(object):
         def configure(self, binder):
             binder.bind(ch.Person, to=ch.EvilPerson)
     self.injector = create_injector([PeopleModule()])
     self.provider = self.injector.get_provider(ch.Person)
     self.instance = self.provider.get()
Example #4
0
 def test_bindScope_valid_scope(self):
     this = self
     class MyModule(object):
         def configure(self, binder):
             binder.bind_scope(this.CustomScope, this.CustomScope())
             binder.bind(ch.Person, to=ch.EvilPerson)
             
     injector = create_injector([MyModule()])
     obj = injector.get_instance(ch.Person)
     assert isinstance(obj, ch.EvilPerson)
def given_an_empty_injector():

    inj = create_injector([])

    def when_requesting_an_Injector_instance():
        class Awesome(object):
            @inject(injector=Injector)
            def __init__(self, injector):
                self.injector = injector

        awesome = inj.get_instance(Awesome)

        def then_the_injector_itself_is_used():
            print awesome.injector
            assert awesome.injector is inj
Example #6
0
 def test_using_annotation_on_DictBinder(self):
     class MyDictChipsModule(object):
         def configure(self, binder):
             dictbinder = DictBinder(binder, ISnack, annotated_with='FritoLaySnackMachine')
             provider = providers.create_simple_provider(Tostitos)
             dictbinder.add_binding('Tostitos', to_provider=provider, in_scope=scopes.SINGLETON)
             dictbinder.add_binding('Ruffles', to_instance=Ruffles(), in_scope=scopes.SINGLETON)
     class MySnackMachine(object):
         @inject(snacks=Dict(ISnack))
         @annotate(snacks='FritoLaySnackMachine')
         def __init__(self, snacks):
             self.snacks = snacks
     injector = create_injector([DictChipsModule(), MyDictChipsModule()])
     snacks1 = injector.get_instance(DictSnackMachine)
     snacks2 = injector.get_instance(MySnackMachine, annotation='FritoLaySnackMachine')
     assert len(snacks2.snacks) == 2
def given_an_empty_injector():

    inj = create_injector([])

    def when_requesting_an_Injector_instance():

        class Awesome(object):
            @inject(injector=Injector)
            def __init__(self, injector):
                self.injector = injector

        awesome = inj.get_instance(Awesome)

        def then_the_injector_itself_is_used():
            print awesome.injector
            assert awesome.injector is inj
Example #8
0
 def test_that_items_are_created_in_scope(self):
     class MyDictChipsModule(object):
         def configure(self, binder):
             listbinder = DictBinder(binder, ISnack)
             listbinder.add_binding('Lays', to=Lays, in_scope=scopes.SINGLETON)
             provider = providers.create_simple_provider(Tostitos)
             listbinder.add_binding('Tostitos', to_provider=provider, in_scope=scopes.SINGLETON)
             listbinder.add_binding('Ruffles', to_instance=Ruffles(), in_scope=scopes.SINGLETON)
     injector = create_injector([DictCandyModule(), MyDictChipsModule()])
     snacks1 = injector.get_instance(DictSnackMachine)
     snacks2 = injector.get_instance(DictSnackMachine)
     for k, snack in snacks1.snacks.iteritems():
         if isinstance(snack, Lays) or \
             isinstance(snack, Tostitos) or \
             isinstance(snack, Ruffles):
             assert snack is snacks2.snacks[k]
Example #9
0
def main(args):
    injector = create_injector([MainModule(), URLMapperModule()])
    application = Application(injector)

    httpd = make_server('', 8000, application)
    httpd.serve_forever()
Example #10
0
 def test_bindScope_invalid_classParameter(self):
     class MyModule(object):
         def configure(self, binder):
             binder.bind_scope(4, 5)
     injector = create_injector([MyModule()])
Example #11
0
def main():
    injector = create_injector([ShortsModule(), RoutesModule()])
    application = snakeweb.Application(injector)
    run_wsgi_app(application)
Example #12
0
 def test_bindScope_invalid_instanceParameter(self):
     this = self
     class MyModule(object):
         def configure(self, binder):
             binder.bind_scope(this.CustomScope, 4)
     injector = create_injector([MyModule()])
Example #13
0
 def setup(self):
     inj = create_injector([Module()])
     self.manager = inj.get_instance(Manager)

class HWController(object):

    def index(self, request):
        return snakeweb.Response('Hello, World!<br>I see you are from: {0}'
                                 .format(request.remote_addr))

    def hello_name(self, request, name):
        return snakeweb.Response('Hello, {0}!'.format(name))


class HWModule(Module):

    def configure(self, binder):
        self.install(binder, HWRoutes())


class HWRoutes(snakeweb.RoutesModule):

    def configure(self, routes_binder):
        routes_binder.connect('/', controller=HWController)
        routes_binder.connect('/:name', controller=HWController,
                              action='hello_name')


if __name__ == '__main__':
    injector = create_injector(HWModule())
    httpd = make_server('', 8000, snakeweb.Application(injector))
    httpd.serve_forever()
from snakeguice.extras import snakeweb


class HWController(object):
    def index(self, request):
        return snakeweb.Response(
            'Hello, World!<br>I see you are from: {0}'.format(
                request.remote_addr))

    def hello_name(self, request, name):
        return snakeweb.Response('Hello, {0}!'.format(name))


class HWModule(Module):
    def configure(self, binder):
        self.install(binder, HWRoutes())


class HWRoutes(snakeweb.RoutesModule):
    def configure(self, routes_binder):
        routes_binder.connect('/', controller=HWController)
        routes_binder.connect('/:name',
                              controller=HWController,
                              action='hello_name')


if __name__ == '__main__':
    injector = create_injector(HWModule())
    httpd = make_server('', 8000, snakeweb.Application(injector))
    httpd.serve_forever()
 def setup(self):
     injector = create_injector([ListCandyModule(), ListChipsModule()])
     self.snack_machine = injector.get_instance(ListSnackMachine)
Example #17
0
 def setup(self):
     injector = create_injector([DictCandyModule(), DictChipsModule()])
     self.snack_machine = injector.get_instance(DictSnackMachine)
Example #18
0
 def setup(self):
     inj = create_injector([Module()])
     self.manager = inj.get_instance(Manager)