12
12
# See the License for the specific language governing permissions and
13
13
# limitations under the License.
14
14
15
- from tfworker .backends .base import BackendError
16
- import pytest
17
- from unittest .mock import patch , call
18
15
from unittest import mock
16
+ from unittest .mock import call , patch
17
+
18
+ import pytest
19
+ from tfworker .backends .base import BackendError
19
20
20
21
21
22
class MockGCSClient :
22
23
def __init__ (self ):
23
24
self ._connection = MockGCSConnection ()
24
-
25
+
25
26
@property
26
27
def get_bucket (self ):
27
28
return MockGCSBucket
29
+
30
+
28
31
class MockGCSConnection :
29
32
@property
30
33
def api_request (self ):
31
34
return None
32
35
36
+
33
37
class MockGCSBucket :
34
38
def __init__ (self , bucket ):
35
39
self ._blobs = [
36
40
MockGCSBlob ("terraform/test/foo/default.tfstate" , "" , b'{"resources":[]}' ),
37
41
MockGCSBlob ("terraform/test/bar/default.tfstate" , "" , b'{"resources":[]}' ),
38
- MockGCSBlob ("terraform/fail/tflock/default.tflock" , "" , b'{"resources":[]}' ),
42
+ MockGCSBlob (
43
+ "terraform/fail/tflock/default.tflock" , "" , b'{"resources":[]}'
44
+ ),
39
45
MockGCSBlob ("terraform/fail/other/other.file" , "" , b'{"resources":[]}' ),
40
46
]
41
47
42
48
with open (f"{ bucket } /tests/fixtures/states/occupied.tfstate" , "rb" ) as f :
43
- self ._blobs .append (MockGCSBlob ("terraform/fail/occupied/default.tfstate" , "" , f .read ()))
44
-
49
+ self ._blobs .append (
50
+ MockGCSBlob ("terraform/fail/occupied/default.tfstate" , "" , f .read ())
51
+ )
45
52
46
53
def list_blobs (self , prefix ):
47
54
blobs = list (filter (lambda x : x .name .startswith (prefix ), self ._blobs ))
48
55
assert len (blobs ) > 0
49
56
return blobs
57
+
58
+
50
59
class MockGCSBlob :
51
60
def __init__ (self , name , path , content ):
52
61
self .name = name
@@ -59,6 +68,7 @@ def download_as_string(self):
59
68
def delete (self ):
60
69
pass
61
70
71
+
62
72
class TestClean :
63
73
def test_clean_prefix_check (self , gbasec ):
64
74
gbasec .backend ._gcs_prefix = None
@@ -102,13 +112,17 @@ def test_clean_deployment_limit(self, mock_clean, mock_iter, gbasec):
102
112
with pytest .raises (BackendError ):
103
113
gbasec .backend ._clean_deployment_limit (("zed" ,))
104
114
105
-
106
115
# @todo: there is a more accurate test, but I'm unable to get it working properly
107
- gbasec .backend ._clean_deployment_limit (("foo" , "bar" ,))
116
+ gbasec .backend ._clean_deployment_limit (
117
+ (
118
+ "foo" ,
119
+ "bar" ,
120
+ )
121
+ )
108
122
assert mock_clean .call_count == 2
109
123
# both methods below are failing, attempted with decorator and yeilding the mock
110
124
# calls = [
111
- # call('terraform/test/foo',),
125
+ # call('terraform/test/foo',),
112
126
# call('terraform/test/bar',),
113
127
# ]
114
128
# assert mock_clean.assert_has_calls(calls)
@@ -166,7 +180,6 @@ def test_parse_gcs_items(self, gbasec, prefix, inval, outval, expected_raise):
166
180
assert gbasec .backend ._parse_gcs_items (inval ) == outval
167
181
168
182
169
-
170
183
def test_google_hcl (gbasec ):
171
184
render = gbasec .backend .hcl ("test" )
172
185
expected_render = """ backend "gcs" {
0 commit comments