Skip to content

Commit

Permalink
Merge 63e6c68 into e4dfe3b
Browse files Browse the repository at this point in the history
  • Loading branch information
JayZ12138 committed Apr 11, 2019
2 parents e4dfe3b + 63e6c68 commit cb97d7c
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 30 deletions.
34 changes: 32 additions & 2 deletions tests/ubiconfig/utils/test_validation.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,44 @@
import os

import yaml
import pytest

from jsonschema.exceptions import ValidationError
from ubiconfig.utils import config_validation

TEST_DATA = os.path.join(os.path.dirname(__file__),
'../../data/configs/dnf7/rhel-atomic-host.yaml')


def test_validate_data():
@pytest.fixture
def dnf7_config():
with open(TEST_DATA) as f:
config = yaml.safe_load(f)
assert config_validation.validate_config(config) is None
return config


def test_validate_data_pass(dnf7_config):
assert config_validation.validate_config(dnf7_config) is None


def test_validate_data_pass_without_module(dnf7_config):
dnf7_config.pop('modules')
assert config_validation.validate_config(dnf7_config) is None


def test_validate_failed_missing_content_sets(dnf7_config):
dnf7_config.pop('content_sets')
with pytest.raises(ValidationError):
config_validation.validate_config(dnf7_config)


def test_validate_failed_extra_keyword(dnf7_config):
dnf7_config.update({'extra': 'something should not exist'})
with pytest.raises(ValidationError):
config_validation.validate_config(dnf7_config)


def test_validate_failed_missing_package_include(dnf7_config):
dnf7_config['packages'].pop('include')
with pytest.raises(ValidationError):
config_validation.validate_config(dnf7_config)
69 changes: 41 additions & 28 deletions ubiconfig/utils/config_schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"input": {"type": "string"},
"output": {"type": "string"}
},
"additionalProperties": false,
"required": ["input", "output"]
},
"module": {
Expand All @@ -19,38 +20,50 @@
"items": {"type": "string"}
}
},
"additionalProperties": false,
"required": ["name", "stream"]
}
},
"content_sets": {
"debuginfo": {"$ref": "#/definitions/content_sets_base"},
"rpm": {"$ref": "#/definitions/content_sets_base"},
"srpm": {"$ref": "#/definitions/content_sets_base"}
},
"arches": {
"type": "array",
"items": {"type": "string"}
},
"modules": {
"type": "object",
"properties": {
"include": {
"type": "array",
"items":{"$ref": "#/definitions/module"}
}
}
"properties":{
"content_sets": {
"type": "object",
"properties":{
"debuginfo": {"$ref": "#/definitions/content_sets_base"},
"rpm": {"$ref": "#/definitions/content_sets_base"},
"srpm": {"$ref": "#/definitions/content_sets_base"}
},
"additionalProperties": false
},
"arches": {
"type": "array",
"items": {"type": "string"}
},
"packages": {
"type": "object",
"properties": {
"include": {
"type": "array",
"items": {"type":"string"}
"modules": {
"type": "object",
"properties": {
"include": {
"type": "array",
"items":{"$ref": "#/definitions/module"}
}
},
"additionalProperties": false
},
"packages": {
"type": "object",
"properties": {
"include": {
"type": "array",
"items": {"type":"string"}
},
"exclude": {
"type": "array",
"items": {"type": "string"}
}
},
"exclude": {
"type": "array",
"items": {"type": "string"}
}
"additionalProperties": false,
"required": ["include"]
}
}
},
"additionalProperties": false,
"required": ["content_sets", "packages"]
}

0 comments on commit cb97d7c

Please sign in to comment.