def test_lazy_initializer(self): lazy_evaluator = TestLazyEvaluator() builder = ConfigurationBindingsBuilder() builder.add_lazy_initializer('lazy', lazy_evaluator) builder.add_lazy_initializer('implied', lazy_evaluator) builder.add_lazy_initializer('overriden', lazy_evaluator) builder.add_lazy_initializer('has_default', lazy_evaluator) builder.set_default('has_default', 'default') bindings = builder.build() self.assertEqual(2, bindings['lazy']) self.assertEqual(1, bindings['IMPLIED']) # already initialized bindings['overriden'] = 'Hello' self.assertEquals('Hello', bindings['overriden']) # Default is lower precedence than lazy initializer self.assertEquals(3, bindings['has_default']) with self.assertRaises(KeyError): self.assertIsNotNone(bindings['missing']) self.assertEquals([(bindings, 'implied'), (bindings, 'lazy'), (bindings, 'has_default')], lazy_evaluator.called_with_bk)
def test_lazy_initializer(self): lazy_evaluator = TestLazyEvaluator() builder = ConfigurationBindingsBuilder() builder.add_lazy_initializer('lazy', lazy_evaluator) builder.add_lazy_initializer('implied', lazy_evaluator) builder.add_lazy_initializer('overriden', lazy_evaluator) builder.add_lazy_initializer('has_default', lazy_evaluator) builder.set_default('has_default', 'default') bindings = builder.build() self.assertEqual(2, bindings['lazy']) self.assertEqual(1, bindings['IMPLIED']) # already initialized bindings['overriden'] = 'Hello' self.assertEquals('Hello', bindings['overriden']) # Default is lower precedence than lazy initializer self.assertEquals(3, bindings['has_default']) with self.assertRaises(KeyError): self.assertIsNotNone(bindings['missing']) self.assertEquals([(bindings, 'implied'), (bindings, 'lazy'), (bindings, 'has_default')], lazy_evaluator.called_with_bk)
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_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_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