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___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_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")