def setup_configuration_values(self):
     validator = mock.Mock(return_value=2)
     self.name = 'test_namespace'
     self.namespace = config.get_namespace(self.name)
     self.config_key = 'something'
     self.value_proxy = proxy.ValueProxy(validator, self.namespace,
                                         self.config_key)
 def test_get_value_fails_validation(self):
     expected = [self.name, self.config_key]
     validator = mock.Mock(side_effect=validation.ValidationError)
     _ = proxy.ValueProxy(  # flake8: noqa
         validator, self.namespace, 'something.broken')
     assert_raises_and_contains(errors.ConfigurationError, expected,
                                lambda: self.value_proxy.value)
 def test_proxy_list(self):
     the_list = range(3)
     validator = mock.Mock(return_value=the_list)
     value_proxy = proxy.ValueProxy(validator, self.value_cache, 'the_list')
     assert_equal(value_proxy, the_list)
     assert_in(2, value_proxy)
     assert_equal(value_proxy[:1], [0])
     assert_equal(len(value_proxy), 3)
 def test_get_value_cached(self):
     expected = "the other stars"
     validator = mock.Mock()
     value_proxy = proxy.ValueProxy(validator, self.value_cache,
                                    'something.string')
     value_proxy._value = expected
     assert_equal(value_proxy.value, expected)
     validator.assert_not_called()
 def proxy_register(key_name,
                    default=UndefToken,
                    help=None,
                    namespace=None):
     name = namespace or getter_namespace or config.DEFAULT
     namespace = config.get_namespace(name)
     value_proxy = proxy.ValueProxy(validator, namespace, key_name, default)
     register_value_proxy(namespace, value_proxy, help)
     return value_proxy
Example #6
0
 def test_proxy_zero(self):
     validator = mock.Mock(return_value=0)
     self.value_proxy = proxy.ValueProxy(validator, self.value_cache, 'zero')
     assert_equal(self.value_proxy, 0)
     assert not self.value_proxy
     assert not self.value_proxy and True
     assert not self.value_proxy or False
     assert not self.value_proxy ^ 0
     assert ~ self.value_proxy
    def build(self, validator, namespace, config_key, default, help):
        """Build or retrieve a ValueProxy from the attributes. Proxies are
        keyed using a repr because default values can be mutable types.
        """
        proxy_attrs = validator, namespace, config_key, default
        proxy_key = repr(proxy_attrs)
        if proxy_key in self.proxies:
            return self.proxies[proxy_key]

        value_proxy = proxy.ValueProxy(*proxy_attrs)
        register_value_proxy(namespace, value_proxy, help)
        return self.proxies.setdefault(proxy_key, value_proxy)
 def test_proxy_with_string(self):
     validator = mock.Mock(return_value='one%s')
     value_proxy = proxy.ValueProxy(validator, self.value_cache,
                                    'something')
     assert_equal(value_proxy, 'one%s')
     assert value_proxy < 'two'
     assert value_proxy > 'ab'
     assert_equal(value_proxy + '!', 'one%s!')
     assert_equal(value_proxy % '!', 'one!')
     assert_equal(repr(value_proxy), "'one%s'")
     assert_equal(str(value_proxy), "one%s")
     assert_equal(hash(value_proxy), hash("one%s"))
     assert bool(value_proxy)
Example #9
0
 def test_proxy_with_datetime(self):
     the_date = datetime.datetime(2012, 12, 1, 5, 5, 5)
     validator = mock.Mock(return_value=the_date)
     value_proxy = proxy.ValueProxy(validator, self.value_cache, 'something')
     assert_equal(value_proxy, the_date)
     assert value_proxy < datetime.datetime(2012, 12, 3)
     assert value_proxy > datetime.datetime(2012, 1, 4)
     four_days_ahead = datetime.datetime(2012, 12, 4, 5, 5, 5)
     assert_equal(value_proxy + datetime.timedelta(days=3), four_days_ahead)
     assert_equal(repr(value_proxy), repr(the_date))
     assert_equal(str(value_proxy), str(the_date))
     assert_equal(hash(value_proxy), hash(the_date))
     assert bool(value_proxy)
 def test_proxy(self):
     validator = mock.Mock(return_value=2)
     value_proxy = proxy.ValueProxy(validator, self.value_cache,
                                    'something')
     assert_equal(value_proxy, 2)
     assert value_proxy < 4
     assert value_proxy > 1
     assert_equal(value_proxy + 5, 7)
     assert_equal(repr(value_proxy), "2")
     assert_equal(str(value_proxy), "2")
     assert_equal(3 % value_proxy, 1)
     assert_equal(3**value_proxy, 9)
     assert_equal(value_proxy**3, 8)
     assert_equal(hash(value_proxy), 2)
     assert_equal(abs(value_proxy), 2)
     assert_equal(hex(value_proxy), "0x2")
     assert bool(value_proxy)
 def test_proxied_attributes(self):
     validator = mock.Mock(return_value=self.value_cache['the_date'])
     value_proxy = proxy.ValueProxy(validator, self.value_cache, 'the_date')
     assert_equal(value_proxy.date(), datetime.date(2012, 3, 14))
     assert_equal(value_proxy.hour, 4)
 def test_get_value(self):
     expected = "the stars"
     validator = mock.Mock(return_value=expected)
     value_proxy = proxy.ValueProxy(validator, self.value_cache,
                                    'something.string')
     assert_equal(value_proxy, expected)