Beispiel #1
0
  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)
Beispiel #2
0
  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)
Beispiel #3
0
  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)
Beispiel #4
0
  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)
Beispiel #5
0
  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
Beispiel #6
0
  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