def test_post(self, requests, config, HmacAuth): """ Test :meth:`.BaseRestModel.post`. """ def config_get_side_effect(*args): return { ('job_runner_worker', 'api_base_url'): 'http://api/', ('job_runner_worker', 'secret'): 'key', ('job_runner_worker', 'api_key'): 'public', }[args] config.get.side_effect = config_get_side_effect response = requests.post.return_value response.status_code = 201 base_model = BaseRestModel('/path/to/resource') base_model.post({'field_name': 'field_value', 'published': True}) requests.post.assert_called_once_with( 'http://api/path/to/resource', auth=HmacAuth.return_value, headers={'content-type': 'application/json'}, data='{"field_name": "field_value", "published": true}', verify=False, )
def test__get_json_data(self, requests, config, HmacAuth): """ Tests :meth:`.BaseRestModel._get_json_data`. """ def config_get_side_effect(*args): return { ('job_runner_worker', 'api_base_url'): 'http://api/', ('job_runner_worker', 'secret'): 'key', ('job_runner_worker', 'api_key'): 'public', }[args] config.get.side_effect = config_get_side_effect response = requests.get.return_value response.status_code = 200 base_model = BaseRestModel('/path/to/resource') self.assertEqual(response.json, base_model._get_json_data()) requests.get.assert_called_once_with( 'http://api/path/to/resource', auth=HmacAuth.return_value, headers={'content-type': 'application/json'}, verify=False, ) HmacAuth.assert_called_once_with('public', 'key')
def test___getattr__(self): """ Test ``__getattr__``. """ base_model = BaseRestModel(Mock()) base_model._get_json_data = Mock(return_value={'foo': 'bar'}) self.assertEqual('bar', base_model.foo)
def test_post(self, requests, config, HmacAuth): """ Test :meth:`.BaseRestModel.post`. """ def config_get_side_effect(*args): return { ("job_runner_worker", "api_base_url"): "http://api/", ("job_runner_worker", "secret"): "key", ("job_runner_worker", "api_key"): "public", }[args] config.get.side_effect = config_get_side_effect response = requests.post.return_value response.status_code = 201 base_model = BaseRestModel("/path/to/resource") base_model.post({"field_name": "field_value", "published": True}) requests.post.assert_called_once_with( "http://api/path/to/resource", auth=HmacAuth.return_value, headers={"content-type": "application/json"}, data='{"field_name": "field_value", "published": true}', verify=False, )
def test___getattr__(self): """ Test ``__getattr__``. """ base_model = BaseRestModel(Mock()) base_model._get_json_data = Mock(return_value={"foo": "bar"}) self.assertEqual("bar", base_model.foo)
def test__get_json_data(self, requests, config, HmacAuth): """ Tests :meth:`.BaseRestModel._get_json_data`. """ def config_get_side_effect(*args): return { ("job_runner_worker", "api_base_url"): "http://api/", ("job_runner_worker", "secret"): "key", ("job_runner_worker", "api_key"): "public", }[args] config.get.side_effect = config_get_side_effect response = requests.get.return_value response.status_code = 200 base_model = BaseRestModel("/path/to/resource") self.assertEqual(response.json, base_model._get_json_data()) requests.get.assert_called_once_with( "http://api/path/to/resource", auth=HmacAuth.return_value, headers={"content-type": "application/json"}, verify=False, ) HmacAuth.assert_called_once_with("public", "key")
def test_get_list(self, requests, config, HmacAuth): """ Test :meth:`.BaseRestModel.get_list`. """ def config_get_side_effect(*args): return { ('job_runner_worker', 'api_base_url'): 'http://api/', ('job_runner_worker', 'secret'): 'key', ('job_runner_worker', 'api_key'): 'public', }[args] config.get.side_effect = config_get_side_effect response = requests.get.return_value response.status_code = 200 response.json = { 'objects': [ {'id': 1, 'resource_uri': 'foo'}, {'id': 2, 'resource_uri': 'bar'}, ], 'meta': { 'next': None, } } out = BaseRestModel.get_list('/path/to/resource') self.assertEqual(2, len(out)) self.assertEqual({'id': 1, 'resource_uri': 'foo'}, out[0]._data) self.assertEqual({'id': 2, 'resource_uri': 'bar'}, out[1]._data)
def test_patch_not_202(self, requests, config, HmacAuth): """ Test :meth:`.BaseRestModel.patch`. """ def config_get_side_effect(*args): return { ('job_runner_worker', 'api_base_url'): 'http://api/', ('job_runner_worker', 'secret'): 'key', ('job_runner_worker', 'api_key'): 'public', }[args] config.get.side_effect = config_get_side_effect response = requests.patch.return_value response.status_code = 418 base_model = BaseRestModel('/path/to/resource') self.assertRaises(RequestClientError, base_model.patch, {'foo': 'bar'})
def test_get_list(self, requests, config, HmacAuth): """ Test :meth:`.BaseRestModel.get_list`. """ def config_get_side_effect(*args): return { ("job_runner_worker", "api_base_url"): "http://api/", ("job_runner_worker", "secret"): "key", ("job_runner_worker", "api_key"): "public", }[args] config.get.side_effect = config_get_side_effect response = requests.get.return_value response.status_code = 200 response.json = { "objects": [{"id": 1, "resource_uri": "foo"}, {"id": 2, "resource_uri": "bar"}], "meta": {"next": None}, } out = BaseRestModel.get_list("/path/to/resource") self.assertEqual(2, len(out)) self.assertEqual({"id": 1, "resource_uri": "foo"}, out[0]._data) self.assertEqual({"id": 2, "resource_uri": "bar"}, out[1]._data)