File: test_samsung_pay.py

package info (click to toggle)
python-braintree 4.31.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,576 kB
  • sloc: python: 28,946; makefile: 9; sh: 8
file content (135 lines) | stat: -rw-r--r-- 6,195 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
from tests.test_helper import *

# NEXT_MAJOR_VERSION remove this class
# SamsungPay is deprecated
@unittest.skip("deperacated - remove in next MAJOR release")
class TestSamsungPay(unittest.TestCase):
    def test_create_from_nonce(self):
        customer = Customer.create().customer
        result = PaymentMethod.create({
            "customer_id": customer.id,
            "payment_method_nonce": Nonces.SamsungPayVisa
        })

        self.assertTrue(result.is_success)
        samsung_pay_card = result.payment_method
        self.assertIsInstance(samsung_pay_card, braintree.SamsungPayCard)
        self.assertIsNotNone(samsung_pay_card.bin)
        self.assertIsNotNone(samsung_pay_card.card_type)
        self.assertIsNotNone(samsung_pay_card.commercial)
        self.assertIsNotNone(samsung_pay_card.country_of_issuance)
        self.assertIsNotNone(samsung_pay_card.created_at)
        self.assertIsNotNone(samsung_pay_card.customer_id)
        self.assertIsNotNone(samsung_pay_card.customer_location)
        self.assertIsNotNone(samsung_pay_card.debit)
        self.assertIsNotNone(samsung_pay_card.default)
        self.assertIsNotNone(samsung_pay_card.durbin_regulated)
        self.assertIsNotNone(samsung_pay_card.expiration_date)
        self.assertIsNotNone(samsung_pay_card.expiration_month)
        self.assertIsNotNone(samsung_pay_card.expiration_year)
        self.assertIsNotNone(samsung_pay_card.expired)
        self.assertIsNotNone(samsung_pay_card.healthcare)
        self.assertIsNotNone(samsung_pay_card.image_url)
        self.assertIsNotNone(samsung_pay_card.issuing_bank)
        self.assertIsNotNone(samsung_pay_card.last_4)
        self.assertIsNotNone(samsung_pay_card.masked_number)
        self.assertIsNotNone(samsung_pay_card.payroll)
        self.assertIsNotNone(samsung_pay_card.prepaid)
        self.assertIsNotNone(samsung_pay_card.product_id)
        self.assertIsNotNone(samsung_pay_card.subscriptions)
        self.assertIsNotNone(samsung_pay_card.token)
        self.assertIsNotNone(samsung_pay_card.unique_number_identifier)
        self.assertIsNotNone(samsung_pay_card.updated_at)

    def test_create_from_nonce_customer_attr(self):
        customer = Customer.create().customer
        result = PaymentMethod.create({
            "customer_id": customer.id,
            "payment_method_nonce": Nonces.SamsungPayVisa
        })

        samsung_pay_cards = Customer.find(customer.id).samsung_pay_cards
        self.assertEqual(len(samsung_pay_cards), 1)
        self.assertEqual(result.payment_method.token, samsung_pay_cards[0].token)

    def test_create_from_nonce_with_name_and_address(self):
        customer = Customer.create().customer
        result = PaymentMethod.create({
            "customer_id": customer.id,
            "payment_method_nonce": Nonces.SamsungPayVisa,
            "cardholder_name": "Gronk",
            "billing_address": {
                "street_address": "123 Abc Way",
                "locality": "Chicago",
                "region": "Illinois",
                "postal_code": "60622",
                "country_code_alpha2": "MX",
                "country_code_alpha3": "MEX",
                "country_code_numeric": "484",
                "country_name": "Mexico"
            }
        })

        self.assertTrue(result.is_success)
        self.assertEqual("Gronk", result.payment_method.cardholder_name)

        address = result.payment_method.billing_address
        self.assertEqual("123 Abc Way", address.street_address)
        self.assertEqual("Chicago", address.locality)
        self.assertEqual("Illinois", address.region)
        self.assertEqual("60622", address.postal_code)
        self.assertEqual("MX", address.country_code_alpha2)
        self.assertEqual("MEX", address.country_code_alpha3)
        self.assertEqual("484", address.country_code_numeric)
        self.assertEqual("Mexico", address.country_name)

    def test_search_for_transaction(self):
        result = Transaction.sale({
            "payment_method_nonce": Nonces.SamsungPayVisa,
            "amount": "1.69"
        })

        self.assertTrue(result.is_success)
        transaction = result.transaction

        collection = Transaction.search([
            TransactionSearch.id == transaction.id,
            TransactionSearch.payment_instrument_type == PaymentInstrumentType.SamsungPayCard
        ])

        self.assertEqual(1, collection.maximum_size)
        self.assertEqual(transaction.id, collection.first.id)

    def test_create_transaction_from_nonce_and_vault(self):
        customer = Customer.create().customer
        result = Transaction.sale({
            "payment_method_nonce": Nonces.SamsungPayVisa,
            "customer_id": customer.id,
            "amount": "69.69",
            "options": {
                "store_in_vault": True
            }
        })

        self.assertTrue(result.is_success)

        samsung_pay_card_details = result.transaction.samsung_pay_card_details
        self.assertIsInstance(samsung_pay_card_details, braintree.SamsungPayCard)
        self.assertIsNotNone(samsung_pay_card_details.bin)
        self.assertIsNotNone(samsung_pay_card_details.card_type)
        self.assertIsNotNone(samsung_pay_card_details.commercial)
        self.assertIsNotNone(samsung_pay_card_details.country_of_issuance)
        self.assertIsNotNone(samsung_pay_card_details.debit)
        self.assertIsNotNone(samsung_pay_card_details.durbin_regulated)
        self.assertIsNotNone(samsung_pay_card_details.expiration_date)
        self.assertIsNotNone(samsung_pay_card_details.expiration_year)
        self.assertIsNotNone(samsung_pay_card_details.expiration_month)
        self.assertIsNotNone(samsung_pay_card_details.healthcare)
        self.assertIsNotNone(samsung_pay_card_details.image_url)
        self.assertIsNotNone(samsung_pay_card_details.issuing_bank)
        self.assertIsNotNone(samsung_pay_card_details.last_4)
        self.assertIsNotNone(samsung_pay_card_details.payroll)
        self.assertIsNotNone(samsung_pay_card_details.prepaid)
        self.assertIsNotNone(samsung_pay_card_details.product_id)
        self.assertIsNotNone(samsung_pay_card_details.token)