def test_build_list_of_type_not_a_list(self):
     validator = validation.build_list_type_validator(
         validation.validate_any)
     assert_raises_and_contains(
         errors.ValidationError, 'Invalid iterable', validator, None)
 def test_build_list_of_type_ints_success(self):
     validator = validation.build_list_type_validator(
         validation.validate_int)
     assert_equal(validator(['0', '1', '2']), [0, 1, 2])
 def test_build_list_of_type_float_failed(self):
     validator = validation.build_list_type_validator(
         validation.validate_float)
     assert_raises_and_contains(
         errors.ValidationError, 'Invalid float: a', validator, ['0.1', 'a'])
 def test_build_list_of_type_empty_list(self):
     validator = validation.build_list_type_validator(
         validation.validate_string)
     assert_equal(validator([]), [])
 def test_build_list_of_type_ints_success(self):
     validator = validation.build_list_type_validator(
         validation.validate_int)
     expected = range(3)
     assert_equal(validator(['0', '1','2']), expected)
Esempio n. 6
0
def get_all_accessors(name_factory):
    for name, validator in validation.get_validators():
        yield name_factory.get_name(name), validator
        yield (name_factory.get_list_of_name(name),
               validation.build_list_type_validator(validator))
Esempio n. 7
0
 def test_build_list_of_type_float_failed(self):
     validator = validation.build_list_type_validator(
         validation.validate_float)
     assert_raises_and_contains(errors.ValidationError, 'Invalid float: a',
                                validator, ['0.1', 'a'])
Esempio n. 8
0
 def test_build_list_of_type_empty_list(self):
     validator = validation.build_list_type_validator(
         validation.validate_string)
     assert_equal(validator([]), [])
Esempio n. 9
0
 def test_build_list_of_type_not_a_list(self):
     validator = validation.build_list_type_validator(
         validation.validate_any)
     assert_raises_and_contains(errors.ValidationError, 'Invalid iterable',
                                validator, None)
Esempio n. 10
0
 def test_build_list_of_type_ints_success(self):
     validator = validation.build_list_type_validator(
         validation.validate_int)
     assert_equal(validator(['0', '1', '2']), [0, 1, 2])
 def test_build_list_of_type_ints_success(self):
     validator = validation.build_list_type_validator(
         validation.validate_int)
     expected = range(3)
     assert_equal(validator(['0', '1', '2']), expected)
Esempio n. 12
0
def get_all_accessors(name_factory):
    for name, validator in validation.get_validators():
        yield name_factory.get_name(name), validator
        yield (name_factory.get_list_of_name(name),
               validation.build_list_type_validator(validator))
Esempio n. 13
0
        def build_attr(name, attribute):
            if not isinstance(attribute, ValueTypeDefinition):
                return name, attribute
            return build_token(name, attribute)

        attributes = dict(build_attr(*item) for item in attributes.iteritems())
        attributes['_tokens'] = tokens
        return attributes


class Schema(object):
    __metaclass__ = SchemaMeta

    namespace = None


def build_value_type(validator):
    return functools.partial(ValueTypeDefinition, validator)


# Backwards compatible with staticconf 0.5.2
create_value_type = build_value_type


for name, validator in validation.get_validators():
    name = name or 'any'
    globals()[name] = build_value_type(validator)
    list_of_validator = validation.build_list_type_validator(validator)
    globals()['list_of_%s' % name] = build_value_type(list_of_validator)
Esempio n. 14
0
        attributes = dict(
            build_attr(*item) for item in six.iteritems(attributes))
        attributes['_tokens'] = tokens
        return attributes


@six.add_metaclass(SchemaMeta)
class Schema(object):
    """Base class for configuration schemas, uses :class:`SchemaMeta`."""

    namespace = None


def build_value_type(validator):
    """A factory function to create a new schema type.

    :param validator: a function which accepts one argument and returns that
                      value as the correct type.
    """
    return functools.partial(ValueTypeDefinition, validator)


# Backwards compatible with staticconf 0.5.2
create_value_type = build_value_type

for name, validator in validation.get_validators():
    name = name or 'any'
    globals()[name] = build_value_type(validator)
    list_of_validator = validation.build_list_type_validator(validator)
    globals()['list_of_%s' % name] = build_value_type(list_of_validator)
Esempio n. 15
0
# TODO:make staticconf.Schema accept a path argument
class FeedConfig(object):

    def __init__(self, config_dict):
        self.config = config_dict

    def __getattr__(self, name):
        return self.config[name]


def validate_feed_config(value):
    return FeedConfig(value)

get_feed_config = getters.build_getter(
    validation.build_list_type_validator(validate_feed_config))


def setup_logging(verbose=True):
    fmt = "%(asctime)s %(levelname)7s  %(name)s  %(message)s"
    level = logging.INFO if verbose else logging.WARN
    logging.basicConfig(stream=sys.stdout, level=level, format=fmt)


def get_app(api_key):
    cloud = heroku.from_key(api_key)
    return cloud.apps[app_name]


def load_app_config(api_key=None):
    app = get_app(api_key or os.environ.get('HEROKU_API_KEY'))