def test_do_simple(self): """ Simple config resolution """ resolver = Resolver({ 'foo': { 'module': 'example_classes', 'class': 'Foo' } }) services = resolver.do() self.assertTrue('foo' in services) assert isinstance(services['foo'], Foo)
def test_advanced(self): # datalogger: # module: datalogger # class: DataLogger # args: # - # name: rob_logger # path: /var/log/monorail # file_base_name: rob # max_file_bytes: 1073741824 # backup_count: 10 # port: $_port config = { 'logger': { 'module': 'example_classes', 'class': 'TestLogger', 'args': [ { 'name': 'test_logger', 'path': '/var/foo', 'file_base_name': 'testlog', 'max_file_bytes': 500, 'backup_count': 10, 'port': '$_port' } ] } } scalars = {'_port': 555} resolver = Resolver(config, scalars) services = resolver.do() logger = services['logger'] assert isinstance(logger, TestLogger) self.assertEquals( { 'name': 'test_logger', 'path': '/var/foo', 'file_base_name': 'testlog', 'max_file_bytes': 500, 'backup_count': 10, 'port': 555 }, logger.config )
def test_do_complicated(self): """ Instantiate services from advanced YAML file """ config = yaml.load(open('test/test_config.yml', 'r')) or {} resolver = Resolver(config) services = resolver.do() assert isinstance(services['foo'], Foo) assert isinstance(services['bar'], Bar) assert isinstance(services['baz'], Baz) assert isinstance(services['qux'], Qux) assert isinstance(services['wobble'], Wobble) assert isinstance(services['spam'], Spam) spam = services['spam'] self.assertEquals(spam.ham, 'ham!') self.assertEquals(spam.eggs, 'eggz') wobble = services['wobble'] assert isinstance(wobble.foo, Foo) assert isinstance(wobble.bar, Bar) assert isinstance(wobble.baz, Baz) assert isinstance(wobble.spam, Spam)