def setUp(self):
        if None in [SANDBOX_CLIENT_KEY, SANDBOX_SERVER_KEY]:
            self.skipTest("Live credentials not provided -- skipping tests")
        if not RUN_ALL_ACCEPTANCE_TESTS and \
                self.VERSION != veritranspay.__version__:
            self.skipTest("Skipping this version of tests")

        expected = fixtures.CC_REQUEST
        self.expected = expected

        self.trans_details = request.TransactionDetails(
            order_id="".join([fake.random_letter() for _ in range(10)]),
            gross_amount=expected['transaction_details']['gross_amount'])

        self.cust_details = request.CustomerDetails(
            first_name=expected['customer_details']['first_name'],
            last_name=expected['customer_details']['last_name'],
            email=expected['customer_details']['email'],
            phone=expected['customer_details']['phone'],
            billing_address=request.Address(
                **expected['customer_details']['billing_address']),
            shipping_address=request.Address(
                **expected['customer_details']['shipping_address'])
            )

        self.item_details = \
            [request.ItemDetails(item_id=item['id'],
                                 price=item['price'],
                                 quantity=item['quantity'],
                                 name=item['name'])
             for item
             in expected['item_details']]
    def test_serialization(self):
        '''
        This test covers the serialization of ChargeRequest and all of it's
        subentities.
        '''
        expected = fixtures.CC_REQUEST

        cc_payment = payment_types.CreditCard(
            bank=expected['credit_card']['bank'],
            token_id=expected['credit_card']['token_id'],
            bins=expected['credit_card']['bins'])
        trans_details = request.TransactionDetails(
            order_id=expected['transaction_details']['order_id'],
            gross_amount=expected['transaction_details']['gross_amount'])
        cust_details = request.CustomerDetails(
            first_name=expected['customer_details']['first_name'],
            last_name=expected['customer_details']['last_name'],
            email=expected['customer_details']['email'],
            phone=expected['customer_details']['phone'],
            billing_address=request.Address(
                **expected['customer_details']['billing_address']),
            shipping_address=request.Address(
                **expected['customer_details']['shipping_address'])
            )
        item_details = [request.ItemDetails(item_id=item['id'],
                                            price=item['price'],
                                            quantity=item['quantity'],
                                            name=item['name'])
                        for item
                        in expected['item_details']]

        charge_req = request.ChargeRequest(charge_type=cc_payment,
                                           transaction_details=trans_details,
                                           customer_details=cust_details,
                                           item_details=item_details)

        actual = charge_req.serialize()

        self.assertEqual(actual, expected)
Esempio n. 3
0
    def test_init_args_with_defaults(self):
        ''' Make sure that our init args that have default values are
        set as attributes on the instance with their expected values
        '''
        addr = request.Address(address=self.address,
                               city=self.city,
                               postal_code=self.postal_code)

        self.assertEqual(addr.address, self.address)
        self.assertEqual(addr.city, self.city)
        self.assertEqual(addr.postal_code, self.postal_code)

        self.assertEqual(addr.first_name, None)
        self.assertEqual(addr.last_name, None)
        self.assertEqual(addr.phone, None)
        self.assertEqual(addr.country_code, None)
Esempio n. 4
0
    def test_init_sets_attributes(self):
        ''' Make sure __init__ is persisting it's arguments
        as instance attributes.
        '''
        addr = request.Address(first_name=self.first_name,
                               last_name=self.last_name,
                               address=self.address,
                               city=self.city,
                               postal_code=self.postal_code,
                               phone=self.phone,
                               country_code=self.country_code)

        self.assertEqual(addr.first_name, self.first_name)
        self.assertEqual(addr.last_name, self.last_name)
        self.assertEqual(addr.address, self.address)
        self.assertEqual(addr.city, self.city)
        self.assertEqual(addr.postal_code, self.postal_code)
        self.assertEqual(addr.phone, self.phone)
        self.assertEqual(addr.country_code, self.country_code)
Esempio n. 5
0
    def setUp(self):
        self.first_name = fake.first_name()
        self.last_name = fake.last_name()
        self.address = fake.address()
        self.city = fake.city()
        self.postal_code = fake.postcode()
        # note: we can't use fake-factory's phone_number() because
        # it can occasionally include extensions, which veritranspay'
        # documentation says they won't accept.
        self.phone = random.choice(fixtures.PHONE_NUMBERS)
        self.country_code = random.choice(fixtures.COUNTRY_CODES)

        self.complete_address = request.Address(first_name=self.first_name,
                                                last_name=self.last_name,
                                                address=self.address,
                                                city=self.city,
                                                postal_code=self.postal_code,
                                                phone=self.phone,
                                                country_code=self.country_code)

        super(Request_Address_Tests, self).setUp()