def test_override_default(self): builder = ConfigurationBindingsBuilder() builder.set_default('test', 'MyPreDefault') builder.set_override('test', 'MyOverride') builder.set_default('test', 'MyPostDefault') bindings = builder.build() self.assertEquals('MyOverride', bindings.get('test'))
def test_environ_builder_value(self): builder = ConfigurationBindingsBuilder() builder.add_config_file(os.path.join(os.path.dirname(__file__), 'bindings_test.config')) builder.set_default('up', '$TEST_UP') builder.set_override('down', '$TEST_DOWN') bindings = builder.build() os.environ['TEST_UP'] = '123' os.environ['TEST_DOWN'] = '321' self.assertEquals(os.environ.get('HOME'), bindings.get('test_home')) self.assertEquals('123', bindings.get('up')) self.assertEquals('321', bindings.get('down'))
def test_environ_builder_value(self): builder = ConfigurationBindingsBuilder() builder.add_config_file( os.path.join(os.path.dirname(__file__), 'bindings_test.config')) builder.set_default('up', '$TEST_UP') builder.set_override('down', '$TEST_DOWN') bindings = builder.build() os.environ['TEST_UP'] = '123' os.environ['TEST_DOWN'] = '321' self.assertEquals(os.environ.get('HOME'), bindings.get('test_home')) self.assertEquals('123', bindings.get('up')) self.assertEquals('321', bindings.get('down'))
def test_from_command_line(self): orig_argv = sys.argv try: sys.argv = [ orig_argv[0], '--config_location=COMMANDLINE', '--overriden=WRONG', '--unknownBool', '--unknownInt', '123' ] builder = ConfigurationBindingsBuilder() builder.add_configs_for_class(ConfigurationBindingsTest) builder.set_override('overriden', 'OVERRIDEN') bindings = builder.build() self.assertEquals('OVERRIDEN', bindings.get('overriden')) self.assertEquals('COMMANDLINE', bindings.get('config_location')) self.assertEquals('True', bindings.get('unknownBool')) self.assertEquals('123', bindings.get('unknownInt')) self.assertIsNone(bindings.get('missing')) finally: sys.argv = orig_argv
def test_from_command_line(self): orig_argv = sys.argv try: sys.argv = [orig_argv[0], '--config_location=COMMANDLINE', '--overriden=WRONG', '--unknownBool', '--unknownInt', '123'] builder = ConfigurationBindingsBuilder() builder.add_configs_for_class(ConfigurationBindingsTest) builder.set_override('overriden', 'OVERRIDEN') bindings = builder.build() self.assertEquals('OVERRIDEN', bindings.get('overriden')) self.assertEquals('COMMANDLINE', bindings.get('config_location')) self.assertEquals('True', bindings.get('unknownBool')) self.assertEquals('123', bindings.get('unknownInt')) self.assertIsNone(bindings.get('missing')) finally: sys.argv = orig_argv
def test_contains(self): lazy_evaluator = TestLazyEvaluator() builder = ConfigurationBindingsBuilder() builder.add_lazy_initializer('lazy', lazy_evaluator) builder.add_lazy_initializer('shared', lazy_evaluator) builder.add_configs_for_class(ConfigurationBindingsTest) builder.set_override('shared', 'OverridenValue') builder.set_override('overriden', 'OverridenValue') builder.set_default('default', 'DefaultValue') bindings = builder.build() self.assertTrue('lazy' in bindings) self.assertTrue('shared' in bindings) self.assertTrue('overriden' in bindings) self.assertTrue('default' in bindings) self.assertTrue('DeFaUlT' in bindings) self.assertTrue('read_configuration_bindings_test' in bindings) self.assertTrue('tests_base_param' in bindings) self.assertFalse('missing' in bindings) self.assertEquals([], lazy_evaluator.called_with_bk) self.assertFalse('implied' in bindings)
def test_lazy_overrides_removes_None_override(self): lazy_evaluator = TestLazyEvaluator() builder = ConfigurationBindingsBuilder() builder.set_override('overriden', None) builder.set_override('has_default', 'have') builder.add_lazy_initializer('overriden', lazy_evaluator) builder.add_lazy_initializer('has_default', lazy_evaluator) builder.add_lazy_initializer('lazy', lazy_evaluator) builder.set_override('lazy', None) bindings = builder.build() self.assertEquals(1, bindings.get('overriden')) self.assertEquals('have', bindings.get('has_default')) self.assertIsNone(bindings.get('lazy')) # because we overrode it
def test_case_insensitive_override(self): builder = ConfigurationBindingsBuilder() builder.set_override('test', 'MyOverride') bindings = builder.build() self.assertEquals('MyOverride', bindings.get('TEST'))