55import copy
66import json
77from typing import Any
8- from unittest .mock import ANY
98
109import pytest
1110
12- from juju .client ._definitions import (
13- FullStatus ,
14- )
11+ from juju .client ._definitions import FullStatus
1512from juju .client .facade import _convert_response
1613from juju .errors import JujuAgentError , JujuAppError , JujuMachineError , JujuUnitError
1714from juju .model ._idle import CheckStatus , check
1815
1916
2017def test_check_status (full_status : FullStatus , kwargs ):
2118 status = check (full_status , ** kwargs )
22- assert status == CheckStatus (
23- units = {
24- "grafana-agent-k8s/0" ,
25- "hexanator/0" ,
26- "mysql-test-app/0" ,
27- "mysql-test-app/1" ,
28- },
29- ready_units = {
30- "grafana-agent-k8s/0" ,
31- "hexanator/0" ,
32- "mysql-test-app/0" ,
33- "mysql-test-app/1" ,
34- },
35- idle_units = {
36- "grafana-agent-k8s/0" ,
37- "hexanator/0" ,
38- "mysql-test-app/0" ,
39- "mysql-test-app/1" ,
40- },
41- )
19+ units = {
20+ "grafana-agent-k8s/0" ,
21+ "hexanator/0" ,
22+ "mysql-test-app/0" ,
23+ "mysql-test-app/1" ,
24+ }
25+ assert status == CheckStatus (units , units , units )
4226
4327
4428def test_check_status_missing_app (full_status : FullStatus , kwargs ):
@@ -89,18 +73,16 @@ def test_app_error(response: dict[str, Any], kwargs):
8973def test_ready_units (full_status : FullStatus , kwargs ):
9074 kwargs ["apps" ] = ["mysql-test-app" ]
9175 status = check (full_status , ** kwargs )
92- assert status == CheckStatus (
93- {"mysql-test-app/0" , "mysql-test-app/1" },
94- {"mysql-test-app/0" , "mysql-test-app/1" },
95- {"mysql-test-app/0" , "mysql-test-app/1" },
96- )
76+ units = {"mysql-test-app/0" , "mysql-test-app/1" }
77+ assert status == CheckStatus (units , units , units )
9778
9879
9980def test_active_units (full_status : FullStatus , kwargs ):
10081 kwargs ["apps" ] = ["mysql-test-app" ]
10182 kwargs ["status" ] = "active"
10283 status = check (full_status , ** kwargs )
103- assert status == CheckStatus ({"mysql-test-app/0" , "mysql-test-app/1" }, set (), ANY )
84+ units = {"mysql-test-app/0" , "mysql-test-app/1" }
85+ assert status == CheckStatus (units , ready_units = set (), idle_units = units )
10486
10587
10688def test_ready_unit_requires_idle_agent (response : dict [str , Any ], kwargs ):
@@ -115,7 +97,7 @@ def test_ready_unit_requires_idle_agent(response: dict[str, Any], kwargs):
11597 assert status == CheckStatus (
11698 {"hexanator/0" , "hexanator/1" },
11799 {"hexanator/0" , "hexanator/1" },
118- {"hexanator/0" },
100+ idle_units = {"hexanator/0" },
119101 )
120102
121103
@@ -128,7 +110,8 @@ def test_ready_unit_requires_workload_status(response: dict[str, Any], kwargs):
128110 kwargs ["status" ] = "active"
129111
130112 status = check (convert (response ), ** kwargs )
131- assert status == CheckStatus ({"hexanator/0" , "hexanator/1" }, {"hexanator/0" }, ANY )
113+ units = {"hexanator/0" , "hexanator/1" }
114+ assert status == CheckStatus (units , ready_units = {"hexanator/0" }, idle_units = units )
132115
133116
134117def test_agent_error (response : dict [str , Any ], kwargs ):
@@ -178,7 +161,7 @@ def test_machine_ok(response: dict[str, Any], kwargs):
178161 kwargs ["raise_on_error" ] = True
179162
180163 status = check (convert (response ), ** kwargs )
181- assert status == CheckStatus ({"hexanator/0" }, {"hexanator/0" }, ANY )
164+ assert status == CheckStatus ({"hexanator/0" }, {"hexanator/0" }, { "hexanator/0" } )
182165
183166
184167def test_machine_error (response : dict [str , Any ], kwargs ):
@@ -240,7 +223,7 @@ def test_maintenance(response: dict[str, Any], kwargs):
240223 kwargs ["status" ] = "maintenance"
241224
242225 status = check (convert (response ), ** kwargs )
243- assert status == CheckStatus ({"hexanator/0" }, {"hexanator/0" }, ANY )
226+ assert status == CheckStatus ({"hexanator/0" }, {"hexanator/0" }, { "hexanator/0" } )
244227
245228
246229@pytest .fixture
0 commit comments