def test_add(self): encoding = 'UTF-8' credentials = Credentials() shopify = Shopify(shop_name='test', credentials=credentials) data = '{"test_model": {"id": 1, "name": "test"}}' response = requests.Response() response.encoding = encoding response._content = data.encode(encoding) response.status_code = 201 shopify.session.post = mock.Mock(return_value=response) instance = TestModel(name="test") shopify.add(instance) self.assertEquals(instance.name, "test") self.assertEquals(instance.id, 1) #TODO Mock the OAuthEngine.post method to capture the extra prop shopify.ignore_model_properties = True instance = TestModel(name="test", extra_property="Hello") shopify.add(instance) self.assertEquals(instance.name, "test") self.assertEquals(instance.id, 1) shopify.ignore_model_properties = False instance = TestModel(name="test") result = shopify.add(instance, auto_update=False) self.assertEquals(instance.name, "test") self.assertFalse(hasattr(instance, "id")) self.assertIsInstance(result, dict) try: response = requests.Response() response.encoding = encoding response._content = data.encode(encoding) response.status_code = 404 shopify.session.post = mock.Mock(return_value=response) result = shopify.add(instance) self.fail() except ShopifyException: pass