Skip to content

Commit 46e7aa1

Browse files
committed
Add missing cart_discount, discount_code and extension actions
1 parent 6e97a44 commit 46e7aa1

File tree

6 files changed

+131
-0
lines changed

6 files changed

+131
-0
lines changed

src/commercetools/testing/cart_discounts.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,4 +72,6 @@ def urls(self):
7272
"setName": update_attribute("name", "name"),
7373
"setDescription": update_attribute("description", "description"),
7474
"setCartPredicate": update_attribute("cartPredicate", "cart_predicate"),
75+
"setValidFrom": update_attribute("valid_from", "valid_from"),
76+
"setValidUntil": update_attribute("valid_until", "valid_until")
7577
}

src/commercetools/testing/discount_codes.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,6 @@ def urls(self):
6767
"setMaxApplicationsPerCustomer": update_attribute(
6868
"maxApplicationsPerCustomer", "max_applications_per_customer"
6969
),
70+
"setValidFrom": update_attribute("valid_from", "valid_from"),
71+
"setValidUntil": update_attribute("valid_until", "valid_until")
7072
}

src/commercetools/testing/extensions.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
ExtensionUpdateSchema,
1111
)
1212
from commercetools.testing.abstract import BaseModel, ServiceBackend
13+
from commercetools.testing.utils import update_attribute
1314

1415

1516
class ExtensionsModel(BaseModel):
@@ -49,3 +50,7 @@ def urls(self):
4950
("^(?P<id>[^/]+)$", "DELETE", self.delete_by_id),
5051
("^key=(?P<key>[^/]+)$", "DELETE", self.delete_by_key),
5152
]
53+
54+
_actions = {
55+
"changeTriggers": update_attribute("triggers", "triggers"),
56+
}

tests/platform/test_service_cart_discounts.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from datetime import datetime
2+
13
import pytest
24
from requests.exceptions import HTTPError
35

@@ -90,3 +92,49 @@ def test_cart_discount_update(old_client):
9092
)
9193

9294
assert cart_discount.is_active is False
95+
96+
97+
@pytest.mark.freeze_time("2021-03-01 12:34:56")
98+
def test_cart_discount_set_valid_from(old_client):
99+
cart_discount = old_client.cart_discounts.create(
100+
models.CartDiscountDraft(
101+
name=models.LocalizedString(en="en-cart_discount"),
102+
value=models.CartDiscountValueRelative(permyriad=10),
103+
is_active=True,
104+
cart_predicate="",
105+
sort_order="",
106+
requires_discount_code=False,
107+
)
108+
)
109+
assert cart_discount.id
110+
111+
cart_discount = old_client.cart_discounts.update_by_id(
112+
id=cart_discount.id,
113+
version=cart_discount.version,
114+
actions=[models.CartDiscountSetValidFromAction(valid_from=datetime.now())],
115+
)
116+
117+
assert cart_discount.valid_from == datetime.now()
118+
119+
120+
@pytest.mark.freeze_time("2021-03-01 12:34:56")
121+
def test_cart_discount_set_valid_until(old_client):
122+
cart_discount = old_client.cart_discounts.create(
123+
models.CartDiscountDraft(
124+
name=models.LocalizedString(en="en-cart_discount"),
125+
value=models.CartDiscountValueRelative(permyriad=10),
126+
is_active=True,
127+
cart_predicate="",
128+
sort_order="",
129+
requires_discount_code=False,
130+
)
131+
)
132+
assert cart_discount.id
133+
134+
cart_discount = old_client.cart_discounts.update_by_id(
135+
id=cart_discount.id,
136+
version=cart_discount.version,
137+
actions=[models.CartDiscountSetValidUntilAction(valid_until=datetime.now())],
138+
)
139+
140+
assert cart_discount.valid_until == datetime.now()

tests/platform/test_service_discount_codes.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from datetime import datetime
2+
13
import pytest
24
from requests.exceptions import HTTPError
35

@@ -69,3 +71,47 @@ def test_discount_code_update(old_client):
6971
)
7072

7173
assert discount_code.is_active is False
74+
75+
76+
@pytest.mark.freeze_time("2021-03-01 12:34:56")
77+
def test_discount_code_set_valid_from(old_client):
78+
discount_code = old_client.discount_codes.create(
79+
models.DiscountCodeDraft(
80+
name=models.LocalizedString(en="en-discount_code"),
81+
code="1337",
82+
is_active=True,
83+
cart_discounts=[],
84+
)
85+
)
86+
assert discount_code.id
87+
assert discount_code.valid_from is None
88+
89+
discount_code = old_client.discount_codes.update_by_id(
90+
id=discount_code.id,
91+
version=discount_code.version,
92+
actions=[models.DiscountCodeSetValidFromAction(valid_from=datetime.now())],
93+
)
94+
95+
assert discount_code.valid_from == datetime.now()
96+
97+
98+
@pytest.mark.freeze_time("2021-03-01 12:34:56")
99+
def test_discount_code_set_valid_until(old_client):
100+
discount_code = old_client.discount_codes.create(
101+
models.DiscountCodeDraft(
102+
name=models.LocalizedString(en="en-discount_code"),
103+
code="1337",
104+
is_active=True,
105+
cart_discounts=[],
106+
)
107+
)
108+
assert discount_code.id
109+
assert discount_code.valid_until is None
110+
111+
discount_code = old_client.discount_codes.update_by_id(
112+
id=discount_code.id,
113+
version=discount_code.version,
114+
actions=[models.DiscountCodeSetValidUntilAction(valid_until=datetime.now())],
115+
)
116+
117+
assert discount_code.valid_until == datetime.now()

tests/platform/test_service_extensions.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,31 @@ def test_extension_get_by_id(old_client):
2626

2727
extension = old_client.extensions.get_by_id(extension.id)
2828
assert extension.id
29+
30+
31+
def test_extension_update_change_triggers(old_client):
32+
extension = old_client.extensions.create(models.ExtensionDraft(
33+
destination=models.ExtensionAWSLambdaDestination(
34+
arn="arn:", access_key="access", access_secret="secret"
35+
),
36+
triggers=[],
37+
)
38+
)
39+
assert extension.id
40+
assert extension.triggers == []
41+
42+
extension = old_client.extensions.update_by_id(
43+
id=extension.id,
44+
version=extension.version,
45+
actions=[
46+
models.ExtensionChangeTriggersAction(
47+
triggers=[models.ExtensionTrigger(
48+
resource_type_id=models.ExtensionResourceTypeId.CART,
49+
actions=[models.ExtensionAction.CREATE, models.ExtensionAction.UPDATE]
50+
)]
51+
)
52+
])
53+
assert extension.triggers == [models.ExtensionTrigger(
54+
resource_type_id=models.ExtensionResourceTypeId.CART,
55+
actions=[models.ExtensionAction.CREATE, models.ExtensionAction.UPDATE]
56+
)]

0 commit comments

Comments
 (0)