def test_anonymous_listing_with_existing_buyer_account(self):
        email_address = email_generator.next()
        card = balanced.Card(card_number='4111111111111111',
                             expiration_month=12,
                             expiration_year=2020,
                             security_code=123).save()
        ogaccount = balanced.Marketplace.my_marketplace.create_buyer(
            email_address,
            card.uri,
        )

        payload = self._guest_listing_payload(email_address)
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # check locally
        user = User.query.filter(User.email_address == email_address).one()
        # NOTE: guest passwords currently disabled
        self.assertIsNone(user.password_hash)
        #        self.assertTrue(user.check_password('ab'))

        # check in balanced
        account = user.balanced_account
        self.assertTrue('merchant' in account.roles)
        self.assertTrue('buyer' in account.roles)
        self.assertEqual(account.email_address, email_address)
        self.assertEqual(ogaccount.uri, account.uri)
Esempio n. 2
0
    def test_anonymous_purchase(self, *_):
        email = email_generator.next()
        payload = self._guest_rental_payload(email)
        self._populate_data()

        self._rent(payload)
        self._verify_buyer_transactions(email)
 def test_authenticated_purchase(self, *_):
     email = email_generator.next()
     self._create_user(email)
     payload = self._rental_payload()
     self._populate_data()
     self._rent(payload)
     self._verify_buyer_transactions(email)
Esempio n. 4
0
 def test_authenticated_purchase(self, *_):
     email = email_generator.next()
     self._create_user(email)
     payload = self._rental_payload()
     self._populate_data()
     self._rent(payload)
     self._verify_buyer_transactions(email)
    def test_anonymous_purchase(self, *_):
        email = email_generator.next()
        payload = self._guest_rental_payload(email)
        self._populate_data()

        self._rent(payload)
        self._verify_buyer_transactions(email)
    def test_anonymous_listing_with_existing_buyer_account(self):
        email = email_generator.next()
        card = balanced.Card(
            number='4111111111111111',
            expiration_month=12,
            expiration_year=2020,
            cvv=123
        ).save()
        ogaccount = balanced.Customer(
            email=email, source=card.href,
        ).save()

        payload = self._guest_listing_payload(email)
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # check locally
        user = User.query.filter(User.email == email).one()
        # NOTE: guest passwords currently disabled
        self.assertIsNone(user.password_hash)
#        self.assertTrue(user.check_password('ab'))

        # check in balanced
        account = user.balanced_customer
        self.assertEqual(account.email, email)
        self.assertEqual(ogaccount.href, account.href)
    def test_anonymous_listing_with_existing_buyer_account(self):
        email = email_generator.next()
        card = balanced.Card(number='4111111111111111',
                             expiration_month=12,
                             expiration_year=2020,
                             cvv=123).save()
        ogaccount = balanced.Customer(
            email=email,
            source=card.href,
        ).save()

        payload = self._guest_listing_payload(email)
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # check locally
        user = User.query.filter(User.email == email).one()
        # NOTE: guest passwords currently disabled
        self.assertIsNone(user.password_hash)
        #        self.assertTrue(user.check_password('ab'))

        # check in balanced
        account = user.balanced_customer
        self.assertEqual(account.email, email)
        self.assertEqual(ogaccount.href, account.href)
    def test_anonymous_listing_with_bank_account(self):
        email_address = email_generator.next()
        payload = self._guest_listing_payload(email_address)
        bank_account = balanced.BankAccount(name='Myata Marketplace',
            account_number=321174851, bank_code=321174851
        ).save()
        payload['bank_account_uri'] = bank_account.uri
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # check locally
        user = User.query.filter(
            User.email_address == email_address).one()
        # NOTE: guest passwords currently disabled
        self.assertIsNone(user.password_hash)
#        self.assertTrue(user.check_password('ab'))

        # check in balanced
        account = user.balanced_account
        self.assertTrue('merchant' in account.roles)
        self.assertEqual(account.email_address, email_address)
        self.assertTrue(
            [ba for ba in account.bank_accounts if bank_account.id in ba.uri]
        )
