Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
added tags to Cards attributes
added tags to Cards update tests
  • Loading branch information
axshani committed Oct 23, 2022
commit fd1014babbe5c9dab256978ba0f00c47ed5fed4d
10 changes: 7 additions & 3 deletions e2e_tests/card_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -168,17 +168,19 @@ def test_report_lost_card():
def test_update_individual_card():
card_id = find_card_id({"type": "individualDebitCard", "status": "Active"})
_address = Address("1818 Pennsylvania Avenue Northwest", "Washington", "CA", "21500", "US")
request = PatchIndividualDebitCard(card_id, _address)
request = PatchIndividualDebitCard(card_id, _address, tags={"test": "updated"})
response = client.cards.update(request)
assert response.data.type == "individualDebitCard"
assert response.data.attributes.get("tags").get("test") == "updated"


def test_update_business_card():
card_id = create_business_debit_card().id
_address = Address("1818 Pennsylvania Avenue Northwest", "Washington", "CA", "21500", "US")
request = PatchBusinessDebitCard(card_id, address=_address)
request = PatchBusinessDebitCard(card_id, address=_address, tags={"test": "updated"})
response = client.cards.update(request)
assert response.data.type == "businessDebitCard"
assert response.data.attributes.get("tags").get("test") == "updated"


def test_get_pin_status():
Expand Down Expand Up @@ -235,6 +237,8 @@ def test_create_business_virtual_credit_card():
def test_update_business_credit_card():
card_id = create_business_credit_card().data.id
_address = Address("1818 Pennsylvania Avenue Northwest", "Washington", "CA", "21500", "US")
request = PatchBusinessCreditCard(card_id, address=_address)
request = PatchBusinessCreditCard(card_id, address=_address, tags={"test": "updated"})
response = client.cards.update(request)
assert response.data.type == "businessCreditCard"
assert response.data.attributes.get("tags").get("test") == "updated"

27 changes: 14 additions & 13 deletions unit/models/card.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
class IndividualDebitCardDTO(object):
def __init__(self, id: str, created_at: datetime, last_4_digits: str, expiration_date: str, status: CardStatus,
shipping_address: Optional[Address], design: Optional[str],
relationships: Optional[Dict[str, Relationship]]):
relationships: Optional[Dict[str, Relationship]], tags: Optional[Dict[str, str]]):
self.id = id
self.type = "individualDebitCard"
self.attributes = {"createdAt": created_at, "last4Digits": last_4_digits, "expirationDate": expiration_date,
"status": status, "shippingAddress": shipping_address, "design": design}
"status": status, "shippingAddress": shipping_address, "design": design, "tags": tags}
self.relationships = relationships

@staticmethod
Expand All @@ -20,22 +20,22 @@ def from_json_api(_id, _type, attributes, relationships):
return IndividualDebitCardDTO(
_id, date_utils.to_datetime(attributes["createdAt"]), attributes["last4Digits"],
attributes["expirationDate"], attributes["status"],
shipping_address, attributes.get("design"), relationships
)
shipping_address, attributes.get("design"), relationships, attributes.get("tags"))


class BusinessCardDTO(object):
def __init__(self, _id: str, _type: str, created_at: datetime, last_4_digits: str, expiration_date: str,
ssn: Optional[str], full_name: FullName, date_of_birth: date, address: Address, phone: Phone,
email: str, status: CardStatus, passport: Optional[str], nationality: Optional[str],
shipping_address: Optional[Address], design: Optional[str],
relationships: Optional[Dict[str, Relationship]]):
relationships: Optional[Dict[str, Relationship]], tags: Optional[Dict[str, str]]):
self.id = _id
self.type = _type
self.attributes = {"createdAt": created_at, "last4Digits": last_4_digits, "expirationDate": expiration_date,
"ssn": ssn, "fullName": full_name, "dateOfBirth": date_of_birth, "address": address,
"phone": phone, "email": email, "status": status, "passport": passport,
"nationality": nationality, "shippingAddress": shipping_address, "design": design}
"nationality": nationality, "shippingAddress": shipping_address, "design": design,
"tags": tags}
self.relationships = relationships

@staticmethod
Expand All @@ -46,7 +46,8 @@ def from_json_api(_id, _type, attributes, relationships):
attributes["dateOfBirth"], Address.from_json_api(attributes["address"]),
Phone.from_json_api(attributes["phone"]), attributes["email"], attributes["status"],
attributes.get("passport"), attributes.get("nationality"),
Address.from_json_api(attributes.get("shippingAddress")), attributes.get("design"), relationships
Address.from_json_api(attributes.get("shippingAddress")), attributes.get("design"), relationships,
attributes.get("tags")
)


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

class IndividualVirtualDebitCardDTO(object):
def __init__(self, _id: str, created_at: datetime, last_4_digits: str, expiration_date: str, status: CardStatus,
relationships: Optional[Dict[str, Relationship]]):
relationships: Optional[Dict[str, Relationship]], tags: Optional[Dict[str, str]]):
self.id = _id
self.type = "individualVirtualDebitCard"
self.attributes = {"createdAt": created_at, "last4Digits": last_4_digits, "expirationDate": expiration_date,
"status": status}
"status": status, "tags": tags}
self.relationships = relationships

@staticmethod
def from_json_api(_id, _type, attributes, relationships):
return IndividualVirtualDebitCardDTO(
_id, date_utils.to_datetime(attributes["createdAt"]), attributes["last4Digits"],
attributes["expirationDate"], attributes["status"], relationships
attributes["expirationDate"], attributes["status"], relationships, attributes.get("tags")
)


class BusinessVirtualCardDTO(object):
def __init__(self, _id: str, _type: str, created_at: datetime, last_4_digits: str, expiration_date: str,
ssn: Optional[str], full_name: FullName, date_of_birth: date, address: Address, phone: Phone,
email: str, status: CardStatus, passport: Optional[str], nationality: Optional[str],
relationships: Optional[Dict[str, Relationship]]):
relationships: Optional[Dict[str, Relationship]], tags: Optional[Dict[str, str]]):
self.id = _id
self.type = _type
self.attributes = {"createdAt": created_at, "last4Digits": last_4_digits, "expirationDate": expiration_date,
"ssn": ssn, "fullName": full_name, "dateOfBirth": date_of_birth, "address": address,
"phone": phone, "email": email, "status": status, "passport": passport,
"nationality": nationality}
"nationality": nationality, "tags": tags}
self.relationships = relationships

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


class BusinessVirtualDebitCardDTO(BusinessVirtualCardDTO):
Expand Down