Skip to content

Commit 0e727cc

Browse files
authored
added tags to Cards attributes (unit-finance#167)
added tags to Cards update tests
1 parent 5d8e039 commit 0e727cc

File tree

2 files changed

+21
-16
lines changed

2 files changed

+21
-16
lines changed

e2e_tests/card_test.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,17 +168,19 @@ def test_report_lost_card():
168168
def test_update_individual_card():
169169
card_id = find_card_id({"type": "individualDebitCard", "status": "Active"})
170170
_address = Address("1818 Pennsylvania Avenue Northwest", "Washington", "CA", "21500", "US")
171-
request = PatchIndividualDebitCard(card_id, _address)
171+
request = PatchIndividualDebitCard(card_id, _address, tags={"test": "updated"})
172172
response = client.cards.update(request)
173173
assert response.data.type == "individualDebitCard"
174+
assert response.data.attributes.get("tags").get("test") == "updated"
174175

175176

176177
def test_update_business_card():
177178
card_id = create_business_debit_card().id
178179
_address = Address("1818 Pennsylvania Avenue Northwest", "Washington", "CA", "21500", "US")
179-
request = PatchBusinessDebitCard(card_id, address=_address)
180+
request = PatchBusinessDebitCard(card_id, address=_address, tags={"test": "updated"})
180181
response = client.cards.update(request)
181182
assert response.data.type == "businessDebitCard"
183+
assert response.data.attributes.get("tags").get("test") == "updated"
182184

183185

184186
def test_get_pin_status():
@@ -235,6 +237,8 @@ def test_create_business_virtual_credit_card():
235237
def test_update_business_credit_card():
236238
card_id = create_business_credit_card().data.id
237239
_address = Address("1818 Pennsylvania Avenue Northwest", "Washington", "CA", "21500", "US")
238-
request = PatchBusinessCreditCard(card_id, address=_address)
240+
request = PatchBusinessCreditCard(card_id, address=_address, tags={"test": "updated"})
239241
response = client.cards.update(request)
240242
assert response.data.type == "businessCreditCard"
243+
assert response.data.attributes.get("tags").get("test") == "updated"
244+

unit/models/card.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
class IndividualDebitCardDTO(object):
88
def __init__(self, id: str, created_at: datetime, last_4_digits: str, expiration_date: str, status: CardStatus,
99
shipping_address: Optional[Address], design: Optional[str],
10-
relationships: Optional[Dict[str, Relationship]]):
10+
relationships: Optional[Dict[str, Relationship]], tags: Optional[Dict[str, str]]):
1111
self.id = id
1212
self.type = "individualDebitCard"
1313
self.attributes = {"createdAt": created_at, "last4Digits": last_4_digits, "expirationDate": expiration_date,
14-
"status": status, "shippingAddress": shipping_address, "design": design}
14+
"status": status, "shippingAddress": shipping_address, "design": design, "tags": tags}
1515
self.relationships = relationships
1616

1717
@staticmethod
@@ -20,22 +20,22 @@ def from_json_api(_id, _type, attributes, relationships):
2020
return IndividualDebitCardDTO(
2121
_id, date_utils.to_datetime(attributes["createdAt"]), attributes["last4Digits"],
2222
attributes["expirationDate"], attributes["status"],
23-
shipping_address, attributes.get("design"), relationships
24-
)
23+
shipping_address, attributes.get("design"), relationships, attributes.get("tags"))
2524

2625

2726
class BusinessCardDTO(object):
2827
def __init__(self, _id: str, _type: str, created_at: datetime, last_4_digits: str, expiration_date: str,
2928
ssn: Optional[str], full_name: FullName, date_of_birth: date, address: Address, phone: Phone,
3029
email: str, status: CardStatus, passport: Optional[str], nationality: Optional[str],
3130
shipping_address: Optional[Address], design: Optional[str],
32-
relationships: Optional[Dict[str, Relationship]]):
31+
relationships: Optional[Dict[str, Relationship]], tags: Optional[Dict[str, str]]):
3332
self.id = _id
3433
self.type = _type
3534
self.attributes = {"createdAt": created_at, "last4Digits": last_4_digits, "expirationDate": expiration_date,
3635
"ssn": ssn, "fullName": full_name, "dateOfBirth": date_of_birth, "address": address,
3736
"phone": phone, "email": email, "status": status, "passport": passport,
38-
"nationality": nationality, "shippingAddress": shipping_address, "design": design}
37+
"nationality": nationality, "shippingAddress": shipping_address, "design": design,
38+
"tags": tags}
3939
self.relationships = relationships
4040