Esempio n. 9
0
    def test_failure_and_then_success(self, fetch, rentalmanager, *_):
        email = email_generator.next()
        payload = self._guest_rental_payload(email)
        self._populate_data()
        
        manager = rentalmanager.return_value

        http_mock = mock.Mock()
        http_mock.response = mock.Mock()
        http_mock.response.status_code = 400
        http_mock.response.data = {"errors": [
            {
                "status": "Bad Request",
                "category_code": "request",
                "status_code": 400,
                "category_type": "request",
                "extras": {
                    "routing_number": "Missing required field [routing_number]"
                },
                "request_id": "OHM8ede8fee2f9a11e4ab2502a1fe52a36c",
                "description": "Missing required field [routing_number] Your request id is OHM8ede8fee2f9a11e4ab2502a1fe52a36c."
            }
        ]}
        manager.rent.side_effect = balanced.exc.HTTPError(http_mock)

        resp = self.client.post('/rent/1', data=payload)
        self.assertEqual(resp.status_code, 201)

        payload = self._guest_rental_payload(email)
        manager.rent.side_effect = None
        rental = manager.rent.return_value
        rental.buyer.guid = '123'
        rental.buyer.email = '[email protected]'
        rental.guid = 1
        self._rent(payload)
    def test_anonymous_listing_with_existing_buyer_account(self):
        email_address = email_generator.next()
        card = balanced.Card(
            card_number='4111111111111111',
            expiration_month=12,
            expiration_year=2020,
            security_code=123
        ).save()
        ogaccount = balanced.Marketplace.my_marketplace.create_buyer(
            email_address, card.uri,
        )

        payload = self._guest_listing_payload(email_address)
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # check locally
        user = User.query.filter(
            User.email_address == email_address).one()
        # NOTE: guest passwords currently disabled
        self.assertIsNone(user.password_hash)
#        self.assertTrue(user.check_password('ab'))

        # check in balanced
        account = user.balanced_account
        self.assertTrue('merchant' in account.roles)
        self.assertTrue('buyer' in account.roles)
        self.assertEqual(account.email_address, email_address)
        self.assertEqual(ogaccount.uri, account.uri)
 def test_anonymous_purchase_with_existing_merchant_account(self, *_):
     email_address = email_generator.next()
     # 1. create an account on balanced
     payload = merchant_fixtures.balanced_merchant_payload(email_address)
     balanced.Marketplace.my_marketplace.create_merchant(
         email_address, merchant=payload['merchant'],
     )
     # 2. anonymous purchase using this account should work.
     self.test_anonymous_purchase()
Esempio n. 12
0
 def test_anonymous_purchase_with_existing_customer_account(self, *_):
     email = email_generator.next()
     # 1. create an account on balanced
     payload = merchant_fixtures.balanced_customer_payload(email)
     customer = balanced.Customer(
         email=email, merchant=payload['customer'],
     )
     customer.save()
     # 2. anonymous purchase using this account should work.
     self.test_anonymous_purchase()
    def test_anonymous_purchase_with_existing_buyer_account(self, *_):
        email_address = email_generator.next()
        # 1. create an account on balanced
        card_uri = self._card_payload()
        balanced.Marketplace.my_marketplace.create_buyer(
            email_address, card_uri=card_uri,
        )

        # 2. anonymous purchase using this account should work.
        self.test_anonymous_purchase()
Esempio n. 14
0
 def test_anonymous_purchase_with_existing_merchant_account(self, *_):
     email_address = email_generator.next()
     # 1. create an account on balanced
     payload = merchant_fixtures.balanced_merchant_payload(email_address)
     balanced.Marketplace.my_marketplace.create_merchant(
         email_address,
         merchant=payload['merchant'],
     )
     # 2. anonymous purchase using this account should work.
     self.test_anonymous_purchase()
