Add some basic unittests for metadata sanity

Reviewed-by: Hasko, Vladimir <vladimir.hasko@t-systems.com>
Co-authored-by: gtema <artem.goncharov@gmail.com>
Co-committed-by: gtema <artem.goncharov@gmail.com>
This commit is contained in:
gtema 2023-03-26 17:51:23 +00:00 committed by zuul
parent a7a4f676e0
commit 4989570371
4 changed files with 59 additions and 4 deletions

View File

@ -1,3 +1,19 @@
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Please consult with otc_metadata.services.Services:_sort_data for expected
# sort order. When unsure perform tools/sort_metadata.py for getting it sorted.
---
documents: documents:
- hc_location: api/antiddos - hc_location: api/antiddos
html_location: docs/antiddos/api-ref html_location: docs/antiddos/api-ref
@ -1035,6 +1051,8 @@ service_categories:
title: Security Services title: Security Services
- name: storage - name: storage
title: Storage title: Storage
- name: other
title: Other
services: services:
- repositories: - repositories:
- environment: internal - environment: internal

View File

@ -21,8 +21,45 @@ Tests for `otc-metadata` module.
from unittest import TestCase from unittest import TestCase
from otc_metadata import services
class TestOtcMetadata(TestCase): class TestOtcMetadata(TestCase):
def setUp(self):
self.data = services.Services()
def test_something(self): def test_data_is_sorted(self):
pass curr = self.data
new = services.Services()
new._sort_data()
self.assertEqual(
curr._service_data, new._service_data, "Data is sorted properly"
)
def test_service_categories(self):
category = dict()
for cat in self.data._service_data["service_categories"]:
category[cat["name"]] = cat["title"]
for srv in self.data.all_services:
self.assertTrue(
srv["service_category"] in category,
f"Category {srv['service_category']} is present",
)
def test_doc_contains_required_data(self):
srv_types = dict()
for srv in self.data.all_services:
srv_types[srv["service_type"]] = srv
for doc in self.data.all_docs:
for attr in [
"rst_location",
"service_type",
"title",
"type",
]:
self.assertIn(attr, doc, f"Document {doc} contains {attr}")
self.assertIn(
doc["service_type"],
srv_types,
f"Document {doc} contains valid service_type",
)

View File

@ -19,7 +19,6 @@ commands = {posargs}
[flake8] [flake8]
# E123, E125 skipped as they are invalid PEP-8. # E123, E125 skipped as they are invalid PEP-8.
show-source = True show-source = True
ignore = E123,E125,W503 ignore = E123,E125,W503
builtins = _ builtins = _

View File

@ -1,3 +1,4 @@
---
- project: - project:
merge-mode: squash-merge merge-mode: squash-merge
default-branch: main default-branch: main
@ -8,4 +9,4 @@
gate: gate:
jobs: jobs:
- otc-tox-pep8 - otc-tox-pep8
- otc-tox-py39 - otc-tox-py39