def test_default_url_and_version(self):
     client = Client(**PRODUCTION_CONFIG)
     self.assertEqual(client.base_url, 'https://api.poundpay.com/silver/')
     self.assertIn('Authorization', dict(client.opener.addheaders))
     authstring = dict(client.opener.addheaders)['Authorization'][6:]
     developer_sid, auth_token = authstring.decode('base64').split(':')
     self.assertEqual(developer_sid, PRODUCTION_CONFIG['developer_sid'])
     self.assertEqual(auth_token, PRODUCTION_CONFIG['auth_token'])
 def test_delete_pass_header(self):
     client = Client(**PRODUCTION_CONFIG)
     mock_open = mock.mocksignature(client.opener.open)
     mock_resp = mock.Mock()
     mock_resp.read = mock.Mock(return_value=json.dumps({}))
     mock_open.mock.return_value = mock_resp
     resp_header = {'foo': 'bar'}
     with mock.patch.object(client.opener, 'open', new=mock_open), \
          mock.patch('poundpay.client.urllib2') as urllib2_mock:
         resp = client.delete('payments/sid', resp_header)
     _args, kwargs = urllib2_mock.Request.call_args
     self.assertEqual(kwargs['headers'], resp_header)
     self.assertEqual(resp.json, {})
 def test_get_pass_header(self):
     client = Client(**PRODUCTION_CONFIG)
     resp_dict = {'foo': 'bar'}
     mock_open = mock.Mock()
     mock_open.return_value.read.return_value = json.dumps(resp_dict)
     resp_header = {'foo': 'bar'}
     with mock.patch.object(client.opener,
                            'open',
                            mock_open,
                            mocksignature=True), \
          mock.patch('poundpay.client.urllib2') as urllib2_mock:
         resp = client.get('payments', resp_header)
     _args, kwargs = urllib2_mock.Request.call_args
     self.assertEqual(resp.json, resp_dict)
     self.assertEqual(kwargs['headers'], resp_header)
     mock_open.return_value.read.assert_called_once_with()
 def setUp(self):
     self.client = Client(**PRODUCTION_CONFIG)
     self.resp_dict = {'foo': 'bar'}
     self.mock_open = mock.Mock()
     self.mock_open.return_value.read.return_value = json.dumps(
         self.resp_dict)
 def test_different_url_and_version(self):
     client = Client(**SANDBOX_CONFIG)
     self.assertEqual(client.base_url,
                      'https://api-sandbox.poundpay.com/gold/')
 def test_default_api_url_when_explicity_set_to_None(self):
     config = PRODUCTION_CONFIG
     config['api_url'] = None
     client = Client(**config)
     self.assertTrue(client.base_url,
                     os.path.join(client.API_URL, client.API_VERSION))
 def test_default_api_version_when_explicity_set_to_None(self):
     config = PRODUCTION_CONFIG
     config['api_version'] = None
     client = Client(**config)
     self.assertTrue(client.base_url.endswith(Client.API_VERSION + '/'))
 def test_developer_sid_starts_with_DV(self):
     config = PRODUCTION_CONFIG
     with self.assertRaises(ValueError):
         Client(config['auth_token'], config['developer_sid'])
 def test_developer_sid_and_auth_token_required(self):
     with self.assertRaises(ValueError):
         Client('DV', None)