Skip to content

Commit 5085d14

Browse files
author
Bill Prin
committed
Hit 100% with branch coverage
1 parent 179d2ee commit 5085d14

File tree

2 files changed

+52
-2
lines changed

2 files changed

+52
-2
lines changed

.coveragerc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ omit =
44
# Don't report coverage over platform-specific modules.
55
oauth2client/contrib/_fcntl_opener.py
66
oauth2client/contrib/_win32_opener.py
7+
oauth2client/contrib/django_util/apps.py
78
exclude_lines =
89
# Re-enable the standard pragma
910
pragma: NO COVER

tests/contrib/test_django_orm.py

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class TestCredentialsField(unittest.TestCase):
6565
def setUp(self):
6666
self.fake_model = FakeCredentialsModel()
6767
self.fake_model_field = self.fake_model._meta.get_field('credentials')
68-
self.field = CredentialsField()
68+
self.field = CredentialsField(null=True)
6969
self.credentials = Credentials()
7070
self.pickle_str = _from_bytes(
7171
base64.b64encode(pickle.dumps(self.credentials)))
@@ -95,6 +95,10 @@ def test_field_value_to_string_none(self):
9595
value_str = self.fake_model_field.value_to_string(self.fake_model)
9696
self.assertEqual(value_str, None)
9797

98+
def test_credentials_without_null(self):
99+
credentials = CredentialsField()
100+
self.assertTrue(credentials.null)
101+
98102

99103
class TestFlowField(unittest.TestCase):
100104

@@ -104,7 +108,7 @@ class FakeFlowModel(models.Model):
104108
def setUp(self):
105109
self.fake_model = self.FakeFlowModel()
106110
self.fake_model_field = self.fake_model._meta.get_field('flow')
107-
self.field = FlowField()
111+
self.field = FlowField(null=True)
108112
self.flow = Flow()
109113
self.pickle_str = _from_bytes(
110114
base64.b64encode(pickle.dumps(self.flow)))
@@ -130,6 +134,10 @@ def test_field_value_to_string_none(self):
130134
value_str = self.fake_model_field.value_to_string(self.fake_model)
131135
self.assertEqual(value_str, None)
132136

137+
def test_flow_with_null(self):
138+
flow = FlowField()
139+
self.assertTrue(flow.null)
140+
133141

134142
class TestStorage(unittest.TestCase):
135143

@@ -176,6 +184,37 @@ def test_locked_get(self, djangoModel):
176184
self.assertEqual(
177185
credential, fake_model_with_credentials.credentials)
178186

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+
179218
@mock.patch('django.db.models')
180219
def test_locked_put(self, djangoModel):
181220
storage = Storage(FakeCredentialsModelMock, self.key_name,
@@ -246,5 +285,15 @@ def save(self):
246285
credentials = CredentialWithSetStore()
247286

248287

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+
249298
if __name__ == '__main__': # pragma: NO COVER
250299
unittest.main()

0 commit comments

Comments
 (0)