@@ -65,7 +65,7 @@ class TestCredentialsField(unittest.TestCase):
65
65
def setUp (self ):
66
66
self .fake_model = FakeCredentialsModel ()
67
67
self .fake_model_field = self .fake_model ._meta .get_field ('credentials' )
68
- self .field = CredentialsField ()
68
+ self .field = CredentialsField (null = True )
69
69
self .credentials = Credentials ()
70
70
self .pickle_str = _from_bytes (
71
71
base64 .b64encode (pickle .dumps (self .credentials )))
@@ -95,6 +95,10 @@ def test_field_value_to_string_none(self):
95
95
value_str = self .fake_model_field .value_to_string (self .fake_model )
96
96
self .assertEqual (value_str , None )
97
97
98
+ def test_credentials_without_null (self ):
99
+ credentials = CredentialsField ()
100
+ self .assertTrue (credentials .null )
101
+
98
102
99
103
class TestFlowField (unittest .TestCase ):
100
104
@@ -104,7 +108,7 @@ class FakeFlowModel(models.Model):
104
108
def setUp (self ):
105
109
self .fake_model = self .FakeFlowModel ()
106
110
self .fake_model_field = self .fake_model ._meta .get_field ('flow' )
107
- self .field = FlowField ()
111
+ self .field = FlowField (null = True )
108
112
self .flow = Flow ()
109
113
self .pickle_str = _from_bytes (
110
114
base64 .b64encode (pickle .dumps (self .flow )))
@@ -130,6 +134,10 @@ def test_field_value_to_string_none(self):
130
134
value_str = self .fake_model_field .value_to_string (self .fake_model )
131
135
self .assertEqual (value_str , None )
132
136
137
+ def test_flow_with_null (self ):
138
+ flow = FlowField ()
139
+ self .assertTrue (flow .null )
140
+
133
141
134
142
class TestStorage (unittest .TestCase ):
135
143
@@ -176,6 +184,37 @@ def test_locked_get(self, djangoModel):
176
184
self .assertEqual (
177
185
credential , fake_model_with_credentials .credentials )
178
186
187
+ @mock .patch ('django.db.models' )
188
+ def test_locked_get_no_entities (self , djangoModel ):
189
+ entities = [
190
+ ]
191
+ filter_mock = mock .Mock (return_value = entities )
192
+ object_mock = mock .Mock ()
193
+ object_mock .filter = filter_mock
194
+ FakeCredentialsModelMock .objects = object_mock
195
+
196
+ storage = Storage (FakeCredentialsModelMock , self .key_name ,
197
+ self .key_value , self .property_name )
198
+ credential = storage .locked_get ()
199
+ self .assertIsNone (credential )
200
+
201
+ @mock .patch ('django.db.models' )
202
+ def test_locked_get_no_set_store (self , djangoModel ):
203
+ fake_model_with_credentials = FakeCredentialsModelMockNoSet ()
204
+ entities = [
205
+ fake_model_with_credentials
206
+ ]
207
+ filter_mock = mock .Mock (return_value = entities )
208
+ object_mock = mock .Mock ()
209
+ object_mock .filter = filter_mock
210
+ FakeCredentialsModelMockNoSet .objects = object_mock
211
+
212
+ storage = Storage (FakeCredentialsModelMockNoSet , self .key_name ,
213
+ self .key_value , self .property_name )
214
+ credential = storage .locked_get ()
215
+ self .assertEqual (
216
+ credential , fake_model_with_credentials .credentials )
217
+
179
218
@mock .patch ('django.db.models' )
180
219
def test_locked_put (self , djangoModel ):
181
220
storage = Storage (FakeCredentialsModelMock , self .key_name ,
@@ -246,5 +285,15 @@ def save(self):
246
285
credentials = CredentialWithSetStore ()
247
286
248
287
288
+ class FakeCredentialsModelMockNoSet (object ):
289
+
290
+ def __init__ (self , set_store = False , * args , ** kwargs ):
291
+ self .model = FakeCredentialsModelMock
292
+ self .saved = False
293
+ self .deleted = False
294
+
295
+ credentials = CredentialsField ()
296
+
297
+
249
298
if __name__ == '__main__' : # pragma: NO COVER
250
299
unittest .main ()
0 commit comments