diff options
-rw-r--r-- | gsxws/products.py | 18 | ||||
-rw-r--r-- | tests/test_gsxws.py | 15 |
2 files changed, 30 insertions, 3 deletions
diff --git a/gsxws/products.py b/gsxws/products.py index f0bab00..c085aeb 100644 --- a/gsxws/products.py +++ b/gsxws/products.py @@ -160,6 +160,24 @@ class Product(object): self._gsx.serialNumber = self.serialNumber return ad + + @property + def fmip_status(self, wty=None): + if wty is None: + wty = self.warrantyDetails + + if wty is None: + raise GsxError('Must run warranty status before FMiP status check') + + return wty.activationLockStatus or '' + + @property + def fmip_is_active(self): + """ + Returns True if FMiP status is active, False otherwise + """ + return self.fmip_status.startswith('Find My iPhone is active.') + def is_unlocked(self, ad=None): """ Returns true if this iOS device is unlocked diff --git a/tests/test_gsxws.py b/tests/test_gsxws.py index dc0f4aa..a4f1a21 100644 --- a/tests/test_gsxws.py +++ b/tests/test_gsxws.py @@ -199,10 +199,19 @@ class TestPartFunction(RemoteTestCase): class TestRemoteWarrantyFunctions(RemoteTestCase): + def setUp(self): + super(TestRemoteWarrantyFunctions, self).setUp() + self.product = Product(env['GSX_SN']) + self.wty = self.product.warranty(ship_to=env['GSX_SHIPTO']) + def test_warranty_lookup(self): - product = Product('DGKFL06JDHJP') - wty = product.warranty(ship_to=env['GSX_SHIPTO']) - self.assertEqual(wty.warrantyStatus, 'Out Of Warranty (No Coverage)') + self.assertEqual(self.wty.warrantyStatus, 'Out Of Warranty (No Coverage)') + + def test_fmip_status(self): + self.assertEqual(self.product.fmip_status, 'Find My iPhone is active. Find My iPhone must be turned off for whole unit repairs.') + + def test_fmip_active(self): + self.assertTrue(self.product.fmip_is_active) class TestLocalWarrantyFunctions(TestCase): |