77from . import helpers
88
99
10+ @pytest .mark .parametrize ("reverse_flag" , ["" , "--reverse" ])
1011@pytest .mark .parametrize ("quiet_flag" , ["" , "-q" , "--quiet" ])
1112@pytest .mark .parametrize ("env_selector" , ["" , "name" , "prefix" ])
1213@pytest .mark .parametrize ("shared_pkgs_dirs" , [True ], indirect = True )
13- def test_list (tmp_home , tmp_root_prefix , tmp_env_name , tmp_xtensor_env , env_selector , quiet_flag ):
14+ def test_list (
15+ tmp_home , tmp_root_prefix , tmp_env_name , tmp_xtensor_env , env_selector , quiet_flag , reverse_flag
16+ ):
1417 if env_selector == "prefix" :
15- res = helpers .umamba_list ("-p" , tmp_xtensor_env , "--json" , quiet_flag )
18+ res = helpers .umamba_list ("-p" , tmp_xtensor_env , "--json" , quiet_flag , reverse_flag )
1619 elif env_selector == "name" :
17- res = helpers .umamba_list ("-n" , tmp_env_name , "--json" , quiet_flag )
20+ res = helpers .umamba_list ("-n" , tmp_env_name , "--json" , quiet_flag , reverse_flag )
1821 else :
19- res = helpers .umamba_list ("--json" , quiet_flag )
22+ res = helpers .umamba_list ("--json" , quiet_flag , reverse_flag )
2023
2124 assert len (res ) > 2
2225
@@ -28,6 +31,50 @@ def test_list(tmp_home, tmp_root_prefix, tmp_env_name, tmp_xtensor_env, env_sele
2831 for i in res
2932 )
3033
34+ if reverse_flag == "--reverse" :
35+ assert names .index ("xtensor" ) > names .index ("xtl" )
36+ else :
37+ assert names .index ("xtensor" ) < names .index ("xtl" )
38+
39+
40+ @pytest .mark .parametrize ("reverse_flag" , ["" , "--reverse" ])
41+ @pytest .mark .parametrize ("quiet_flag" , ["" , "-q" , "--quiet" ])
42+ @pytest .mark .parametrize ("env_selector" , ["" , "name" , "prefix" ])
43+ @pytest .mark .parametrize ("shared_pkgs_dirs" , [True ], indirect = True )
44+ def test_list_no_json (
45+ tmp_home , tmp_root_prefix , tmp_env_name , tmp_xtensor_env , env_selector , quiet_flag , reverse_flag
46+ ):
47+ if env_selector == "prefix" :
48+ res = helpers .umamba_list ("-p" , tmp_xtensor_env , quiet_flag , reverse_flag )
49+ elif env_selector == "name" :
50+ res = helpers .umamba_list ("-n" , tmp_env_name , quiet_flag , reverse_flag )
51+ else :
52+ res = helpers .umamba_list (quiet_flag , reverse_flag )
53+
54+ assert len (res ) > 10
55+
56+ assert "xtensor" in res
57+ assert "xtl" in res
58+
59+ # This is what res looks like in this case (with or without a header delimiter):
60+ # List of packages in environment: "xxx"
61+
62+ # Name Version Build Channel
63+ # ────────────────────────────────────────────────────
64+ # _libgcc_mutex 0.1 conda_forge conda-forge
65+ # _openmp_mutex 4.5 2_gnu conda-forge
66+ packages = res [res .rindex ("Channel" ) :].split ("\n " , 1 )[1 ]
67+ packages_list = packages .strip ().split ("\n " )[1 :]
68+ for package in packages_list :
69+ channel = package .split (" " )[- 1 ]
70+ channel = channel .replace ("\r " , "" )
71+ assert channel == "conda-forge"
72+
73+ if reverse_flag == "--reverse" :
74+ assert res .find ("xtensor" ) > res .find ("xtl" )
75+ else :
76+ assert res .find ("xtensor" ) < res .find ("xtl" )
77+
3178
3279@pytest .mark .parametrize ("quiet_flag" , ["" , "-q" , "--quiet" ])
3380@pytest .mark .parametrize ("shared_pkgs_dirs" , [True ], indirect = True )
0 commit comments