class ClientTest(unittest.TestCase):

    def setUp(self):
        self.client = Client(FAKE_KEY, FAKE_SECRET)

    @mock.patch('artefact.connectors.bluekai.api.client.requests', autospec=True)
    def test_get(self, mock_requests):
        self.client.get(ENDPOINT, '/', {})
        self.assertEquals(mock_requests.get.call_count, 1)

    @mock.patch('artefact.connectors.bluekai.api.client.requests', autospec=True)
    def test_post(self, mock_requests):
        self.client.post(ENDPOINT, '/', {}, 'body')
        self.assertEquals(mock_requests.post.call_count, 1)

    @mock.patch('artefact.connectors.bluekai.api.client.requests', autospec=True)
    def test_put(self, mock_requests):
        self.client.put(ENDPOINT, '/', {}, 'body')
        self.assertEquals(mock_requests.put.call_count, 1)

    @data(*URL_TEST_CASES)
    def test_url(self, case):
        endpoint = case[0]
        path = case[1]
        self.assertEqual(self.client.url(endpoint, path), case[2])

    @data(*SIGNATURE_TEST_CASES)
    def test_sign_request(self, case):
        inputs = case[0]
        expected_signature = case[1]

        signature = self.client.sign_request(**inputs)

        self.assertEqual(FAKE_KEY, signature['bkuid'])
        self.assertEqual(expected_signature, signature['bksig'])

    def test_audience_service(self):
        self.assertTrue(isinstance(self.client.audiences, Audiences))
 def setUp(self):
     self.client = Client(FAKE_KEY, FAKE_SECRET)