From c5e6b3c7a5e1df16d6840bb261169cd7b6df2bc4 Mon Sep 17 00:00:00 2001 From: "zhifeng.jiang" Date: Wed, 6 Jul 2016 08:11:09 +0800 Subject: Schema checking for yaml file in test_cases. JIRA: QTIP-25 Change-Id: Ibc3d9d6f5f0606da6a876eae5d4b1c3edefb5b47 Signed-off-by: zhifeng.jiang --- tests/schema/test_bm_schema.yaml | 75 +++++++++++++++++++++++++++++++++++++ tests/schema/test_vm_schema.yaml | 80 ++++++++++++++++++++++++++++++++++++++++ tests/yaml_schema_test.py | 16 ++++++++ 3 files changed, 171 insertions(+) create mode 100644 tests/schema/test_bm_schema.yaml create mode 100644 tests/schema/test_vm_schema.yaml create mode 100644 tests/yaml_schema_test.py (limited to 'tests') diff --git a/tests/schema/test_bm_schema.yaml b/tests/schema/test_bm_schema.yaml new file mode 100644 index 00000000..740725f5 --- /dev/null +++ b/tests/schema/test_bm_schema.yaml @@ -0,0 +1,75 @@ +type: map +mapping: + Scenario: + type: map + mapping: + benchmark: + type: str + required: True + host: + type: str + server: + type: str + allowempty: True + client: + type: str + allowempty: True + topology: + type: str + allowempty: True + benchmark_details: + type: map + mapping: + duration: + type: int + protocol: + type: str + bandwidthGbps: + type: int + description: + type: str + 1Run: + type: str + + Context: + type: map + mapping: + Host_Machines: + type: map + required: True + mapping: + regex;(^machine): + type: map + mapping: + role: + type: str + ip: + type: str + pw: + type: str + allowempty: True + Virtual_Machines: + type: map + allowempty: True + Proxy_Environment: + type: map + mapping: + http_proxy: + type: str + https_proxy: + type: str + no_proxy: + type: str + + Test_Description: + type: map + mapping: + Test_category: + type: str + allowempty: True + Benchmark: + type: str + allowempty: True + Overview: + type: str + allowempty: True diff --git a/tests/schema/test_vm_schema.yaml b/tests/schema/test_vm_schema.yaml new file mode 100644 index 00000000..524f8fe4 --- /dev/null +++ b/tests/schema/test_vm_schema.yaml @@ -0,0 +1,80 @@ +type: map +mapping: + Scenario: + type: map + mapping: + benchmark: + type: str + required: True + host: + type: str + server: + type: str + allowempty: True + 1Run: + type: str + client: + type: str + allowempty: True + topology: + type: str + allowempty: True + benchmark_details: + type: map + mapping: + duration: + type: int + protocol: + type: str + bandwidthGbps: + type: int + teststream: + type: str + description: + type: str + + Context: + type: map + mapping: + Host_Machines: + type: map + allowempty: True + Virtual_Machines: + type: map + required: True + mapping: + regex;(^virtualmachine): + type: map + mapping: + availability_zone: + type: str + OS_image: + type: str + public_network: + type: str + role: + type: str + flavor: + type: str + Proxy_Environment: + type: map + mapping: + http_proxy: + type: str + https_proxy: + type: str + no_proxy: + type: str + + Test_Description: + type: map + mapping: + Test_category: + type: str + allowempty: True + Benchmark: + type: str + allowempty: True + Overview: + type: str + allowempty: True diff --git a/tests/yaml_schema_test.py b/tests/yaml_schema_test.py new file mode 100644 index 00000000..a975dca6 --- /dev/null +++ b/tests/yaml_schema_test.py @@ -0,0 +1,16 @@ +import os +import os.path +from pykwalify.core import Core + + +class TestClass: + def test_schema_success(self): + for root, dirs, files in os.walk("test_cases"): + for name in files: + print root + "/" + name + if "_bm" in name: + schema = "tests/schema/test_bm_schema.yaml" + if "_vm" in name: + schema = "tests/schema/test_vm_schema.yaml" + c = Core(source_file=root + "/" + name, schema_files=[schema]) + c.validate(raise_exception=True) -- cgit 1.2.3-korg