コード例 #1
0
    def test_update_refund(self):
        resp = unittest.mock.MagicMock(
            spec=aiohttp.client_reqrep.ClientResponse)
        resp.status = 200
        resp.headers = multidict.CIMultiDict(
            {'content-type': 'application/json'})
        base.mkfuture(resp, self._session.request)
        refund = json.loads(refund_json)
        base.mkfuture(refund, resp.json)

        expected_headers = {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Stripe-Version': '2017-02-14',
        }

        r = base.run_until(
            self._stripe.update_refund('re_aabbcc', {
                'k': '1',
                'j': 2
            }))
        args, kwds = self._session.request.call_args
        self.assertEqual(args[0], 'POST')
        self.assertEqual(args[1],
                         'https://api.stripe.com/v1/refunds/re_aabbcc')
        self.assertEqual(kwds['params'], {
            'metadata[k]': '1',
            'metadata[j]': 2
        })
        self.assertEqual(kwds['auth'].login, 'sekret_key')
        self.assertEqual(kwds['auth'].password, '')
        self.assertEqual(kwds['headers'], expected_headers)
        self.assertEqual(r, stripe.convert_json_response(refund))
コード例 #2
0
    def test_list_refunds(self):
        resp = unittest.mock.MagicMock(
            spec=aiohttp.client_reqrep.ClientResponse)
        resp.status = 200
        resp.headers = multidict.CIMultiDict(
            {'content-type': 'application/json'})
        base.mkfuture(resp, self._session.request)
        refund = json.loads(refund_json)
        base.mkfuture(
            {
                'object': 'list',
                'url': '/v1/refunds',
                'has_more': False,
                'data': [refund]
            }, resp.json)

        expected_headers = {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Stripe-Version': '2017-02-14',
        }

        r = base.run_until(self._stripe.list_refunds(k='1', j=2))
        args, kwds = self._session.request.call_args
        self.assertEqual(args[0], 'GET')
        self.assertEqual(args[1], 'https://api.stripe.com/v1/refunds')
        self.assertEqual(kwds['params'], {'k': '1', 'j': 2})
        self.assertEqual(kwds['auth'].login, 'sekret_key')
        self.assertEqual(kwds['auth'].password, '')
        self.assertEqual(kwds['headers'], expected_headers)
        self.assertEqual(r, [stripe.convert_json_response(refund)])
コード例 #3
0
    def test_delete_card(self):
        resp = unittest.mock.MagicMock(
            spec=aiohttp.client_reqrep.ClientResponse)
        resp.status = 200
        resp.headers = multidict.CIMultiDict(
            {'content-type': 'application/json'})
        base.mkfuture(resp, self._session.request)
        base.mkfuture({'deleted': True, 'id': 'card_aabbcc'}, resp.json)

        expected_headers = {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Stripe-Version': '2017-02-14',
        }

        r = base.run_until(
            self._stripe.delete_card('cus_aabbcc', 'card_aabbcc'))
        args, kwds = self._session.request.call_args
        self.assertEqual(args[0], 'DELETE')
        self.assertEqual(
            args[1],
            'https://api.stripe.com/v1/customers/cus_aabbcc/sources/card_aabbcc'
        )
        self.assertEqual(kwds['params'], {})
        self.assertEqual(kwds['auth'].login, 'sekret_key')
        self.assertEqual(kwds['auth'].password, '')
        self.assertEqual(kwds['headers'], expected_headers)
        self.assertIs(r, None)