Esempio n. 15
0
    def test_anonymous_purchase_with_existing_buyer_account(self, *_):
        email = email_generator.next()
        # 1. create an account on balanced
        card_href = self._card_payload()
        balanced.Customer(
            email=email, source=card_href,
        )

        # 2. anonymous purchase using this account should work.
        self.test_anonymous_purchase()
    def test_anonymous_purchase_with_existing_buyer_account(self, *_):
        email = email_generator.next()
        # 1. create an account on balanced
        card_href = self._card_payload()
        balanced.Customer(
            email=email,
            source=card_href,
        )

        # 2. anonymous purchase using this account should work.
        self.test_anonymous_purchase()
 def test_anonymous_purchase_with_existing_customer_account(self, *_):
     email = email_generator.next()
     # 1. create an account on balanced
     payload = merchant_fixtures.balanced_customer_payload(email)
     customer = balanced.Customer(
         email=email,
         merchant=payload['customer'],
     )
     customer.save()
     # 2. anonymous purchase using this account should work.
     self.test_anonymous_purchase()
Esempio n. 18
0
    def test_anonymous_purchase_with_existing_buyer_account(self, *_):
        email_address = email_generator.next()
        # 1. create an account on balanced
        card_uri = self._card_payload()
        balanced.Marketplace.my_marketplace.create_buyer(
            email_address,
            card_uri=card_uri,
        )

        # 2. anonymous purchase using this account should work.
        self.test_anonymous_purchase()
    def test_merchant_purchase(self, *_):
        # 1. create an authenticated merchant account
        email = email_generator.next()
        self._create_user(email)
        payload = self._listing_payload()
        user = User.query.filter(User.email == email).one()
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # 2. purchase should require payment method and should just work.
        self.test_authenticated_purchase(email)
Esempio n. 20
0
    def test_merchant_purchase(self, *_):
        # 1. create an authenticated merchant account
        email = email_generator.next()
        self._create_user(email)
        payload = self._listing_payload()
        user = User.query.filter(User.email == email).one()
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # 2. purchase should require payment method and should just work.
        self.test_authenticated_purchase(email)
    def test_authenticated_purchase_repeat(self, *_, **kwargs):
        email = kwargs.pop('email', None)
        if not email:
            email = email_generator.next()
            self._create_user(email)
        payload = self._rental_payload()
        self._populate_data()
        self._rent(payload)

        payload = self._rental_payload()
        payload.pop('card_href')
        self._rent(payload)
        self._verify_buyer_transactions(email)
Esempio n. 22
0
    def test_authenticated_purchase_repeat(self, *_, **kwargs):
        email = kwargs.pop('email', None)
        if not email:
            email = email_generator.next()
            self._create_user(email)
        payload = self._rental_payload()
        self._populate_data()
        self._rent(payload)

        payload = self._rental_payload()
        payload.pop('card_href')
        self._rent(payload)
        self._verify_buyer_transactions(email)
    def test_anonymous_listing_with_existing_merchant_account(self):
        email = email_generator.next()
        ogaccount = balanced.Customer(**self._merchant_payload(email)).save()
        payload = self._guest_listing_payload(email)
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # check locally
        user = User.query.filter(User.email == email).one()
        # NOTE: guest passwords currently disabled
        self.assertIsNone(user.password_hash)
        #        self.assertTrue(user.check_password('ab'))

        # check in balanced
        account = user.balanced_customer
        self.assertEqual(account.email, email)
        self.assertEqual(ogaccount.href, account.href)
