88import pytest
99import yaml
1010from pathlib import Path
11- from typing import List , Set , Tuple , Optional
11+ from typing import List , Set , Tuple
1212
1313from . import metadata_errors
1414from .metadata_errors import MetadataErrors , ExampleMergeConflict
3232def load (
3333 path : Path , doc_gen : DocGen , blocks : Set [str ] = set ()
3434) -> Tuple [List [Example ], metadata_errors .MetadataErrors ]:
35- root = Path (__file__ ).parent
36- filename = root / "test_resources" / path
37- with filename .open () as file :
35+ with path .open () as file :
3836 meta = yaml .safe_load (file )
39- return parse (
40- filename , meta , doc_gen .sdks , doc_gen .services , blocks , doc_gen .validation
41- )
37+ return parse (path , meta , doc_gen .sdks , doc_gen .services , blocks , doc_gen .validation )
4238
4339
4440SERVICES = {
@@ -378,14 +374,6 @@ def test_parse_strict_title_errors():
378374 file = Path ("test_cpp.yaml" ),
379375 id = "medical-imaging_BadBasics" ,
380376 ),
381- metadata_errors .MissingGithubLink (
382- file = Path ("test_cpp.yaml" ),
383- id = "medical-imaging_BadBasics" ,
384- language = "C++" ,
385- sdk_version = 1 ,
386- link = "cpp/example_code/medical-imaging" ,
387- root = Path ("." ),
388- ),
389377 ]
390378 assert expected == [* errors ]
391379
@@ -464,7 +452,7 @@ def test_parse_cross():
464452
465453def test_verify_load_successful ():
466454 actual , errors = load (
467- Path ( __file__ ). parent / "test_resources/ valid_metadata.yaml" ,
455+ TEST_RESOURCES_PATH / "valid_metadata.yaml" ,
468456 DOC_GEN ,
469457 set (["test block" ]),
470458 )
@@ -595,15 +583,14 @@ def test_verify_load_successful():
595583 assert actual [0 ] == example
596584
597585
598- EMPTY_METADATA_PATH = Path (__file__ ).parent / "test_resources/empty_metadata.yaml"
599- ERRORS_METADATA_PATH = Path (__file__ ).parent / "test_resources/errors_metadata.yaml"
600- FORMATTER_METADATA_PATH = (
601- Path (__file__ ).parent / "test_resources/formaterror_metadata.yaml"
602- )
586+ TEST_RESOURCES_PATH = Path (__file__ ).parent / "test_resources"
587+ EMPTY_METADATA_PATH = TEST_RESOURCES_PATH / "empty_metadata.yaml"
588+ ERRORS_METADATA_PATH = TEST_RESOURCES_PATH / "errors_metadata.yaml"
589+ FORMATTER_METADATA_PATH = TEST_RESOURCES_PATH / "formaterror_metadata.yaml"
603590
604591
605592@pytest .mark .parametrize (
606- "filename,expected_errors" ,
593+ "filename,expected_errors,validation_errors " ,
607594 [
608595 (
609596 "empty_metadata.yaml" ,
@@ -620,6 +607,7 @@ def test_verify_load_successful():
620607 svcs = [],
621608 ),
622609 ],
610+ [],
623611 ),
624612 (
625613 "errors_metadata.yaml" ,
@@ -641,14 +629,6 @@ def test_verify_load_successful():
641629 guide = "https://docs.aws.amazon.com/absolute/link-to-my-guide" ,
642630 sdk_version = 1 ,
643631 ),
644- metadata_errors .MissingGithubLink (
645- file = ERRORS_METADATA_PATH ,
646- id = "sqs_WrongServiceSlug" ,
647- language = "Perl" ,
648- sdk_version = 1 ,
649- link = "perl/example_code/medical-imaging" ,
650- root = ERRORS_METADATA_PATH .parent ,
651- ),
652632 metadata_errors .MissingBlockContentAndExcerpt (
653633 file = ERRORS_METADATA_PATH ,
654634 id = "sqs_WrongServiceSlug" ,
@@ -691,13 +671,6 @@ def test_verify_load_successful():
691671 id = "medical-imaging_TestExample2" ,
692672 service = "garbled" ,
693673 ),
694- metadata_errors .InvalidGithubLink (
695- file = ERRORS_METADATA_PATH ,
696- id = "medical-imaging_TestExample2" ,
697- language = "Java" ,
698- sdk_version = 2 ,
699- link = "github/link/to/README.md" ,
700- ),
701674 metadata_errors .FieldError (
702675 file = ERRORS_METADATA_PATH ,
703676 id = "medical-imaging_TestExample2" ,
@@ -730,6 +703,23 @@ def test_verify_load_successful():
730703 id = "medical-imagingBadFormat" ,
731704 ),
732705 ],
706+ [
707+ metadata_errors .MissingGithubLink (
708+ file = ERRORS_METADATA_PATH ,
709+ id = "sqs_WrongServiceSlug" ,
710+ language = "Perl" ,
711+ sdk_version = 1 ,
712+ link = "perl/example_code/medical-imaging" ,
713+ root = TEST_RESOURCES_PATH ,
714+ ),
715+ metadata_errors .InvalidGithubLink (
716+ file = ERRORS_METADATA_PATH ,
717+ id = "medical-imaging_TestExample2" ,
718+ language = "Java" ,
719+ sdk_version = 2 ,
720+ link = "github/link/to/README.md" ,
721+ ),
722+ ],
733723 ),
734724 (
735725 "formaterror_metadata.yaml" ,
@@ -746,14 +736,22 @@ def test_verify_load_successful():
746736 service = "garbage" ,
747737 ),
748738 ],
739+ [],
749740 ),
750741 ],
751742)
752743def test_common_errors (
753- filename : str , expected_errors : List [metadata_errors .MetadataError ]
744+ filename : str ,
745+ expected_errors : List [metadata_errors .MetadataError ],
746+ validation_errors : List [metadata_errors .MetadataError ],
754747):
755- _ , actual = load (Path (filename ), DOC_GEN , set (["test/block" , "cross_block.xml" ]))
748+ root = TEST_RESOURCES_PATH / filename
749+ examples , actual = load (root , DOC_GEN , set (["test/block" , "cross_block.xml" ]))
756750 assert expected_errors == [* actual ]
751+ validations = MetadataErrors ()
752+ for example in examples :
753+ example .validate (validations , root .parent )
754+ assert validation_errors == [* validations ]
757755
758756
759757TEST_SERVICES = {"test" : {"Test" , "Test2" , "Test3" , "1" }}
0 commit comments