11"""Tests for CLI entry point."""
22
3+ import os
34import subprocess
45import sys
56
7+ # Env that disables Rich ANSI codes so assertions can match plain text
8+ _PLAIN_ENV = {** os .environ , "NO_COLOR" : "1" }
9+
610
711def test_help_exits_zero ():
812 result = subprocess .run (
913 [sys .executable , "-m" , "zad_cli" , "--help" ],
1014 capture_output = True ,
1115 text = True ,
16+ env = _PLAIN_ENV ,
1217 )
1318 assert result .returncode == 0
1419 assert "CLI for ZAD" in result .stdout
@@ -23,6 +28,7 @@ def test_version():
2328 [sys .executable , "-m" , "zad_cli" , "version" ],
2429 capture_output = True ,
2530 text = True ,
31+ env = _PLAIN_ENV ,
2632 )
2733 assert result .returncode == 0
2834 assert "zad-cli" in result .stdout
@@ -33,6 +39,7 @@ def test_project_help_without_api_key():
3339 [sys .executable , "-m" , "zad_cli" , "project" , "--help" ],
3440 capture_output = True ,
3541 text = True ,
42+ env = _PLAIN_ENV ,
3643 )
3744 assert result .returncode == 0
3845 assert "list" in result .stdout
@@ -48,6 +55,7 @@ def test_deployment_help_shows_create():
4855 [sys .executable , "-m" , "zad_cli" , "deployment" , "--help" ],
4956 capture_output = True ,
5057 text = True ,
58+ env = _PLAIN_ENV ,
5159 )
5260 assert result .returncode == 0
5361 assert "create" in result .stdout
@@ -63,7 +71,7 @@ def test_deploy_create_takes_positional_name():
6371 [sys .executable , "-m" , "zad_cli" , "deployment" , "create" , "test" ],
6472 capture_output = True ,
6573 text = True ,
66- env = {"PATH" : "/usr/bin:/bin" },
74+ env = {"PATH" : "/usr/bin:/bin" , "NO_COLOR" : "1" },
6775 )
6876 assert result .returncode != 0
6977 # Should fail on missing project/key or missing component args, not on argument parsing
@@ -75,6 +83,7 @@ def test_component_help_shows_delete():
7583 [sys .executable , "-m" , "zad_cli" , "component" , "--help" ],
7684 capture_output = True ,
7785 text = True ,
86+ env = _PLAIN_ENV ,
7887 )
7988 assert result .returncode == 0
8089 assert "delete" in result .stdout
@@ -87,6 +96,7 @@ def test_service_help_shows_delete():
8796 [sys .executable , "-m" , "zad_cli" , "service" , "--help" ],
8897 capture_output = True ,
8998 text = True ,
99+ env = _PLAIN_ENV ,
90100 )
91101 assert result .returncode == 0
92102 assert "delete" in result .stdout
@@ -100,6 +110,7 @@ def test_task_list_uses_filter_project():
100110 [sys .executable , "-m" , "zad_cli" , "task" , "list" , "--help" ],
101111 capture_output = True ,
102112 text = True ,
113+ env = _PLAIN_ENV ,
103114 )
104115 assert result .returncode == 0
105116 assert "--filter-project" in result .stdout
@@ -111,6 +122,7 @@ def test_deployment_create_has_yes_flag():
111122 [sys .executable , "-m" , "zad_cli" , "deployment" , "create" , "--help" ],
112123 capture_output = True ,
113124 text = True ,
125+ env = _PLAIN_ENV ,
114126 )
115127 assert result .returncode == 0
116128 assert "--yes" in result .stdout
@@ -122,6 +134,7 @@ def test_logs_takes_positional_deployment():
122134 [sys .executable , "-m" , "zad_cli" , "logs" , "--help" ],
123135 capture_output = True ,
124136 text = True ,
137+ env = _PLAIN_ENV ,
125138 )
126139 assert result .returncode == 0
127140 assert "DEPLOYMENT" in result .stdout
@@ -132,6 +145,7 @@ def test_clone_help_shows_check():
132145 [sys .executable , "-m" , "zad_cli" , "clone" , "--help" ],
133146 capture_output = True ,
134147 text = True ,
148+ env = _PLAIN_ENV ,
135149 )
136150 assert result .returncode == 0
137151 assert "check" in result .stdout
@@ -159,5 +173,6 @@ def test_all_subcommands_have_help():
159173 [sys .executable , "-m" , "zad_cli" , cmd , "--help" ],
160174 capture_output = True ,
161175 text = True ,
176+ env = _PLAIN_ENV ,
162177 )
163178 assert result .returncode == 0 , f"{ cmd } --help failed: { result .stderr } "
0 commit comments