4141
@staticmethod
@@ -46,7 +46,8 @@ def from_json_api(_id, _type, attributes, relationships):
4646
attributes["dateOfBirth"], Address.from_json_api(attributes["address"]),
4747
Phone.from_json_api(attributes["phone"]), attributes["email"], attributes["status"],
4848
attributes.get("passport"), attributes.get("nationality"),
49-
Address.from_json_api(attributes.get("shippingAddress")), attributes.get("design"), relationships
49+
Address.from_json_api(attributes.get("shippingAddress")), attributes.get("design"), relationships,
50+
attributes.get("tags")
5051
)
5152

5253

@@ -76,32 +77,32 @@ def from_json_api(_id, _type, attributes, relationships):
7677

7778
class IndividualVirtualDebitCardDTO(object):
7879
def __init__(self, _id: str, created_at: datetime, last_4_digits: str, expiration_date: str, status: CardStatus,
79-
relationships: Optional[Dict[str, Relationship]]):
80+
relationships: Optional[Dict[str, Relationship]], tags: Optional[Dict[str, str]]):
8081
self.id = _id
8182
self.type = "individualVirtualDebitCard"
8283
self.attributes = {"createdAt": created_at, "last4Digits": last_4_digits, "expirationDate": expiration_date,
83-
"status": status}
84+
"status": status, "tags": tags}
8485
self.relationships = relationships
8586

8687
@staticmethod
8788
def from_json_api(_id, _type, attributes, relationships):
8889
return IndividualVirtualDebitCardDTO(
8990
_id, date_utils.to_datetime(attributes["createdAt"]), attributes["last4Digits"],
90-
attributes["expirationDate"], attributes["status"], relationships
91+
attributes["expirationDate"], attributes["status"], relationships, attributes.get("tags")
9192
)
9293

9394

9495
class BusinessVirtualCardDTO(object):
9596
def __init__(self, _id: str, _type: str, created_at: datetime, last_4_digits: str, expiration_date: str,
9697
ssn: Optional[str], full_name: FullName, date_of_birth: date, address: Address, phone: Phone,
9798
email: str, status: CardStatus, passport: Optional[str], nationality: Optional[str],
98-
relationships: Optional[Dict[str, Relationship]]):
99+
relationships: Optional[Dict[str, Relationship]], tags: Optional[Dict[str, str]]):
99100
self.id = _id
100101
self.type = _type
101102
self.attributes = {"createdAt": created_at, "last4Digits": last_4_digits, "expirationDate": expiration_date,
102103
"ssn": ssn, "fullName": full_name, "dateOfBirth": date_of_birth, "address": address,
103104
"phone": phone, "email": email, "status": status, "passport": passport,
104-
"nationality": nationality}
105+
"nationality": nationality, "tags": tags}
105106
self.relationships = relationships
106107

107108
@staticmethod
@@ -111,7 +112,7 @@ def from_json_api(_id, _type, attributes, relationships):
111112
attributes["expirationDate"], attributes.get("ssn"), FullName.from_json_api(attributes["fullName"]),
112113
attributes["dateOfBirth"], Address.from_json_api(attributes["address"]),
113114
Phone.from_json_api(attributes["phone"]), attributes["email"], attributes["status"],
114-
attributes.get("passport"), attributes.get("nationality"), relationships)
115+
attributes.get("passport"), attributes.get("nationality"), relationships, attributes.get("tags"))
115116

116117

117118
class BusinessVirtualDebitCardDTO(BusinessVirtualCardDTO):

0 commit comments

Comments
 (0)