def test_connect_exchange(self):
     client = Client(user_api_key, user_secret, base_uri, user_id=user_id)
     body = {
         'credentials': {
             'api_key': user_api_key,
             'secret': user_secret
         },
         'exchange_id': exchange_id
     }
     response = client.connect_exchange(body)
     self.assertEqual(response.json()['data'], mock_item)
    def test_request_includes_auth_headers(self):

        def server_response(request, uri, response_headers):
            headers = ['BB-ACCESS-KEY', 'BB-ACCESS-SIGN', 'BB-TIMESTAMP',
                       'Accept', 'Content-Type', 'User-Agent']
            for header in headers:
                self.assertIn(header, request.headers)
                self.assertNotEqual(request.headers[header], '')

            if 'BB-PARTNER-ID' in request.headers:
                self.assertNotIn('BB-USER-ID', request.headers)
                return 200, response_headers, '{}'

            if 'BB-USER-ID' in request.headers:
                self.assertNotIn('BB-PARTNER-ID', request.headers)
                return 200, response_headers, '{}'

            return 400, response_headers, '{}'

        # Test a partner route
        partner_client = Client(partner_api_key, partner_secret, base_uri,
                                partner_id=partner_id,
                                partnership_id=partnership_id)
        url = base_uri + get_all_users_route
        httpretty.register_uri(httpretty.GET, url, server_response)
        response = partner_client.get_all_users()
        self.assertEqual(response.status_code, 200)

        # Test a user route
        user_client = Client(user_api_key, user_secret, base_uri)
        url = base_uri + get_user_balance_route
        httpretty.register_uri(httpretty.GET, url, server_response)
        response = user_client.get_user_balance(user_id)
        self.assertEqual(response.status_code, 200)
    def test_auth_succeeds_with_bytes_and_unicode(self):
        self.assertIsInstance(partner_api_key, six.text_type)  # Unicode
        self.assertIsInstance(partner_secret, six.text_type)  # Unicode

        client = Client(partner_api_key, partner_secret, base_uri,
                        partner_id=partner_id)
        self.assertEqual(client._get('test').status_code, 200)

        api_key_bytes = partner_api_key.encode('utf-8')
        api_secret_bytes = partner_secret.encode('utf-8')
        self.assertIsInstance(api_key_bytes, six.binary_type)  # Bytes
        self.assertIsInstance(api_secret_bytes, six.binary_type)  # Bytes

        client = Client(partner_api_key, partner_secret, base_uri,
                        partner_id=partner_id)
        self.assertEqual(client._get('test').status_code, 200)
Example #4
0
def get_partner_client():
    return Client(api_key=api_key,
                  api_secret=api_secret,
                  base_uri=base_uri,
                  partnership_id=partnership_id,
                  partner_id=partner_id)
Example #5
0
def get_user_client(user):
    return Client(api_key=user.identity.bitbutter_api_key,
                  api_secret=user.identity.bitbutter_secret,
                  base_uri=base_uri,
                  user_id=user.identity.bitbutter_user_id)
 def test_key_and_secret_required(self):
     with self.assertRaises(ValueError):
         Client(None, partner_secret, base_uri, partner_id=partner_id)
     with self.assertRaises(ValueError):
         Client(partner_api_key, None, base_uri, partner_id=partner_id)
 def test_init(self):
     client = Client(partner_api_key, partner_secret, base_uri=base_uri)
     assert isinstance(client, Client)
 def test_get_user_connected_exchanges(self):
     client = Client(user_api_key, user_secret, base_uri, user_id=user_id)
     response = client.get_user_connected_exchanges()
     self.assertEqual(response.json()['data'], mock_collection)
 def test_get_all_users(self):
     client = Client(partner_api_key, partner_secret, base_uri,
                     partner_id=partner_id, partnership_id=partnership_id)
     response = client.get_all_users()
     self.assertEqual(response.json()['data'], mock_collection)
 def test_delete_user(self):
     client = Client(partner_api_key, partner_secret, base_uri,
                     partner_id=partner_id, partnership_id=partnership_id)
     response = client.delete_user(user_id)
     self.assertEqual(response.json()['data'], mock_item)