Skip to content
This repository has been archived by the owner on Sep 15, 2023. It is now read-only.

Commit

Permalink
adiciona o installment_plan como campo non_required (#109)
Browse files Browse the repository at this point in the history
* adiciona o installment_plan como campo non_required

* corrige testes
  • Loading branch information
rodrigondec committed Oct 9, 2020
1 parent df60d4a commit 415ec12
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 12 deletions.
17 changes: 12 additions & 5 deletions tests/models/transaction/test_source.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,17 @@ def test_init_custom_fields_card_present_type_installment_plan_raise(self):
def test_required_fields(self):

self.assertEqual(
{"card", "type", "usage", "currency", "amount", "installment_plan"},
{"card", "type", "usage", "currency", "amount"},
Source.get_required_fields(),
)

def test_non_required_fields(self):

self.assertEqual(
{"installment_plan"},
Source.get_non_required_fields(),
)

def test_create_card_present(self):
instance = SourceCardPresentFactory()
self.assertIsInstance(instance, Source)
Expand All @@ -97,13 +104,13 @@ def test_create_card_not_present(self):

def test_get_card_not_present_required_fields(self):
self.assertEqual(
{"card", "type", "amount", "usage", "currency", "installment_plan"},
{"card", "type", "amount", "usage", "currency"},
Source.get_card_not_present_required_fields(),
)

def test_get_card_present_required_fields(self):
self.assertEqual(
{"amount", "card", "currency", "type", "usage", "installment_plan"},
{"amount", "card", "currency", "type", "usage"},
Source.get_card_present_required_fields(),
)

Expand All @@ -114,7 +121,7 @@ def test_get_validation_fields_card_not_present(self):
self.assertIsInstance(instance, Source)

self.assertEqual(
{"card", "type", "currency", "usage", "amount", "installment_plan"},
{"card", "type", "currency", "usage", "amount"},
instance.get_validation_fields(),
)

Expand All @@ -133,7 +140,7 @@ def test_get_validation_fields_card_present(self):
self.assertIsInstance(instance, Source)

self.assertEqual(
{"card", "type", "usage", "currency", "amount", "installment_plan"},
{"card", "type", "usage", "currency", "amount"},
instance.get_validation_fields(),
)

Expand Down
19 changes: 12 additions & 7 deletions zoop_wrapper/models/transaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,8 @@ def init_custom_fields(
f"Utilize um dos tipos {Source.SOURCE_TYPES}",
) from e

installment_plan = InstallmentPlan.from_dict_or_instance(installment_plan)
if installment_plan:
installment_plan = InstallmentPlan.from_dict_or_instance(installment_plan)

setattr(self, "installment_plan", installment_plan)
setattr(self, "card", token_for_card)
Expand Down Expand Up @@ -366,19 +367,23 @@ def get_all_fields(self):
"""
Pega ``todos os campos`` da instância.
O conjunto de todos os campos é igual ao conjunto de campos a serem validados
Returns:
``set`` de todos os campos
"""
return self.get_validation_fields()
fields = set()
return fields.union(
self.get_validation_fields(), self.get_non_required_fields()
)

@classmethod
def get_required_fields(cls):
fields = super().get_required_fields()
return fields.union(
{"card", "type", "currency", "usage", "amount", "installment_plan"}
)
return fields.union({"card", "type", "currency", "usage", "amount"})

@classmethod
def get_non_required_fields(cls) -> set:
fields = super().get_non_required_fields()
return fields.union({"installment_plan"})

@classmethod
def get_card_not_present_required_fields(cls):
Expand Down

0 comments on commit 415ec12

Please sign in to comment.