@@ -176,8 +176,8 @@ def test_summarize_pod_containers_last_restart_time():
176176 assert summary .last_restart_at == expected
177177
178178
179- def test_prioritize_pods_for_creation_monitor_prefers_restarts ():
180- """재시작된 Pod가 최신 생성 Pod보다 우선 정렬된다 ."""
179+ def test_prioritize_pods_for_creation_monitor_orders_by_activity ():
180+ """재시작 시각이 최신인 Pod가 먼저 노출된다 ."""
181181 restarted_pod = kubernetes_monitoring ._wrap_kubectl_value (
182182 {
183183 "metadata" : {
@@ -194,7 +194,7 @@ def test_prioritize_pods_for_creation_monitor_prefers_restarts():
194194 "ready" : True ,
195195 "restartCount" : 3 ,
196196 "lastState" : {
197- "terminated" : {"finishedAt" : "2024-05-01T03 :00:00Z" }
197+ "terminated" : {"finishedAt" : "2024-06-05T03 :00:00Z" }
198198 },
199199 }
200200 ],
@@ -223,11 +223,61 @@ def test_prioritize_pods_for_creation_monitor_prefers_restarts():
223223 [fresh_pod , restarted_pod ]
224224 )
225225 assert [entry .pod_name for entry in prioritized ] == ["restarted" , "fresh" ]
226- expected_activity = kubernetes_monitoring ._ensure_datetime ("2024-05-01T03 :00:00Z" )
226+ expected_activity = kubernetes_monitoring ._ensure_datetime ("2024-06-05T03 :00:00Z" )
227227 assert prioritized [0 ].activity_timestamp == expected_activity
228228 assert prioritized [0 ].summary .restarts == 3
229229
230230
231+ def test_prioritize_pods_for_creation_monitor_respects_creation_order ():
232+ """재시작이 오래된 Pod보다 새로 생성된 Pod가 우선한다."""
233+ restarted_pod = kubernetes_monitoring ._wrap_kubectl_value (
234+ {
235+ "metadata" : {
236+ "name" : "old-restarted" ,
237+ "namespace" : "default" ,
238+ "creationTimestamp" : "2024-01-01T00:00:00Z" ,
239+ },
240+ "status" : {
241+ "phase" : "Running" ,
242+ "podIP" : "10.0.0.1" ,
243+ "containerStatuses" : [
244+ {
245+ "name" : "app" ,
246+ "ready" : True ,
247+ "restartCount" : 3 ,
248+ "lastState" : {
249+ "terminated" : {"finishedAt" : "2024-02-01T00:00:00Z" }
250+ },
251+ }
252+ ],
253+ },
254+ "spec" : {"containers" : [{"name" : "app" }], "nodeName" : "node-a" },
255+ }
256+ )
257+ fresh_pod = kubernetes_monitoring ._wrap_kubectl_value (
258+ {
259+ "metadata" : {
260+ "name" : "fresh" ,
261+ "namespace" : "default" ,
262+ "creationTimestamp" : "2024-06-01T00:00:00Z" ,
263+ },
264+ "status" : {
265+ "phase" : "Running" ,
266+ "podIP" : "10.0.0.2" ,
267+ "containerStatuses" : [
268+ {"name" : "app" , "ready" : True , "restartCount" : 0 }
269+ ],
270+ },
271+ "spec" : {"containers" : [{"name" : "app" }], "nodeName" : "node-b" },
272+ }
273+ )
274+ prioritized = kubernetes_monitoring ._prioritize_pods_for_creation_monitor (
275+ [restarted_pod , fresh_pod ]
276+ )
277+ assert [entry .pod_name for entry in prioritized ] == ["fresh" , "old-restarted" ]
278+ assert prioritized [0 ].summary .restarts == 0
279+
280+
231281def test_extract_node_label_infos ():
232282 """선택한 라벨 키 기준으로 노드 목록을 요약한다."""
233283 nodes_payload = [
0 commit comments