Пример #1
0
 def test_both_paymethod_nonce(self):
     method = create_method(create_braintree_buyer()[1])
     form, errors = self.process({
         'nonce': 'abc',
         'paymethod': method.get_uri()
     })
     assert '__all__' in errors, errors.as_text()
Пример #2
0
 def test_both_paymethod_nonce(self):
     method = create_method(create_braintree_buyer()[1])
     form, errors = self.process({
         'nonce': 'abc',
         'paymethod': method.get_uri()
     })
     assert '__all__' in errors, errors.as_text()
Пример #3
0
    def test_pay_method(self):
        self.mocks['sale'].create.return_value = successful_method()
        self.product_mock.get('moz-brick').recurrence = None
        seller, seller_product = create_seller()
        method = create_method(create_braintree_buyer()[1])

        res = self.client.post(
            self.url,
            data={
                'amount': '10.00',
                'paymethod': method.get_uri(),
                'product_id': 'moz-brick'
            }
        )

        self.mocks['sale'].create.assert_called_with({
            'amount': Decimal('10.00'),
            'type': 'sale',
            'options': {'submit_for_settlement': True},
            'payment_method_token': mock.ANY}
        )
        eq_(res.status_code, 200)
        generic = res.json['mozilla']['generic']
        eq_(generic['buyer'], method.braintree_buyer.buyer.get_uri())
        braintree = res.json['mozilla']['braintree']
        eq_(braintree['paymethod'], method.get_uri())
Пример #4
0
 def setUp(self):
     self.buyer, self.braintree_buyer = create_braintree_buyer()
     self.method = create_method(self.braintree_buyer)
     self.seller, self.seller_product = create_seller()
     self.sub = create_subscription(self.method, self.seller_product)
     self.url = reverse('braintree:mozilla:transaction-list')
     self.transaction = Transaction.objects.create(uuid='some:uid')
     super(TestBraintreeTransactionrMethod, self).setUp()
Пример #5
0
 def setUp(self):
     self.buyer, self.braintree_buyer = create_braintree_buyer()
     self.method = create_method(self.braintree_buyer)
     self.seller, self.seller_product = create_seller()
     self.sub = create_subscription(self.method, self.seller_product)
     self.url = reverse('braintree:mozilla:transaction-list')
     self.transaction = Transaction.objects.create(uuid='some:uid',
                                                   buyer=self.buyer)
     super(TestBraintreeTransaction, self).setUp()
Пример #6
0
 def setUp(self):
     self.buyer, self.braintree_buyer = create_braintree_buyer()
     self.method = create_method(self.braintree_buyer)
     self.seller, self.seller_product = create_seller()
     self.braintree_sub = BraintreeSubscription.objects.create(
         paymethod=self.method,
         seller_product=self.seller_product,
         provider_id='some-bt:id')
     self.sub = subscription(id='some-bt:id')
Пример #7
0
 def setUp(self):
     self.buyer, self.braintree_buyer = create_braintree_buyer()
     self.method = create_method(self.braintree_buyer)
     self.seller, self.seller_product = create_seller()
     self.braintree_sub = BraintreeSubscription.objects.create(
         paymethod=self.method,
         seller_product=self.seller_product,
         provider_id='some-bt:id'
     )
     self.sub = subscription(id='some-bt:id')
Пример #8
0
    def test_ok_method(self):
        seller, seller_product = create_seller()
        self.product_mock.get('moz-brick').recurrence = None
        method = create_method(create_braintree_buyer()[1])

        form, errors = self.process({
            'amount': '10.00',
            'paymethod': method.get_uri(),
            'product_id': seller_product.public_id
        })
        assert not errors, errors.as_text()
        assert 'payment_method_nonce' not in form.braintree_data
        eq_(form.braintree_data['payment_method_token'], method.provider_id)
Пример #9
0
    def test_ok_method(self):
        seller, seller_product = create_seller()
        self.product_mock.get('moz-brick').recurrence = None
        method = create_method(create_braintree_buyer()[1])

        form, errors = self.process({
            'amount': '10.00',
            'paymethod': method.get_uri(),
            'product_id': seller_product.public_id
        })
        assert not errors, errors.as_text()
        assert 'payment_method_nonce' not in form.braintree_data
        eq_(form.braintree_data['payment_method_token'], method.provider_id)
Пример #10
0
    def test_create_with_custom_amount(self):
        self.mocks['sub'].create.return_value = successful_subscription()

        buyer, braintree_buyer = create_braintree_buyer()
        seller, seller_product = create_seller(seller_product_data={
            'public_id': 'charity-donation-monthly',
        })
        method = create_method(braintree_buyer)
        res = self.post(paymethod=method.get_uri(), amount='4.99',
                        plan=seller_product.public_id)

        eq_(res.status_code, 201, res.content)
        subscription = BraintreeSubscription.objects.get()
        eq_(subscription.amount, Decimal('4.99'))

        # Make sure price is in braintree creation.
        data = self.mocks['sub'].create.call_args[0][0]
        eq_(data['price'], '4.99')
Пример #11
0
    def test_filter_by_buyer(self):
        # Create the first transaction:
        trans1 = self.create()

        # Create another transaction:
        gen_buyer2, bt_buyer2 = create_braintree_buyer(braintree_id='bt2')
        gen_trans2 = Transaction.objects.create(uuid='t2', buyer=gen_buyer2)
        paymethod2 = create_method(bt_buyer2)
        trans2 = self.create(paymethod=paymethod2, transaction=gen_trans2)

        objects = self.get(
            transaction__buyer__uuid=self.buyer.uuid).json['objects']
        eq_(len(objects), 1, objects)
        eq_(objects[0]['resource_uri'], trans1.get_uri())

        objects = self.get(
            transaction__buyer__uuid=gen_buyer2.uuid).json['objects']
        eq_(len(objects), 1, objects)
        eq_(objects[0]['resource_uri'], trans2.get_uri())