Esempio n. 24
0
    def test_failure_and_then_success(self, find, rentalmanager, *_):
        email_address = email_generator.next()
        payload = self._guest_rental_payload(email_address)
        self._populate_data()

        manager = rentalmanager.return_value
        manager.rent.side_effect = balanced.exc.HTTPError

        resp = self.client.post('/rent/1', data=payload)
        self.assertEqual(resp.status_code, 201)

        payload = self._guest_rental_payload(email_address)
        manager.rent.side_effect = None
        rental = manager.rent.return_value
        rental.buyer.guid = '123'
        rental.buyer.email_address = '[email protected]'
        rental.guid = 1
        self._rent(payload)
    def test_failure_and_then_success(self, find, rentalmanager, *_):
        email_address = email_generator.next()
        payload = self._guest_rental_payload(email_address)
        self._populate_data()

        manager = rentalmanager.return_value
        manager.rent.side_effect = balanced.exc.HTTPError

        resp = self.client.post('/rent/1', data=payload)
        self.assertEqual(resp.status_code, 201)

        payload = self._guest_rental_payload(email_address)
        manager.rent.side_effect = None
        rental = manager.rent.return_value
        rental.buyer.guid = '123'
        rental.buyer.email_address = '[email protected]'
        rental.guid = 1
        self._rent(payload)
    def test_authenticated_listing_with_bank_account(self, email=None):
        email = email or email_generator.next()
        self._create_user(email)
        payload = self._listing_payload()
        bank_account = balanced.BankAccount(name='Bob Saget',
                                            account_number=321174851,
                                            routing_number=321174851).save()
        payload['bank_account_href'] = bank_account.href
        user = User.query.filter(User.email == email).one()
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # check in balanced
        user = User.query.filter(User.email == email).one()
        account = user.balanced_customer
        self.assertEqual(account.email, email)
        self.assertTrue(
            [ba for ba in account.bank_accounts if bank_account.id in ba.href])
Esempio n. 27
0
    def test_anonymous_listing_with_existing_merchant_account(self):
        email = email_generator.next()
        ogaccount = balanced.Customer(
            **self._merchant_payload(email)).save()
        payload = self._guest_listing_payload(email)
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # check locally
        user = User.query.filter(
            User.email == email).one()
        # NOTE: guest passwords currently disabled
        self.assertIsNone(user.password_hash)
#        self.assertTrue(user.check_password('ab'))

        # check in balanced
        account = user.balanced_customer
        self.assertEqual(account.email, email)
        self.assertEqual(ogaccount.href, account.href)
    def test_anonymous_listing_with_existing_merchant_account(self):
        email_address = email_generator.next()
        ogaccount = balanced.Marketplace.my_marketplace.create_merchant(
            **self._merchant_payload(email_address))
        payload = self._guest_listing_payload(email_address)
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # check locally
        user = User.query.filter(User.email_address == email_address).one()
        # NOTE: guest passwords currently disabled
        self.assertIsNone(user.password_hash)
        #        self.assertTrue(user.check_password('ab'))

        # check in balanced
        account = user.balanced_account
        self.assertTrue('merchant' in account.roles)
        self.assertEqual(account.email_address, email_address)
        self.assertEqual(ogaccount.uri, account.uri)
    def test_authenticated_listing_with_bank_account(self, email_address=None):
        email_address = email_address or email_generator.next()
        self._create_user(email_address)
        payload = self._listing_payload()
        bank_account = balanced.BankAccount(name='Bob Saget',
                                            account_number=321174851,
                                            bank_code=321174851).save()
        payload['bank_account_uri'] = bank_account.uri
        user = User.query.filter(User.email_address == email_address).one()
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # check in balanced
        user = User.query.filter(User.email_address == email_address).one()
        account = user.balanced_account
        self.assertTrue('merchant' in account.roles)
        self.assertEqual(account.email_address, email_address)
        self.assertTrue(
            [ba for ba in account.bank_accounts if bank_account.id in ba.uri])
    def test_failure_and_then_success(self, fetch, rentalmanager, *_):
        email = email_generator.next()
        payload = self._guest_rental_payload(email)
        self._populate_data()

        manager = rentalmanager.return_value

        http_mock = mock.Mock()
        http_mock.response = mock.Mock()
        http_mock.response.status_code = 400
        http_mock.response.data = {
            "errors": [{
                "status":
                "Bad Request",
                "category_code":
                "request",
                "status_code":
                400,
                "category_type":
                "request",
                "extras": {
                    "routing_number": "Missing required field [routing_number]"
                },
                "request_id":
                "OHM8ede8fee2f9a11e4ab2502a1fe52a36c",
                "description":
                "Missing required field [routing_number] Your request id is OHM8ede8fee2f9a11e4ab2502a1fe52a36c."
            }]
        }
        manager.rent.side_effect = balanced.exc.HTTPError(http_mock)

        resp = self.client.post('/rent/1', data=payload)
        self.assertEqual(resp.status_code, 201)

        payload = self._guest_rental_payload(email)
        manager.rent.side_effect = None
        rental = manager.rent.return_value
        rental.buyer.guid = '123'
        rental.buyer.email = '[email protected]'
        rental.guid = 1
        self._rent(payload)
    def test_anonymous_listing_with_existing_merchant_account(self):
        email_address = email_generator.next()
        ogaccount = balanced.Marketplace.my_marketplace.create_merchant(
            **self._merchant_payload(email_address))
        payload = self._guest_listing_payload(email_address)
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # check locally
        user = User.query.filter(
            User.email_address == email_address).one()
        # NOTE: guest passwords currently disabled
        self.assertIsNone(user.password_hash)
