11import pytest
22from unittest .mock import patch , mock_open
33from argparse import Namespace
4- import logging
5- from .doc_gen import DocGen , MetadataError
4+ from pathlib import Path
5+
6+ from .doc_gen import DocGen , MetadataError , Example
67from .doc_gen_cli import main
8+ from .metadata import DocFilenames , Sdk , Language , SDKPageVersion , Version
9+ from .sdks import SdkVersion
10+
11+
12+ @pytest .fixture
13+ def mock_example ():
14+ return Example (
15+ file = Path ("test_cpp.yaml" ),
16+ id = "medical-imaging_GoodScenario" ,
17+ title = "Scenario title" ,
18+ title_abbrev = "Scenario title abbrev" ,
19+ synopsis = "scenario synopsis." ,
20+ category = "Scenarios" ,
21+ doc_filenames = DocFilenames (
22+ service_pages = {
23+ "medical-imaging" : "link" ,
24+ },
25+ sdk_pages = {
26+ "cpp" : {
27+ 1 : SDKPageVersion (actions_scenarios = {"medical-imaging" : f"link" })
28+ }
29+ },
30+ ),
31+ services = {
32+ "medical-imaging" : {"GoodOne" },
33+ },
34+ languages = {
35+ "C++" : Language (
36+ name = "C++" , property = "cpp" , versions = [Version (sdk_version = 1 )]
37+ )
38+ },
39+ )
740
841
942@pytest .fixture
10- def mock_doc_gen ():
43+ def mock_doc_gen (mock_example ):
1144 doc_gen = DocGen .empty ()
1245 doc_gen .errors ._errors = [
1346 MetadataError (file = "a.yaml" , id = "Error 1" ),
1447 MetadataError (file = "b.yaml" , id = "Error 2" ),
1548 ]
49+ doc_gen .sdks = {
50+ "JavaScript" : Sdk (
51+ name = "JavaScript" ,
52+ versions = [SdkVersion (version = 3 , long = "&JS;" , short = "&JSlong" )],
53+ guide = "" ,
54+ property = "javascript" ,
55+ )
56+ }
57+ doc_gen .examples = {"ex" : mock_example }
1658 return doc_gen
1759
1860
@@ -32,7 +74,10 @@ def patched_environment(mock_doc_gen):
3274def test_doc_gen_strict_option (strict , should_raise , patched_environment ):
3375 mock_parse_args , mock_json_dump = patched_environment
3476 mock_args = Namespace (
35- from_root = ["/mock/path" ], write_json = "mock_output.json" , strict = strict
77+ from_root = ["/mock/path" ],
78+ write_json = "mock_output.json" ,
79+ strict = strict ,
80+ skip_entity_expansion = False ,
3681 )
3782 mock_parse_args .return_value = mock_args
3883
@@ -42,3 +87,38 @@ def test_doc_gen_strict_option(strict, should_raise, patched_environment):
4287 assert exc_info .value .code == 1
4388 else :
4489 main ()
90+
91+
92+ def test_skip_entity_expansion (patched_environment ):
93+ mock_parse_args , mock_json_dump = patched_environment
94+ mock_args = Namespace (
95+ from_root = ["/mock/path" ],
96+ write_json = "mock_output.json" ,
97+ strict = False ,
98+ skip_entity_expansion = True ,
99+ )
100+ mock_parse_args .return_value = mock_args
101+
102+ with patch (
103+ "aws_doc_sdk_examples_tools.doc_gen.DocGen.expand_entities"
104+ ) as mock_expand_entities :
105+ main ()
106+ assert not mock_expand_entities .called
107+
108+
109+ def test_default_entity_expansion (patched_environment ):
110+ mock_parse_args , mock_json_dump = patched_environment
111+ mock_args = Namespace (
112+ from_root = ["/mock/path" ],
113+ write_json = "mock_output.json" ,
114+ strict = False ,
115+ skip_entity_expansion = False ,
116+ )
117+ mock_parse_args .return_value = mock_args
118+
119+ with patch (
120+ "aws_doc_sdk_examples_tools.doc_gen.DocGen.expand_entities"
121+ ) as mock_expand_entities :
122+ mock_expand_entities .return_value = None , []
123+ main ()
124+ assert mock_expand_entities .called
0 commit comments