Пример #12
0
    def test_patch_read_only(self):
        obj = self.create()

        paymethod = create_method(self.braintree_buyer)
        seller, seller_product = create_seller(seller_product_data={"public_id": "a-different-brick"})

        data = {
            "paymethod": paymethod.get_uri(),
            "seller_product": seller_product.get_uri(),
            "provider_id": "different:id",
        }

        res = self.client.patch(obj.get_uri(), data=data)
        eq_(res.status_code, 200, res.content)

        res = self.client.get(obj.get_uri())
        eq_(res.json["paymethod"], self.method.get_uri())
        eq_(res.json["seller_product"], self.seller_product.get_uri())
        eq_(res.json["provider_id"], "some:id")
Пример #13
0
    def test_patch_read_only(self):
        obj = self.create()

        paymethod = create_method(self.braintree_buyer)
        seller, seller_product = create_seller()

        data = {
            'paymethod': paymethod.get_uri(),
            'seller_product': seller_product.get_uri(),
            'provider_id': 'different:id',
        }

        res = self.client.patch(obj.get_uri(), data=data)
        eq_(res.status_code, 200, res.content)

        res = self.client.get(obj.get_uri())
        eq_(res.json['paymethod'], self.method.get_uri())
        eq_(res.json['seller_product'], self.seller_product.get_uri())
        eq_(res.json['provider_id'], 'some:id')
Пример #14
0
    def test_filter_by_buyer(self):
        # Create the first transaction:
        trans1 = self.create()

        # Create another transaction:
        gen_buyer2, bt_buyer2 = create_braintree_buyer(braintree_id='bt2')
        gen_trans2 = Transaction.objects.create(uuid='t2', buyer=gen_buyer2)
        paymethod2 = create_method(bt_buyer2)
        trans2 = self.create(paymethod=paymethod2, transaction=gen_trans2)

        objects = self.get(
            transaction__buyer__uuid=self.buyer.uuid).json['objects']
        eq_(len(objects), 1, objects)
        eq_(objects[0]['resource_uri'], trans1.get_uri())

        objects = self.get(
            transaction__buyer__uuid=gen_buyer2.uuid).json['objects']
        eq_(len(objects), 1, objects)
        eq_(objects[0]['resource_uri'], trans2.get_uri())
Пример #15
0
    def test_patch_read_only(self):
        obj = self.create()

        paymethod = create_method(self.braintree_buyer)
        seller, seller_product = create_seller(
            seller_product_data={'public_id': 'a-different-brick'})

        data = {
            'paymethod': paymethod.get_uri(),
            'seller_product': seller_product.get_uri(),
            'provider_id': 'different:id',
        }

        res = self.client.patch(obj.get_uri(), data=data)
        eq_(res.status_code, 200, res.content)

        res = self.client.get(obj.get_uri())
        eq_(res.json['paymethod'], self.method.get_uri())
        eq_(res.json['seller_product'], self.seller_product.get_uri())
        eq_(res.json['provider_id'], 'some:id')
Пример #16
0
    def test_create_with_custom_amount(self):
        self.mocks['sub'].create.return_value = successful_subscription()

        buyer, braintree_buyer = create_braintree_buyer()
        seller, seller_product = create_seller(
            seller_product_data={
                'public_id': 'charity-donation-monthly',
            })
        method = create_method(braintree_buyer)
        res = self.post(paymethod=method.get_uri(),
                        amount='4.99',
                        plan=seller_product.public_id)

        eq_(res.status_code, 201, res.content)
        subscription = BraintreeSubscription.objects.get()
        eq_(subscription.amount, Decimal('4.99'))

        # Make sure price is in braintree creation.
        data = self.mocks['sub'].create.call_args[0][0]
        eq_(data['price'], '4.99')
Пример #17
0
 def create_subscription_methods(self):
     self.first_method, product = create_method_all()
     self.second_method = create_method(self.first_method.braintree_buyer)
     return BraintreeSubscription.objects.create(
         paymethod=self.first_method, seller_product=product)
Пример #18
0
 def setUp(self):
     self.buyer, self.braintree_buyer = create_braintree_buyer()
     self.method = create_method(self.braintree_buyer)
     self.seller, self.seller_product = create_seller()
     self.url = reverse('braintree:mozilla:subscription-list')
     super(TestSubscriptionViewSet, self).setUp()
Пример #19
0
 def create_paymethod(self):
     buyer, braintree_buyer = create_braintree_buyer()
     return create_method(braintree_buyer)
Пример #20
0
def create_method_all():
    buyer, braintree_buyer = create_braintree_buyer()
    seller, seller_product = create_seller()
    method = create_method(braintree_buyer)
    return method, seller_product
Пример #21
0
 def create_paymethod(self):
     buyer, braintree_buyer = create_braintree_buyer()
     return create_method(braintree_buyer)
Пример #22
0
 def create_subscription_methods(self):
     self.first_method, product = create_method_all()
     self.second_method = create_method(self.first_method.braintree_buyer)
     return BraintreeSubscription.objects.create(
         paymethod=self.first_method, seller_product=product)
Пример #23
0
 def setUp(self):
     self.buyer, self.braintree_buyer = create_braintree_buyer()
     self.method = create_method(self.braintree_buyer)
     self.seller, self.seller_product = create_seller()
     self.url = reverse('braintree:mozilla:subscription-list')
     super(TestSubscriptionViewSet, self).setUp()
Пример #24
0
def create_method_all():
    buyer, braintree_buyer = create_braintree_buyer()
    seller, seller_product = create_seller()
    method = create_method(braintree_buyer)
    return method, seller_product