def test_invalid_authorization_header(self):
        request_mock = Mock(spec=Request)
        request_mock.header.return_value = "some-data"

        with self.assertRaises(OAuthInvalidError) as expected:
            http_basic_auth(request=request_mock)

        self.assertEqual(expected.exception.error, "invalid_request")
    def test_header_not_present(self):
        request_mock = Mock(spec=Request)
        request_mock.header.return_value = None

        with self.assertRaises(OAuthInvalidError) as expected:
            http_basic_auth(request=request_mock)

        self.assertEqual(expected.exception.error, "invalid_request")
    def test_invalid_authorization_header(self):
        request_mock = Mock(spec=Request)
        request_mock.header.return_value = "some-data"

        with self.assertRaises(OAuthInvalidError) as expected:
            http_basic_auth(request=request_mock)

        self.assertEqual(expected.exception.error, "invalid_request")
    def test_header_not_present(self):
        request_mock = Mock(spec=Request)
        request_mock.header.return_value = None

        with self.assertRaises(OAuthInvalidError) as expected:
            http_basic_auth(request=request_mock)

        self.assertEqual(expected.exception.error, "invalid_request")
    def test_valid(self):
        client_id = "testclient"
        client_secret = "secret"

        credentials = "{0}:{1}".format(client_id, client_secret)

        encoded = b64encode(credentials.encode("latin1"))

        request_mock = Mock(spec=Request)
        request_mock.header.return_value = "Basic {0}".\
            format(encoded.decode("latin1"))

        result_client_id, result_client_secret = http_basic_auth(request=request_mock)

        request_mock.header.assert_called_with("authorization")

        self.assertEqual(result_client_id, client_id)
        self.assertEqual(result_client_secret, client_secret)
    def test_valid(self):
        client_id = "testclient"
        client_secret = "secret"

        credentials = "{0}:{1}".format(client_id, client_secret)

        encoded = b64encode(credentials.encode("latin1"))

        request_mock = Mock(spec=Request)
        request_mock.header.return_value = "Basic {0}".\
            format(encoded.decode("latin1"))

        result_client_id, result_client_secret = http_basic_auth(
            request=request_mock)

        request_mock.header.assert_called_with("authorization")

        self.assertEqual(result_client_id, client_id)
        self.assertEqual(result_client_secret, client_secret)