示例#1
0
 def setUp(self):
     from sber.pysberbps import SberWrapper
     self.wrapper = SberWrapper(Credentials.username, Credentials.password)
示例#2
0
class WrapperTestCase(unittest.TestCase):

    def setUp(self):
        from sber.pysberbps import SberWrapper
        self.wrapper = SberWrapper(Credentials.username, Credentials.password)

    def test_register(self):
        order = ''.join(random.sample(string.ascii_uppercase+string.digits, 6))
        amount = 35
        url = 'https://u6.ru/'
        logger.debug('Register order {} by REST POST request(default params) with {} amount and {} success url'.format(
            order, amount, url))
        order, form_url = self.wrapper.register(
            order=order,
            amount=amount,
            success_url=url)
        self.assertIsInstance(order, str)
        self.assertIsInstance(form_url, str)
        self.assertRegex(form_url, '^http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+$')
        self.assertRegex(order, '^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$')  # UID

    def test_status(self):
        order_id = '85885185-e5ba-4f61-bb87-8ba65ff13245'
        logger.debug('Status order {} by REST POST request'.format(order_id))
        result = self.wrapper.status(order_id)
        for key in ('OrderNumber', 'Amount', 'Ip', 'ErrorCode'):
            self.assertIn(key, result)

    def test_status_ext(self):
        order_id = '85885185-e5ba-4f61-bb87-8ba65ff13245'
        logger.debug('Status_ext order {} by REST POST request'.format(order_id))

        result = self.wrapper.status_ext(order_id)

        for key in ('orderNumber', 'amount', 'ip', 'date', 'errorCode'):
            self.assertIn(key, result)

    def test_refund(self):
        # DEPOSITED
        order_id = '45329480-e039-4510-baab-0bb97cf117d3'
        amount = 35
        logger.debug('Refund order {}#DEPOSITED by REST POST request amount {}'.format(order_id, amount))
        result = self.wrapper.refund(order_id, amount)
        self.assertIsInstance(result, str, msg='Refund over DEPOSITED order must return ErrorCode=0 Returned: {0!r}'.format(result))

        # DECLINED
        order_id = 'b0ef485c-6b98-45bd-8897-fd174d595dc2'
        amount = 35
        logger.debug('Refund order {}#DECLINED by REST POST request amount {}'.format(order_id, amount))
        self.assertRaisesRegex(SberRequestError, 'refund error 7.*', self.wrapper.refund, order_id, amount)

        # REFUNDED
        order_id = '30ab9530-eeb0-4a9d-beb9-1ba8c8c0b637'
        amount = 13531
        logger.debug('Refund order {}#REFUNDED by REST POST request amount {}'.format(order_id, amount))
        self.assertRaisesRegex(SberRequestError, 'refund error 7.*', self.wrapper.refund, order_id, amount)

        # CREATED
        order_id = 'f1ee4da0-6737-43ad-91eb-5b5fb73365ef'
        amount = 35
        logger.debug('Refund order {}#CREATED by REST POST request amount {}'.format(order_id, amount))
        self.assertRaisesRegex(SberRequestError, 'refund error 7.*', self.wrapper.refund, order_id, amount)