Ejemplo n.º 1
0
    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,
        )
Ejemplo n.º 2
0
    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')
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
    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,
        )
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
    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")
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
    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'})
Ejemplo n.º 9
0
    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)