1- import os
1+ import copy , os
22
33from datetime import datetime , timedelta
44from pathlib import Path
1414from commodore .dependency_mgmt import fetch_components , fetch_packages
1515from commodore .gitrepo import GitRepo
1616
17- from test_dependency_mgmt import setup_components_upstream , _setup_packages
17+ from test_dependency_mgmt import setup_aliases_upstream , _setup_packages
1818
1919from commodore .catalog import CompileMeta
2020from commodore .cluster import report_compile_metadata
@@ -81,18 +81,34 @@ def test_compile_meta_creation(
8181 components = ["foo" , "bar" , "baz" , "qux" ]
8282 packages = ["foo" , "bar" ]
8383
84- # setup mock components
85- patch_discover_components . return_value = ( components , {})
86- # setup_components_upstream sets version=None for all components
87- cdeps = setup_components_upstream ( tmp_path , components )
84+ # foo,bar,baz are setup as "standard" upstreams
85+ aliases = { cn : cn for cn in components if cn != "qux" }
86+ # the actual aliases and qux need to be handled separately
87+ aliases2 = { "qux" : "qux" , "quxxer" : "qux" , "barer" : "bar" }
8888
89- # NOTE: We assume that setup_components_upstream creates upstream repos in
89+ # setup_aliases_upstream sets version=None for all components
90+ cdeps = setup_aliases_upstream (tmp_path , aliases .items ())
91+ # create upstream for `qux` with subpath
92+ cdeps .update (
93+ setup_aliases_upstream (tmp_path , [("qux" , "qux" )], sub_path = "component" )
94+ )
95+ # We manually create copies of `qux` and `bar` to prepare the alias upstreams
96+ cdeps ["quxxer" ] = copy .deepcopy (cdeps ["qux" ])
97+ cdeps ["barer" ] = copy .deepcopy (cdeps ["bar" ])
98+
99+ # setup mock components, we want the full aliases dict here
100+ aliases .update (aliases2 )
101+ patch_discover_components .return_value = (components , aliases )
102+
103+ # NOTE: We assume that setup_aliases_upstream creates upstream repos in
90104 # `tmp_path/upstream/<component-name>`
91105 crepos = {cn : git .Repo (tmp_path / "upstream" / cn ) for cn in components }
92106
93107 crepos ["foo" ].version = "master"
94108 crepos ["bar" ].create_tag ("v1.2.3" )
109+ # Setup separate versions for bar and it's alias
95110 cdeps ["bar" ].version = "v1.2.3"
111+ cdeps ["barer" ].version = "master"
96112 cdeps ["baz" ].version = crepos ["baz" ].head .commit .hexsha
97113
98114 patch_read_components .return_value = cdeps
@@ -113,13 +129,6 @@ def test_compile_meta_creation(
113129 fetch_packages (config )
114130 fetch_components (config )
115131
116- config .get_components ()["qux" ]._sub_path = "component"
117-
118- aliases = {cn : cn for cn in components }
119- # create alias to verify instance reporting
120- aliases ["quxxer" ] = "qux"
121- config .register_component_aliases (aliases )
122-
123132 meta = CompileMeta (config )
124133 meta_dict = meta .as_dict ()
125134 assert set (meta_dict .keys ()) == {
@@ -146,7 +155,14 @@ def test_compile_meta_creation(
146155 ) < timedelta (seconds = 1 )
147156
148157 # check instances
149- assert set (meta_dict ["instances" ].keys ()) == {"foo" , "bar" , "baz" , "qux" , "quxxer" }
158+ assert set (meta_dict ["instances" ].keys ()) == {
159+ "foo" ,
160+ "bar" ,
161+ "barer" ,
162+ "baz" ,
163+ "qux" ,
164+ "quxxer" ,
165+ }
150166 for alias , info in meta_dict ["instances" ].items ():
151167 cn = alias [0 :3 ]
152168 assert len ({"url" , "version" , "gitSha" , "component" } - set (info .keys ())) == 0
0 commit comments