#        self.assertTrue(user.check_password('ab'))

        # check in balanced
        account = user.balanced_account
        self.assertTrue('merchant' in account.roles)
        self.assertEqual(account.email_address, email_address)
        self.assertEqual(ogaccount.uri, account.uri)
Esempio n. 32
0
    def test_authenticated_listing_with_bank_account(self, email=None):
        email = email or email_generator.next()
        self._create_user(email)
        payload = self._listing_payload()
        bank_account = balanced.BankAccount(name='Bob Saget',
            account_number=321174851, routing_number=321174851
        ).save()
        payload['bank_account_href'] = bank_account.href
        user = User.query.filter(User.email == email).one()
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # check in balanced
        user = User.query.filter(
            User.email == email).one()
        account = user.balanced_customer
        self.assertEqual(account.email, email)
        self.assertTrue(
            [ba for ba in account.bank_accounts if bank_account.id in ba.href]
        )
    def test_authenticated_listing_with_bank_account(self, email_address=None):
        email_address = email_address or email_generator.next()
        self._create_user(email_address)
        payload = self._listing_payload()
        bank_account = balanced.BankAccount(name='Bob Saget',
            account_number=321174851, bank_code=321174851
        ).save()
        payload['bank_account_uri'] = bank_account.uri
        user = User.query.filter(User.email_address == email_address).one()
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # check in balanced
        user = User.query.filter(
            User.email_address == email_address).one()
        account = user.balanced_account
        self.assertTrue('merchant' in account.roles)
        self.assertEqual(account.email_address, email_address)
        self.assertTrue(
            [ba for ba in account.bank_accounts if bank_account.id in ba.uri]
        )
    def test_anonymous_listing_with_bank_account(self):
        email = email_generator.next()
        payload = self._guest_listing_payload(email)
        bank_account = balanced.BankAccount(name='Myata Marketplace',
                                            account_number=321174851,
                                            routing_number=321174851).save()
        payload['bank_account_href'] = bank_account.href
        resp = self.client.post('/list', data=payload)
        self.assertEqual(resp.status_code, 302)
        self.assertIn('/list/1/complete', resp.data)

        # check locally
        user = User.query.filter(User.email == email).one()
        # NOTE: guest passwords currently disabled
        self.assertIsNone(user.password_hash)
        #        self.assertTrue(user.check_password('ab'))

        # check in balanced
        account = user.balanced_customer
        self.assertEqual(account.email, email)
        self.assertTrue(
            [ba for ba in account.bank_accounts if bank_account.id in ba.href])