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
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)
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()
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
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 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]
def main(args): injector = create_injector([MainModule(), URLMapperModule()]) application = Application(injector) httpd = make_server('', 8000, application) httpd.serve_forever()
def test_bindScope_invalid_classParameter(self): class MyModule(object): def configure(self, binder): binder.bind_scope(4, 5) injector = create_injector([MyModule()])
def main(): injector = create_injector([ShortsModule(), RoutesModule()]) application = snakeweb.Application(injector) run_wsgi_app(application)
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()])
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)
def setup(self): injector = create_injector([DictCandyModule(), DictChipsModule()]) self.snack_machine = injector.get_instance(DictSnackMachine)