@@ -76,30 +76,35 @@ def mock_build_scannable_object(item, container, kind):
7676 # Call the method
7777 result = await mock_kubernetes_loader ._list_all_groupedjobs ()
7878
79- # Verify we got 2 groups ( frontend and backend)
79+ # Verify we got 2 objects (1 frontend + 1 backend, one per unique container name )
8080 assert len (result ) == 2
8181
82- # Find the frontend group
83- frontend_group = next ((g for g in result if g .name == "app=frontend" ), None )
84- assert frontend_group is not None
85- assert frontend_group .namespace == "default"
82+ # Group results by name to verify grouping
83+ frontend_objects = [g for g in result if g .name == "app=frontend" ]
84+ backend_objects = [g for g in result if g .name == "app=backend" ]
8685
87- # Verify the frontend group is limited to 3 jobs (the limit)
88- assert len (frontend_group ._api_resource ._grouped_jobs ) == 3
89- assert frontend_group ._api_resource ._grouped_jobs [0 ].metadata .name == "job-1"
90- assert frontend_group ._api_resource ._grouped_jobs [1 ].metadata .name == "job-2"
91- assert frontend_group ._api_resource ._grouped_jobs [2 ].metadata .name == "job-3"
86+ # Verify we got 1 frontend object (one per unique container name)
87+ assert len (frontend_objects ) == 1
88+ assert frontend_objects [0 ].namespace == "default"
89+ assert frontend_objects [0 ].container == "main-container"
9290
93- # Find the backend group
94- backend_group = next (( g for g in result if g . name == "app=backend" ), None )
95- assert backend_group is not None
96- assert backend_group . namespace == "default "
91+ # Verify we got 1 backend object (one per unique container name)
92+ assert len ( backend_objects ) == 1
93+ assert backend_objects [ 0 ]. namespace == "default"
94+ assert backend_objects [ 0 ]. container == "main-container "
9795
98- # Verify the backend group is also limited to 3 jobs
99- assert len (backend_group ._api_resource ._grouped_jobs ) == 3
100- assert backend_group ._api_resource ._grouped_jobs [0 ].metadata .name == "job-6"
101- assert backend_group ._api_resource ._grouped_jobs [1 ].metadata .name == "job-7"
102- assert backend_group ._api_resource ._grouped_jobs [2 ].metadata .name == "job-8"
96+ # Verify all objects in each group have the same grouped_jobs list
97+ frontend_grouped_jobs = frontend_objects [0 ]._api_resource ._grouped_jobs
98+ assert len (frontend_grouped_jobs ) == 3
99+ assert frontend_grouped_jobs [0 ].metadata .name == "job-1"
100+ assert frontend_grouped_jobs [1 ].metadata .name == "job-2"
101+ assert frontend_grouped_jobs [2 ].metadata .name == "job-3"
102+
103+ backend_grouped_jobs = backend_objects [0 ]._api_resource ._grouped_jobs
104+ assert len (backend_grouped_jobs ) == 3
105+ assert backend_grouped_jobs [0 ].metadata .name == "job-6"
106+ assert backend_grouped_jobs [1 ].metadata .name == "job-7"
107+ assert backend_grouped_jobs [2 ].metadata .name == "job-8"
103108
104109
105110@pytest .mark .asyncio
@@ -128,20 +133,24 @@ def mock_build_scannable_object(item, container, kind):
128133 # Call the method
129134 result = await mock_kubernetes_loader ._list_all_groupedjobs ()
130135
131- # Verify we got 2 groups (one per namespace)
136+ # Verify we got 2 objects (1 per namespace, one per unique container name )
132137 assert len (result ) == 2
133138
134- # Check namespace-1 group
135- ns1_group = next ((g for g in result if g .namespace == "namespace-1" ), None )
136- assert ns1_group is not None
137- assert ns1_group .name == "app=frontend"
138- assert len (ns1_group ._api_resource ._grouped_jobs ) == 2
139+ # Group results by namespace
140+ ns1_objects = [g for g in result if g .namespace == "namespace-1" ]
141+ ns2_objects = [g for g in result if g .namespace == "namespace-2" ]
142+
143+ # Check namespace-1 objects
144+ assert len (ns1_objects ) == 1
145+ assert ns1_objects [0 ].name == "app=frontend"
146+ assert ns1_objects [0 ].container == "main-container"
147+ assert len (ns1_objects [0 ]._api_resource ._grouped_jobs ) == 2
139148
140- # Check namespace-2 group
141- ns2_group = next (( g for g in result if g . namespace == "namespace-2" ), None )
142- assert ns2_group is not None
143- assert ns2_group . name == "app=frontend "
144- assert len (ns2_group ._api_resource ._grouped_jobs ) == 2
149+ # Check namespace-2 objects
150+ assert len ( ns2_objects ) == 1
151+ assert ns2_objects [ 0 ]. name == "app=frontend"
152+ assert ns2_objects [ 0 ]. container == "main-container "
153+ assert len (ns2_objects [ 0 ] ._api_resource ._grouped_jobs ) == 2
145154
146155
147156@pytest .mark .asyncio
@@ -171,12 +180,12 @@ def mock_build_scannable_object(item, container, kind):
171180 # Call the method
172181 result = await mock_kubernetes_loader ._list_all_groupedjobs ()
173182
174- # Verify we got 1 group with only 1 job ( the one without CronJob owner)
183+ # Verify we got 1 object ( only the job without CronJob owner)
175184 assert len (result ) == 1
176- group = result [0 ]
177- assert group .name == "app=frontend"
178- assert len (group ._api_resource ._grouped_jobs ) == 1
179- assert group ._api_resource ._grouped_jobs [0 ].metadata .name == "job-1"
185+ obj = result [0 ]
186+ assert obj .name == "app=frontend"
187+ assert len (obj ._api_resource ._grouped_jobs ) == 1
188+ assert obj ._api_resource ._grouped_jobs [0 ].metadata .name == "job-1"
180189
181190
182191@pytest .mark .asyncio
@@ -217,10 +226,13 @@ def mock_build_scannable_object(item, container, kind):
217226 # Call the method
218227 result = await mock_kubernetes_loader ._list_all_groupedjobs ()
219228
220- # Verify we got 3 groups (one for each label+value combination)
229+ # Verify we got 3 objects (one for each label+value combination, one per unique container name )
221230 assert len (result ) == 3
222231
223232 group_names = {g .name for g in result }
224233 assert "app=frontend" in group_names
225234 assert "team=backend" in group_names
226235 assert "app=api" in group_names
236+
237+ # Verify all objects have the same container name
238+ assert all (obj .container == "main-container" for obj in result )
0 commit comments