def test_indexing(self): o = OptionValueContainer() o.add_forwardings({'foo': 'bar'}) o.bar = 1 self.assertEqual(1, o['foo']) self.assertEqual(1, o['bar']) with self.assertRaises(AttributeError): o['baz']
def test_deepcopy(self): # deepcopy semantics can get hairy when overriding __setattr__/__getattr__, so we test them. o = OptionValueContainer() o.add_forwardings({'foo': 'bar'}) o.add_forwardings({'baz': 'qux'}) o.bar = 1 o.qux = {'a': 111} p = copy.deepcopy(o) o.baz['b'] = 222 # Add to original dict. self.assertEqual(1, p.foo) self.assertEqual({'a': 111}, p.baz) # Ensure dict was copied.
def test_value_ranking(self): o = OptionValueContainer() o.add_forwardings({'foo': 'bar'}) o.bar = RankedValue(RankedValue.CONFIG, 11) self.assertEqual(11, o.foo) o.bar = RankedValue(RankedValue.HARDCODED, 22) self.assertEqual(11, o.foo) o.bar = RankedValue(RankedValue.ENVIRONMENT, 33) self.assertEqual(33, o.foo) o.bar = 44 # No explicit rank is assumed to be a FLAG. self.assertEqual(44, o.foo)
def test_deepcopy(self): # deepcopy semantics can get hairy when overriding __setattr__/__getattr__, so we test them. o = OptionValueContainer() o.add_forwardings({'foo': 'bar'}) o.add_forwardings({'baz': 'qux'}) o.bar = 1 o.qux = {'a': 111} p = copy.deepcopy(o) o.baz['b'] = 222 # Add to original dict. self.assertEqual(1, p.foo) self.assertEqual({'a': 111}, p.baz) # Ensure dict was copied.
def test_value_ranking(self): o = OptionValueContainer() o.add_forwardings({'foo': 'bar'}) o.bar = RankedValue(RankedValue.CONFIG, 11) self.assertEqual(11, o.foo) o.bar = RankedValue(RankedValue.HARDCODED, 22) self.assertEqual(11, o.foo) o.bar = RankedValue(RankedValue.ENVIRONMENT, 33) self.assertEqual(33, o.foo) o.bar = 44 # No explicit rank is assumed to be a FLAG. self.assertEqual(44, o.foo)
def test_indexing(self): o = OptionValueContainer() o.add_forwardings({'foo': 'bar'}) o.bar = 1 self.assertEqual(1, o['foo']) self.assertEqual(1, o['bar']) self.assertEqual(1, o.get('foo')) self.assertEqual(1, o.get('foo', 2)) self.assertIsNone(o.get('unknown')) self.assertEqual(2, o.get('unknown', 2)) with self.assertRaises(AttributeError): o['baz']
def test_indexing(self): o = OptionValueContainer() o.add_forwardings({'foo': 'bar'}) o.bar = 1 self.assertEqual(1, o['foo']) self.assertEqual(1, o['bar']) self.assertEqual(1, o.get('foo')) self.assertEqual(1, o.get('foo', 2)) self.assertIsNone(o.get('unknown')) self.assertEqual(2, o.get('unknown', 2)) with self.assertRaises(AttributeError): o['baz']
def test_is_flagged(self): o = OptionValueContainer() o.add_forwardings({'foo': 'bar'}) o.bar = RankedValue(RankedValue.NONE, 11) self.assertFalse(o.is_flagged('foo')) o.bar = RankedValue(RankedValue.CONFIG, 11) self.assertFalse(o.is_flagged('foo')) o.bar = RankedValue(RankedValue.ENVIRONMENT, 11) self.assertFalse(o.is_flagged('foo')) o.bar = RankedValue(RankedValue.FLAG, 11) self.assertTrue(o.is_flagged('foo'))
def test_is_flagged(self): o = OptionValueContainer() o.add_forwardings({'foo': 'bar'}) o.bar = RankedValue(RankedValue.NONE, 11) self.assertFalse(o.is_flagged('foo')) o.bar = RankedValue(RankedValue.CONFIG, 11) self.assertFalse(o.is_flagged('foo')) o.bar = RankedValue(RankedValue.ENVIRONMENT, 11) self.assertFalse(o.is_flagged('foo')) o.bar = RankedValue(RankedValue.FLAG, 11) self.assertTrue(o.is_flagged('foo'))
def test_forwarding(self): o = OptionValueContainer() o.add_forwardings({'foo': 'bar'}) o.bar = 1 self.assertEqual(1, o.foo) o.bar = 2 self.assertEqual(2, o.foo) o.add_forwardings({'baz': 'qux'}) o.qux = 3 self.assertEqual(2, o.foo) self.assertEqual(3, o.baz) # Direct setting overrides forwarding. o.foo = 4 self.assertEqual(4, o.foo)
def test_forwarding(self): o = OptionValueContainer() o.add_forwardings({'foo': 'bar'}) o.bar = 1 self.assertEqual(1, o.foo) o.bar = 2 self.assertEqual(2, o.foo) o.add_forwardings({'baz': 'qux'}) o.qux = 3 self.assertEqual(2, o.foo) self.assertEqual(3, o.baz) # Direct setting overrides forwarding. o.foo = 4 self.assertEqual(4, o.foo)
def test_iterator(self): o = OptionValueContainer() o.add_forwardings({'a': '_a'}) o.add_forwardings({'b': '_b'}) o.add_forwardings({'b_prime': '_b'}) # Should be elided in favor of b. o.add_forwardings({'c': '_c'}) names = list(iter(o)) self.assertListEqual(['a', 'b', 'c'], names)
def test_iterator(self): o = OptionValueContainer() o.add_forwardings({'a': '_a'}) o.add_forwardings({'b': '_b'}) o.add_forwardings({'b_prime': '_b'}) # Should be elided in favor of b. o.add_forwardings({'c': '_c'}) names = list(iter(o)) self.assertListEqual(['a', 'b', 'c'], names)