* Add json validate * Fix json schema * Fix schema loader * Add unit test * Update bom file * Update all requarments * Update dev requarments * Update requrments * Update path to schema * Update schema * Add some unit tests * Move schema to root dir * Update schema path in bom file * Fix unit test * Fix bom * Change path to schema * update setup * Fix setup * Fix mo args test * Refactoring some code * Refactoring according to review * Update sort imports * Remove id attribute from schema * Refactoring validator * Fix according to review * Move schema from json to dict. Update unit tests. * Fix BOM file * Update bom file
41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
# Copyright (C) 2018-2021 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
import os
|
|
import unittest
|
|
from fnmatch import fnmatch
|
|
from generator import generator, generate
|
|
|
|
from mo.utils.custom_replacement_config import load_and_validate_json_config
|
|
from mo.utils.error import Error
|
|
from mo.utils.utils import get_mo_root_dir
|
|
|
|
|
|
def get_json_configs(mo_root_dir):
|
|
config_path = os.path.join(mo_root_dir, 'extensions', 'front')
|
|
pattern = "*.json"
|
|
config_files_list = []
|
|
for path, subdirs, files in os.walk(config_path):
|
|
for name in files:
|
|
if fnmatch(name, pattern):
|
|
config_files_list.append((os.path.join(path, name),))
|
|
return config_files_list
|
|
|
|
@generator
|
|
class TestSchema(unittest.TestCase):
|
|
base_dir = get_mo_root_dir()
|
|
schema_file = os.path.join(base_dir, 'mo', 'utils', 'schema.json')
|
|
transformation_configs = get_json_configs(base_dir)
|
|
test_json1 = '[{"id": "", "match_kind": "general", "custom_attributes": {}}]'
|
|
test_json2 = '[{"id": "someid", "match_kind": "abc", "custom_attributes": {}}]'
|
|
|
|
@generate(*transformation_configs)
|
|
def test_schema_file(self, transformation_config):
|
|
self.assertTrue(load_and_validate_json_config(transformation_config))
|
|
|
|
def test_schema_id_empty(self):
|
|
self.assertRaises(Error, load_and_validate_json_config, self.test_json1)
|
|
|
|
def test_schema_match_kind_wrong(self):
|
|
self.assertRaises(Error, load_and_validate_json_config, self.test_json2)
|