55from tests .utils .plugins_cli import parse_listing
66
77
8+ @pytest .mark .requires_installation
89def test_plugins_installation (httpie_plugins_success , interface , dummy_plugin ):
910 lines = httpie_plugins_success ('install' , dummy_plugin .path )
1011 assert lines [0 ].startswith (
@@ -14,6 +15,20 @@ def test_plugins_installation(httpie_plugins_success, interface, dummy_plugin):
1415 assert interface .is_installed (dummy_plugin .name )
1516
1617
18+ @pytest .mark .requires_installation
19+ def test_plugin_installation_with_custom_config (httpie_plugins_success , interface , dummy_plugin ):
20+ interface .environment .config ['default_options' ] = ['--session-read-only' , 'some-path.json' , 'other' , 'args' ]
21+ interface .environment .config .save ()
22+
23+ lines = httpie_plugins_success ('install' , dummy_plugin .path )
24+ assert lines [0 ].startswith (
25+ f'Installing { dummy_plugin .path } '
26+ )
27+ assert f'Successfully installed { dummy_plugin .name } -{ dummy_plugin .version } ' in lines
28+ assert interface .is_installed (dummy_plugin .name )
29+
30+
31+ @pytest .mark .requires_installation
1732def test_plugins_listing (httpie_plugins_success , interface , dummy_plugin ):
1833 httpie_plugins_success ('install' , dummy_plugin .path )
1934 data = parse_listing (httpie_plugins_success ('list' ))
@@ -23,6 +38,7 @@ def test_plugins_listing(httpie_plugins_success, interface, dummy_plugin):
2338 }
2439
2540
41+ @pytest .mark .requires_installation
2642def test_plugins_listing_multiple (interface , httpie_plugins_success , dummy_plugins ):
2743 paths = [plugin .path for plugin in dummy_plugins ]
2844 httpie_plugins_success ('install' , * paths )
@@ -34,12 +50,14 @@ def test_plugins_listing_multiple(interface, httpie_plugins_success, dummy_plugi
3450 }
3551
3652
53+ @pytest .mark .requires_installation
3754def test_plugins_uninstall (interface , httpie_plugins_success , dummy_plugin ):
3855 httpie_plugins_success ('install' , dummy_plugin .path )
3956 httpie_plugins_success ('uninstall' , dummy_plugin .name )
4057 assert not interface .is_installed (dummy_plugin .name )
4158
4259
60+ @pytest .mark .requires_installation
4361def test_plugins_listing_after_uninstall (interface , httpie_plugins_success , dummy_plugin ):
4462 httpie_plugins_success ('install' , dummy_plugin .path )
4563 httpie_plugins_success ('uninstall' , dummy_plugin .name )
@@ -48,6 +66,7 @@ def test_plugins_listing_after_uninstall(interface, httpie_plugins_success, dumm
4866 assert len (data ) == 0
4967
5068
69+ @pytest .mark .requires_installation
5170def test_plugins_uninstall_specific (interface , httpie_plugins_success ):
5271 new_plugin_1 = interface .make_dummy_plugin ()
5372 new_plugin_2 = interface .make_dummy_plugin ()
@@ -61,6 +80,7 @@ def test_plugins_uninstall_specific(interface, httpie_plugins_success):
6180 assert not interface .is_installed (target_plugin .name )
6281
6382
83+ @pytest .mark .requires_installation
6484def test_plugins_installation_failed (httpie_plugins , interface ):
6585 plugin = interface .make_dummy_plugin (build = False )
6686 result = httpie_plugins ('install' , plugin .path )
@@ -69,6 +89,7 @@ def test_plugins_installation_failed(httpie_plugins, interface):
6989 assert result .stderr .splitlines ()[- 1 ].strip ().startswith ("Can't install" )
7090
7191
92+ @pytest .mark .requires_installation
7293def test_plugins_uninstall_non_existent (httpie_plugins , interface ):
7394 plugin = interface .make_dummy_plugin (build = False )
7495 result = httpie_plugins ('uninstall' , plugin .name )
@@ -80,6 +101,7 @@ def test_plugins_uninstall_non_existent(httpie_plugins, interface):
80101 )
81102
82103
104+ @pytest .mark .requires_installation
83105def test_plugins_double_uninstall (httpie_plugins , httpie_plugins_success , dummy_plugin ):
84106 httpie_plugins_success ("install" , dummy_plugin .path )
85107 httpie_plugins_success ("uninstall" , dummy_plugin .name )
@@ -93,6 +115,7 @@ def test_plugins_double_uninstall(httpie_plugins, httpie_plugins_success, dummy_
93115 )
94116
95117
118+ @pytest .mark .requires_installation
96119def test_plugins_upgrade (httpie_plugins , httpie_plugins_success , dummy_plugin ):
97120 httpie_plugins_success ("install" , dummy_plugin .path )
98121
@@ -105,6 +128,7 @@ def test_plugins_upgrade(httpie_plugins, httpie_plugins_success, dummy_plugin):
105128 assert data [dummy_plugin .name ]['version' ] == '2.0.0'
106129
107130
131+ @pytest .mark .requires_installation
108132def test_broken_plugins (httpie_plugins , httpie_plugins_success , dummy_plugin , broken_plugin ):
109133 httpie_plugins_success ("install" , dummy_plugin .path , broken_plugin .path )
110134
@@ -127,6 +151,7 @@ def test_broken_plugins(httpie_plugins, httpie_plugins_success, dummy_plugin, br
127151 assert len (data ) == 1
128152
129153
154+ @pytest .mark .requires_installation
130155def test_plugins_cli_error_message_without_args ():
131156 # No arguments
132157 result = httpie (no_debug = True )
@@ -143,6 +168,7 @@ def test_plugins_cli_error_message_without_args():
143168 'POST pie.dev/post header:value a=b header_2:value x:=1'
144169 ]
145170)
171+ @pytest .mark .requires_installation
146172def test_plugins_cli_error_messages_with_example (example ):
147173 result = httpie (* example .split (), no_debug = True )
148174 assert result .exit_status == ExitStatus .ERROR
@@ -158,6 +184,7 @@ def test_plugins_cli_error_messages_with_example(example):
158184 'unknown.com UNPARSABLE????SYNTAX' ,
159185 ]
160186)
187+ @pytest .mark .requires_installation
161188def test_plugins_cli_error_messages_invalid_example (example ):
162189 result = httpie (* example .split (), no_debug = True )
163190 assert result .exit_status == ExitStatus .ERROR
0 commit comments