@@ -98,47 +98,10 @@ def get_needs_view(self) -> dict[str, dict[str, object]]:
9898 }
9999
100100
101- class _NeedObj :
102- def __init__ (self , payload : dict [str , object ]):
103- self ._payload = payload
104-
105- def get (self , key : str , default : object | None = None ) -> object | None :
106- return self ._payload .get (key , default )
107-
108-
109- class _FakeObjectNeedsData :
110- def __init__ (self , env : object ):
111- self ._env = env
112-
113- def get_needs_view (self ) -> dict [str , _NeedObj ]:
114- return {
115- "LOCAL_REQ" : _NeedObj (
116- {
117- "id" : "LOCAL_REQ" ,
118- "type" : "tool_req" ,
119- "implemented" : "YES" ,
120- "source_code_link" : "" ,
121- "testlink" : "" ,
122- "is_external" : False ,
123- }
124- ),
125- "LOCAL_FEAT" : _NeedObj (
126- {
127- "id" : "LOCAL_FEAT" ,
128- "type" : "feat_req" ,
129- "implemented" : "YES" ,
130- "source_code_link" : "" ,
131- "testlink" : "" ,
132- "is_external" : False ,
133- }
134- ),
135- }
136-
137-
138101def _app (
139102 tmp_path : Path ,
140103 include_external : bool ,
141- requirement_types : str = "tool_req " ,
104+ requirement_types : str = "" ,
142105 needs_types : list [dict [str , object ]] | None = None ,
143106) -> SimpleNamespace :
144107 discovered_types = needs_types or [
@@ -281,7 +244,7 @@ def test_write_metrics_json_empty_when_no_types_configured_or_discovered(
281244 assert payload ["metrics_by_type" ] == {}
282245
283246
284- def test_autodiscovery_falls_back_to_present_req_suffix_types (
247+ def test_autodiscovery_without_tagged_requirement_types_is_empty (
285248 monkeypatch : pytest .MonkeyPatch , tmp_path : Path
286249) -> None :
287250 monkeypatch .setattr (metamodel_init , "SphinxNeedsData" , _FakeNeedsData )
@@ -300,7 +263,7 @@ def test_autodiscovery_falls_back_to_present_req_suffix_types(
300263 )
301264
302265 payload = json .loads ((tmp_path / "metrics.json" ).read_text (encoding = "utf-8" ))
303- assert set ( payload ["metrics_by_type" ]. keys ()) == {"feat_req" , "tool_req" }
266+ assert payload ["metrics_by_type" ] == {}
304267
305268
306269def test_autodiscovery_respects_include_external_scope (
@@ -315,7 +278,11 @@ def test_autodiscovery_respects_include_external_scope(
315278 tmp_path ,
316279 include_external = True ,
317280 requirement_types = "" ,
318- needs_types = [{"directive" : "workflow" , "tags" : []}],
281+ needs_types = [
282+ {"directive" : "tool_req" , "tags" : ["requirement_excl_process" ]},
283+ {"directive" : "feat_req" , "tags" : ["requirement" ]},
284+ {"directive" : "gd_req" , "tags" : ["requirement" ]},
285+ ],
319286 ),
320287 ),
321288 None ,
@@ -325,28 +292,6 @@ def test_autodiscovery_respects_include_external_scope(
325292 assert set (payload ["metrics_by_type" ].keys ()) == {"feat_req" , "gd_req" , "tool_req" }
326293
327294
328- def test_autodiscovery_handles_needitem_like_objects (
329- monkeypatch : pytest .MonkeyPatch , tmp_path : Path
330- ) -> None :
331- monkeypatch .setattr (metamodel_init , "SphinxNeedsData" , _FakeObjectNeedsData )
332-
333- metamodel_init ._write_metrics_json (
334- cast (
335- Sphinx ,
336- _app (
337- tmp_path ,
338- include_external = False ,
339- requirement_types = "" ,
340- needs_types = [{"directive" : "workflow" , "tags" : []}],
341- ),
342- ),
343- None ,
344- )
345-
346- payload = json .loads ((tmp_path / "metrics.json" ).read_text (encoding = "utf-8" ))
347- assert set (payload ["metrics_by_type" ].keys ()) == {"feat_req" , "tool_req" }
348-
349-
350295@pytest .mark .parametrize (
351296 ("requirement_types" , "include_external" , "should_exist" , "expected_totals" ),
352297 [
0 commit comments