Enhance code coverage
This commit is contained in:
parent
df2664283c
commit
0134ed4641
|
@ -2,6 +2,7 @@ from unittest import TestCase
|
||||||
from unittest.mock import patch, call
|
from unittest.mock import patch, call
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from urbantz import Delivery
|
from urbantz import Delivery
|
||||||
|
from urbantz.delivery import Location
|
||||||
from urbantz.exceptions import APIError
|
from urbantz.exceptions import APIError
|
||||||
|
|
||||||
|
|
||||||
|
@ -81,3 +82,14 @@ class TestDelivery(TestCase):
|
||||||
excinfo.exception,
|
excinfo.exception,
|
||||||
APIError({'message': 'API returned an empty payload'}),
|
APIError({'message': 'API returned an empty payload'}),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_empty_eta(self):
|
||||||
|
self.delivery.eta_margin = None
|
||||||
|
self.delivery.eta_rounding = None
|
||||||
|
self.delivery.arrival_time = None
|
||||||
|
self.assertIsNone(self.delivery.eta)
|
||||||
|
|
||||||
|
def test_empty_location(self):
|
||||||
|
loc = Location()
|
||||||
|
with self.assertRaises(AttributeError):
|
||||||
|
loc.coordinates
|
||||||
|
|
|
@ -19,7 +19,8 @@ class TestFull(TestCase):
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
super().setUpClass()
|
super().setUpClass()
|
||||||
with open(os.path.join(FOLDER, 'test_payload.json')) as f:
|
with open(os.path.join(FOLDER, 'test_payload.json')) as f:
|
||||||
cls.delivery = Delivery.fromJSON(json.load(f))
|
cls.payload = json.load(f)
|
||||||
|
cls.delivery = Delivery.fromJSON(cls.payload)
|
||||||
|
|
||||||
def test_types(self):
|
def test_types(self):
|
||||||
self.assertIsNone(self.delivery.tracking_code)
|
self.assertIsNone(self.delivery.tracking_code)
|
||||||
|
@ -144,6 +145,8 @@ class TestFull(TestCase):
|
||||||
])
|
])
|
||||||
self.assertEqual(len(self.delivery.items), 1)
|
self.assertEqual(len(self.delivery.items), 1)
|
||||||
item = self.delivery.items[0]
|
item = self.delivery.items[0]
|
||||||
|
self.assertEqual(repr(item), '<Item cafe1>')
|
||||||
|
self.assertEqual(item.toJSON(), self.payload['items'][0])
|
||||||
self.assertFalse(item.damage_confirmed)
|
self.assertFalse(item.damage_confirmed)
|
||||||
self.assertListEqual(item.damage_pictures, [])
|
self.assertListEqual(item.damage_pictures, [])
|
||||||
self.assertEqual(item.status, "DELIVERED")
|
self.assertEqual(item.status, "DELIVERED")
|
||||||
|
@ -200,3 +203,4 @@ class TestFull(TestCase):
|
||||||
datetime(2019, 2, 3, 7, 56, 47, 814000),
|
datetime(2019, 2, 3, 7, 56, 47, 814000),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
self.assertEqual(self.delivery.toJSON(), self.payload)
|
||||||
|
|
|
@ -80,3 +80,23 @@ class TestUtils(TestCase):
|
||||||
self.assertIn('last_name', d)
|
self.assertIn('last_name', d)
|
||||||
del d.last_name
|
del d.last_name
|
||||||
self.assertNotIn('lastName', d)
|
self.assertNotIn('lastName', d)
|
||||||
|
with self.assertRaises(AttributeError):
|
||||||
|
del d.last_name
|
||||||
|
with self.assertRaises(KeyError):
|
||||||
|
del d['lastName']
|
||||||
|
|
||||||
|
def test_dictobject_edge_case(self):
|
||||||
|
d = DictObject(self.test_data)
|
||||||
|
|
||||||
|
def errored_delitem(*args, **kwargs):
|
||||||
|
raise KeyError
|
||||||
|
|
||||||
|
d.__delitem__ = errored_delitem
|
||||||
|
del d.lastName
|
||||||
|
self.assertEqual(d.lastName, 'Norris')
|
||||||
|
|
||||||
|
def test_dictobject_reverse(self):
|
||||||
|
self.assertEqual(
|
||||||
|
DictObject(self.test_data).toJSON(),
|
||||||
|
self.test_data,
|
||||||
|
)
|
||||||
|
|
|
@ -50,7 +50,7 @@ class DictObject(JSONSerializable, dict):
|
||||||
return
|
return
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
super().__delattr__(self, name)
|
super().__delattr__(name)
|
||||||
|
|
||||||
def __delitem__(self, name):
|
def __delitem__(self, name):
|
||||||
try:
|
try:
|
||||||
|
|
Reference in New Issue