コード例 #4
0
    def test_retrieve_customer(self):
        resp = unittest.mock.MagicMock(
            spec=aiohttp.client_reqrep.ClientResponse)
        resp.status = 200
        resp.headers = multidict.CIMultiDict(
            {'content-type': 'application/json'})
        base.mkfuture(resp, self._session.request)
        customer = json.loads(customer_json)
        base.mkfuture(customer, resp.json)

        expected_headers = {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Stripe-Version': '2017-02-14',
        }

        r = base.run_until(self._stripe.retrieve_customer('cus_aabbcc'))
        args, kwds = self._session.request.call_args
        self.assertEqual(args[0], 'GET')
        self.assertEqual(args[1],
                         'https://api.stripe.com/v1/customers/cus_aabbcc')
        self.assertEqual(kwds['params'], {})
        self.assertEqual(kwds['auth'].login, 'sekret_key')
        self.assertEqual(kwds['auth'].password, '')
        self.assertEqual(kwds['headers'], expected_headers)
        self.assertEqual(r, stripe.convert_json_response(customer))
コード例 #5
0
    def test_create_charge(self):
        resp = unittest.mock.MagicMock(
            spec=aiohttp.client_reqrep.ClientResponse)
        resp.status = 200
        resp.headers = multidict.CIMultiDict(
            {'content-type': 'application/json'})
        base.mkfuture(resp, self._session.request)
        charge = json.loads(charge_json)
        base.mkfuture(charge, resp.json)

        expected_headers = {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Stripe-Version': '2017-02-14',
        }

        r = base.run_until(
            self._stripe.create_charge(amount=103, currency='usd', k='1', j=2))
        args, kwds = self._session.request.call_args
        self.assertEqual(args[0], 'POST')
        self.assertEqual(args[1], 'https://api.stripe.com/v1/charges')
        self.assertEqual(kwds['params'], {
            'amount': 103,
            'currency': 'usd',
            'k': '1',
            'j': 2
        })
        self.assertEqual(kwds['auth'].login, 'sekret_key')
        self.assertEqual(kwds['auth'].password, '')
        self.assertEqual(kwds['headers'], expected_headers)
        self.assertEqual(r, stripe.convert_json_response(charge))
コード例 #6
0
    def test_param_conversion(self):
        resp = unittest.mock.MagicMock(
            spec=aiohttp.client_reqrep.ClientResponse)
        resp.status = 200
        resp.headers = multidict.CIMultiDict(
            {'content-type': 'application/json'})
        base.mkfuture(resp, self._session.request)
        charge = json.loads(charge_json)
        base.mkfuture(charge, resp.json)

        r = base.run_until(
            self._stripe.create_charge(amount=103,
                                       currency='usd',
                                       k='1',
                                       j=2,
                                       metadata={
                                           'md1': 'hi',
                                           'md2': 'other'
                                       },
                                       tf=True))
        args, kwds = self._session.request.call_args
        self.assertEqual(
            kwds['params'], {
                'amount': 103,
                'currency': 'usd',
                'k': '1',
                'j': 2,
                'metadata[md1]': 'hi',
                'metadata[md2]': 'other',
                'tf': 'true'
            })
コード例 #7
0
    def test_error_parsing(self):
        error_body = '''
            {
                "error": {
                    "type": "invalid_request_error",
                    "message": "Customer cus_XXX does not have a linked source with ID card_YYYY.",
                    "param": "source",
                    "code": "missing"
                }
            }
        '''
        resp = unittest.mock.MagicMock(
            spec=aiohttp.client_reqrep.ClientResponse)
        resp.status = 404
        resp.headers = multidict.CIMultiDict(
            {'content-type': 'application/json'})
        base.mkfuture(resp, self._session.request)
        error = json.loads(error_body)
        base.mkfuture(error, resp.json)

        with self.assertRaises(stripe.StripeError) as exc:
            base.run_until(
                self._stripe.create_charge(amount=103,
                                           currency='usd',
                                           k='1',
                                           j=2))
        self.assertEqual(exc.exception.type, 'invalid_request_error')
        self.assertEqual(exc.exception.charge, '')
        self.assertEqual(
            exc.exception.message,
            'Customer cus_XXX does not have a linked source with ID card_YYYY.'
        )
        self.assertEqual(exc.exception.code, 'missing')
        self.assertEqual(exc.exception.decline_code, '')
        self.assertEqual(exc.exception.param, 'source')
        self.assertEqual(exc.exception.http_code, 404)