def test_schema_is_valid():
    check_schema_is_valid(None)
    good = {
        'type': 'dict',
        'name': 'module',
        'dict_type': ([{
            'type': 'string',
            'name': 'target',
            'default': ''
        }], [])
    }
    check_schema_is_valid(good)

    no_name = {
        'type': 'dict',
        'dict_type': ([{
            'type': 'string',
            'name': 'target',
            'default': ''
        }], [])
    }
    assert_raises(SchemaInvalidError, check_schema_is_valid, no_name)

    bad_dict_type = {
        'name': 'module',
        'type': 'dict',
        'dict_type': {
            'foo': {
                'type': 'string',
                'name': 'target',
                'default': ''
            }
        }
    }
    assert_raises(SchemaInvalidError, check_schema_is_valid, bad_dict_type)

    invalid_nested = {
        'type': 'dict',
        'name': 'module',
        'dict_type': ([{
            'name': 'target',
            'default': ''
        }], [])
    }
    assert_raises(SchemaInvalidError, check_schema_is_valid, invalid_nested)

    list_no_type = {'type': 'list', 'name': 'foo'}
    assert_raises(SchemaInvalidError, check_schema_is_valid, list_no_type)

    list_nested_bad_dict = {
        'type': 'list',
        'name': 'foo',
        'list_type': {
            'type': 'dict_type',
            'name': 'foo'
        }
    }
    assert_raises(SchemaInvalidError, check_schema_is_valid,
                  list_nested_bad_dict)
Example #2
0
 def __init__(self, name, py_module):
     super().__init__(name)
     assert hasattr(py_module, 'run')
     self._py_module = py_module
     if hasattr(py_module, 'schema'):
         try:
             check_schema_is_valid(py_module.schema)
         except SchemaInvalidError as e:
             raise SystemLoadError("The schema declared in module '{}' is invalid. {:s}".format(name, e))
         self.schema = py_module.schema
Example #3
0
 def __init__(self, name, py_module):
     super().__init__(name)
     assert hasattr(py_module, 'run')
     self._py_module = py_module
     if hasattr(py_module, 'schema'):
         try:
             check_schema_is_valid(py_module.schema)
         except SchemaInvalidError as exc:
             raise SystemLoadError("The schema declared in module '{}' is invalid. {:s}".format(name, exc))
         self.schema = py_module.schema
Example #4
0
def test_schema_is_valid():
    check_schema_is_valid(None)
    good = {"type": "dict", "name": "module", "dict_type": ([{"type": "string", "name": "target", "default": ""}], [])}
    check_schema_is_valid(good)

    no_name = {"type": "dict", "dict_type": ([{"type": "string", "name": "target", "default": ""}], [])}
    assert_raises(SchemaInvalidError, check_schema_is_valid, no_name)

    bad_dict_type = {
        "name": "module",
        "type": "dict",
        "dict_type": {"foo": {"type": "string", "name": "target", "default": ""}},
    }
    assert_raises(SchemaInvalidError, check_schema_is_valid, bad_dict_type)

    invalid_nested = {"type": "dict", "name": "module", "dict_type": ([{"name": "target", "default": ""}], [])}
    assert_raises(SchemaInvalidError, check_schema_is_valid, invalid_nested)

    list_no_type = {"type": "list", "name": "foo"}
    assert_raises(SchemaInvalidError, check_schema_is_valid, list_no_type)

    list_nested_bad_dict = {"type": "list", "name": "foo", "list_type": {"type": "dict_type", "name": "foo"}}
    assert_raises(SchemaInvalidError, check_schema_is_valid, list_nested_bad_dict)