Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/ted 823 #297

Merged
merged 3 commits into from
Oct 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -147,10 +147,11 @@ def validation_summary(self) -> XMLManifestationValidationSummaryReport:
report: XMLManifestationValidationSummaryReport = XMLManifestationValidationSummaryReport()
xpath_coverage_summary: XPATHCoverageSummaryReport = report.xpath_coverage_summary

xml_manifestation = notices[0].xml_manifestation
if xml_manifestation.xpath_coverage_validation:
mapping_suite_identifier = xml_manifestation.xpath_coverage_validation.mapping_suite_identifier
xpath_coverage_summary.mapping_suite_identifier = mapping_suite_identifier
if len(notices) > 0:
xml_manifestation = notices[0].xml_manifestation
if xml_manifestation.xpath_coverage_validation:
mapping_suite_identifier = xml_manifestation.xpath_coverage_validation.mapping_suite_identifier
xpath_coverage_summary.mapping_suite_identifier = mapping_suite_identifier

validation_result: XPATHCoverageSummaryResult = report.xpath_coverage_summary.validation_result
for notice in notices:
Expand Down
Empty file.
19 changes: 19 additions & 0 deletions tests/e2e/supra_notice_manager/conftest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import pytest
import mongomock
import pymongo

from ted_sws.data_manager.adapters.supra_notice_repository import DailySupraNoticeRepository


@pytest.fixture
@mongomock.patch(servers=(('server.example.com', 27017),))
def mongodb_client():
mongo_client = pymongo.MongoClient('server.example.com')
for database_name in mongo_client.list_database_names():
mongo_client.drop_database(database_name)
return mongo_client


@pytest.fixture
def daily_supra_notice_repository(mongodb_client) -> DailySupraNoticeRepository:
return DailySupraNoticeRepository(mongodb_client=mongodb_client)
21 changes: 21 additions & 0 deletions tests/e2e/supra_notice_manager/test_supra_notice_validator.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from datetime import datetime, time

import pytest

from ted_sws.supra_notice_manager.services.daily_supra_notice_manager import \
create_and_store_in_mongo_db_daily_supra_notice
from ted_sws.supra_notice_manager.services.supra_notice_validator import validate_and_update_daily_supra_notice


def test_supra_notice_validator(mongodb_client, daily_supra_notice_repository):
today = datetime.combine(datetime.today(), time())

notice_ids = ["XYZ067623-2022023"]
create_and_store_in_mongo_db_daily_supra_notice(notice_ids=notice_ids, mongodb_client=mongodb_client,
notice_fetched_date=today)
validate_and_update_daily_supra_notice(today, mongodb_client)
result = daily_supra_notice_repository.get(reference=today)
assert result
assert len(result.validation_report.missing_notice_ids) > 0
assert notice_ids[0] not in result.validation_report.missing_notice_ids
assert not result.validation_report.is_valid()
12 changes: 11 additions & 1 deletion tests/unit/notice_validator/test_validation_summary_runner.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import pytest

from ted_sws.notice_validator.services.validation_summary_runner import validation_summary_report_notice_by_id
from ted_sws.notice_validator.services.validation_summary_runner import validation_summary_report_notice_by_id, \
generate_validation_summary_report_notices
from ted_sws.data_manager.adapters.notice_repository import NoticeRepository


Expand All @@ -18,3 +19,12 @@ def test_validation_summary_runner(fake_validation_notice, mongodb_client):
assert notice.validation_summary.xml_manifestation
assert notice.validation_summary.rdf_manifestation
assert notice.validation_summary.distilled_rdf_manifestation


def test_generate_validation_summary_report_notices(fake_validation_notice):
report = generate_validation_summary_report_notices([fake_validation_notice])
assert report
assert report.notice_id == [fake_validation_notice.ted_id]
assert report.xml_manifestation.xpath_coverage_summary.mapping_suite_identifier == fake_validation_notice.xml_manifestation.xpath_coverage_validation.mapping_suite_identifier
assert report.rdf_manifestation
assert report.distilled_rdf_manifestation
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ def test_supra_notice_validator(mongodb_client, daily_supra_notice_repository, f
api_document_id = "067623-2022"

notice_ids = ["1", "2", "3"]
create_and_store_in_mongo_db_daily_supra_notice(notice_ids=notice_ids, mongodb_client=mongodb_client)
create_and_store_in_mongo_db_daily_supra_notice(notice_ids=notice_ids, mongodb_client=mongodb_client,
notice_fetched_date=today)
validate_and_update_daily_supra_notice(today, mongodb_client, fake_request_api)
result = daily_supra_notice_repository.get(reference=today)
assert result
Expand Down