示例#1
0
    def test_fetch_token_with_redirect(self, params, get_validation_url,
                                       requests):
        """
        payment.fetch_token must post data to get_validation_url and get token from response after redirect.
        """
        commerce = self.payment_kwargs['commerce']
        payment = Payment(**self.payment_kwargs)
        response1 = mock.Mock()
        response1.is_redirect = True
        response1.status_code = 302
        response2 = mock.Mock()
        response2.is_redirect = False
        response2.status_code = 200
        requests.post.side_effect = [response1, response2]
        decrypted = 'ERROR=0\nTOKEN=e975ffc4f0605ddf3afc299eee6aeffb59efba24769548acf58e34a89ae4e228\n'
        signature = "signature" * 20
        commerce.webpay_decrypt.return_value = decrypted, signature

        token = payment.fetch_token()

        commerce.webpay_decrypt.assert_called_once_with(response2.content)

        self.assertEqual(
            token,
            'e975ffc4f0605ddf3afc299eee6aeffb59efba24769548acf58e34a89ae4e228')
示例#2
0
    def test_fetch_token_with_redirect(self, params, get_validation_url, requests):
        """
        payment.fetch_token must post data to get_validation_url and get token from response after redirect.
        """
        commerce = self.payment_kwargs['commerce']
        payment = Payment(**self.payment_kwargs)
        response1 = mock.Mock()
        response1.is_redirect = True
        response1.status_code = 302
        response2 = mock.Mock()
        response2.is_redirect = False
        response2.status_code = 200
        requests.post.side_effect = [response1, response2]
        decrypted = 'ERROR=0\nTOKEN=e975ffc4f0605ddf3afc299eee6aeffb59efba24769548acf58e34a89ae4e228\n'
        signature = "signature" * 20
        commerce.webpay_decrypt.return_value = decrypted, signature

        token = payment.fetch_token()

        commerce.webpay_decrypt.assert_called_once_with(response2.content)

        self.assertEqual(token, 'e975ffc4f0605ddf3afc299eee6aeffb59efba24769548acf58e34a89ae4e228')
示例#3
0
    def test_fetch_token(self, params, get_validation_url, requests):
        """
        payment.fetch_token must post data to get_validation_url and get token from response
        """
        python_version = "%d.%d" % (sys.version_info.major, sys.version_info.minor)
        user_agent = "TBK/%(TBK_VERSION_KCC)s (Python/%(PYTHON_VERSION)s)" % {
            'TBK_VERSION_KCC': TBK_VERSION_KCC,
            'PYTHON_VERSION': python_version
        }
        commerce = self.payment_kwargs['commerce']
        payment = Payment(**self.payment_kwargs)
        response = requests.post.return_value
        response.status_code = 200
        response.is_redirect = False
        decrypted = 'ERROR=0\nTOKEN=e975ffc4f0605ddf3afc299eee6aeffb59efba24769548acf58e34a89ae4e228\n'
        signature = "signature" * 20
        commerce.webpay_decrypt.return_value = decrypted, signature

        token = payment.fetch_token()

        requests.post.assert_called_once_with(
            get_validation_url.return_value,
            data={
                'TBK_VERSION_KCC': TBK_VERSION_KCC,
                'TBK_CODIGO_COMERCIO': commerce.id,
                'TBK_KEY_ID': commerce.webpay_key_id,
                'TBK_PARAM': params
            },
            headers={
                'User-Agent': user_agent
            },
            allow_redirects=False
        )
        commerce.webpay_decrypt.assert_called_once_with(response.content)

        self.assertEqual(token, 'e975ffc4f0605ddf3afc299eee6aeffb59efba24769548acf58e34a89ae4e228')
示例#4
0
    def test_fetch_token(self, params, get_validation_url, requests):
        """
        payment.fetch_token must post data to get_validation_url and get token from response
        """
        python_version = "%d.%d" % (sys.version_info.major,
                                    sys.version_info.minor)
        user_agent = "TBK/%(TBK_VERSION_KCC)s (Python/%(PYTHON_VERSION)s)" % {
            'TBK_VERSION_KCC': TBK_VERSION_KCC,
            'PYTHON_VERSION': python_version
        }
        commerce = self.payment_kwargs['commerce']
        payment = Payment(**self.payment_kwargs)
        response = requests.post.return_value
        response.status_code = 200
        response.is_redirect = False
        decrypted = 'ERROR=0\nTOKEN=e975ffc4f0605ddf3afc299eee6aeffb59efba24769548acf58e34a89ae4e228\n'
        signature = "signature" * 20
        commerce.webpay_decrypt.return_value = decrypted, signature

        token = payment.fetch_token()

        requests.post.assert_called_once_with(
            get_validation_url.return_value,
            data={
                'TBK_VERSION_KCC': TBK_VERSION_KCC,
                'TBK_CODIGO_COMERCIO': commerce.id,
                'TBK_KEY_ID': commerce.webpay_key_id,
                'TBK_PARAM': params
            },
            headers={'User-Agent': user_agent},
            allow_redirects=False)
        commerce.webpay_decrypt.assert_called_once_with(response.content)

        self.assertEqual(
            token,
            'e975ffc4f0605ddf3afc299eee6aeffb59efba24769548acf58e34a89ae4e228')