1+ import pytest
12from cloudproxy .providers .digitalocean .functions import create_proxy , delete_proxy , list_droplets
23import os
34import json
@@ -8,33 +9,51 @@ def __init__(self, id):
89 self .id = id
910
1011
11- def test_create_proxy (mocker ):
12- droplet = Droplet ("DROPLET-ID" )
12+ def load_from_file (json_file ):
13+ cwd = os .path .dirname (__file__ )
14+ with open (os .path .join (cwd , json_file ), 'r' ) as f :
15+ return json .loads (f .read ())
16+
17+
18+ @pytest .fixture
19+ def droplets (mocker ):
20+ """Fixture for droplets data."""
21+ data = load_from_file ('test_providers_digitalocean_functions_droplets_all.json' )
22+ mocker .patch ('cloudproxy.providers.digitalocean.functions.digitalocean.Manager.get_all_droplets' ,
23+ return_value = data ['droplets' ])
24+ return data ['droplets' ]
25+
26+
27+ @pytest .fixture
28+ def droplet_id ():
29+ """Fixture for droplet ID."""
30+ return "DROPLET-ID"
31+
32+
33+ def test_list_droplets (droplets ):
34+ """Test listing droplets."""
35+ result = list_droplets ()
36+ assert isinstance (result , list )
37+ assert len (result ) > 0
38+ assert result [0 ]['id' ] == 3164444 # Verify specific droplet data
39+
40+
41+ def test_create_proxy (mocker , droplet_id ):
42+ """Test creating a proxy."""
43+ droplet = Droplet (droplet_id )
1344 mocker .patch (
1445 'cloudproxy.providers.digitalocean.functions.digitalocean.Droplet.create' ,
1546 return_value = droplet
1647 )
1748 assert create_proxy () == True
1849
1950
20- def test_delete_proxy (mocker ):
21- droplet_id = test_list_droplets (mocker )[0 ]
51+ def test_delete_proxy (mocker , droplets ):
52+ """Test deleting a proxy."""
53+ assert len (droplets ) > 0
54+ droplet_id = droplets [0 ]['id' ]
2255 mocker .patch (
2356 'cloudproxy.providers.digitalocean.functions.digitalocean.Droplet.destroy' ,
2457 return_value = True
2558 )
2659 assert delete_proxy (droplet_id ) == True
27-
28-
29- def test_list_droplets (mocker ):
30- droplets = load_from_file ('test_providers_digitalocean_functions_droplets_all.json' )
31- mocker .patch ('cloudproxy.providers.digitalocean.functions.digitalocean.Manager.get_all_droplets' ,
32- return_value = droplets ['droplets' ])
33- assert type (list_droplets ()) is list
34- return list_droplets ()
35-
36-
37- def load_from_file (json_file ):
38- cwd = os .path .dirname (__file__ )
39- with open (os .path .join (cwd , json_file ), 'r' ) as f :
40- return json .loads (f .read ())
0 commit comments