Skip to content

Commit 006d0db

Browse files
committed
Fix price lists tests and increase timeouts for e2e
1 parent 94e9ebd commit 006d0db

File tree

9 files changed

+44
-42
lines changed

9 files changed

+44
-42
lines changed

mpt_api_client/http/async_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def __init__(
2727
*,
2828
base_url: str | None = None,
2929
api_token: str | None = None,
30-
timeout: float = 10.0,
30+
timeout: float = 20.0,
3131
retries: int = 5,
3232
):
3333
api_token = api_token or os.getenv("MPT_TOKEN")

mpt_api_client/http/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def __init__(
4040
*,
4141
base_url: str | None = None,
4242
api_token: str | None = None,
43-
timeout: float = 10.0,
43+
timeout: float = 20.0,
4444
retries: int = 5,
4545
):
4646
api_token = api_token or os.getenv("MPT_TOKEN")

tests/e2e/catalog/price_lists/conftest.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@ def created_price_list(price_lists_service, price_list_data):
2626

2727

2828
@pytest.fixture
29-
def price_list_id(created_price_list):
30-
return created_price_list.id
29+
def price_list_id(e2e_config):
30+
return e2e_config["catalog.price_list.id"]

tests/e2e/catalog/price_lists/items/conftest.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import pytest
22

3+
from mpt_api_client import RQLQuery
4+
35

46
@pytest.fixture
57
def price_list_items_service(mpt_ops, price_list_id):
@@ -21,6 +23,10 @@ def price_list_item_data(short_uuid):
2123

2224

2325
@pytest.fixture
24-
def price_list_item(price_list_items_service):
25-
price_list_items = price_list_items_service.fetch_page(1)
26-
return price_list_items[0]
26+
def price_list_item(price_list_items_service, item_id):
27+
return next(price_list_items_service.filter(RQLQuery(item__id=item_id)).iterate())
28+
29+
30+
@pytest.fixture
31+
def price_list_item_id(price_list_item):
32+
return price_list_item.id

tests/e2e/catalog/price_lists/items/test_async_price_list_items.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,22 @@
88
pytestmark = [pytest.mark.flaky]
99

1010

11-
async def test_get_price_list_item(async_price_list_items_service, price_list_item):
12-
result = await async_price_list_items_service.get(price_list_item.id)
11+
async def test_get_price_list_item(async_price_list_items_service, price_list_item_id):
12+
result = await async_price_list_items_service.get(price_list_item_id)
1313

14-
assert result.id == price_list_item.id
14+
assert result.id == price_list_item_id
1515

1616

17-
async def test_filter_price_list_items(async_price_list_items_service, price_list_item):
17+
async def test_filter_price_list_items(async_price_list_items_service, price_list_item_id):
1818
await assert_async_service_filter_with_iterate(
19-
async_price_list_items_service, price_list_item.id, ["-notes"]
19+
async_price_list_items_service, price_list_item_id, ["-notes"]
2020
) # act
2121

2222

2323
async def test_update_price_list_item(
24-
async_price_list_items_service, price_list_item, price_list_item_data
24+
async_price_list_items_service, price_list_item_id, price_list_item_data
2525
):
26-
result = await async_price_list_items_service.update(price_list_item.id, price_list_item_data)
26+
result = await async_price_list_items_service.update(price_list_item_id, price_list_item_data)
2727

2828
assert result.reason_for_change == price_list_item_data["reasonForChange"]
2929

@@ -35,8 +35,10 @@ async def test_get_price_list_item_not_found(async_price_list_items_service):
3535
await async_price_list_items_service.get(bogus_id)
3636

3737

38-
async def test_create_price_list_item_invalid_data(async_price_list_items_service, price_list_item):
39-
invalid_data = {"unitPP": "0"}
38+
async def test_update_price_list_item_invalid_data(
39+
async_price_list_items_service, price_list_item_id
40+
):
41+
invalid_data = {"unitPP": "NaN"}
4042

4143
with pytest.raises(MPTAPIError, match=r"400 Bad Request"):
42-
await async_price_list_items_service.update(price_list_item.id, invalid_data)
44+
await async_price_list_items_service.update(price_list_item_id, invalid_data)

tests/e2e/catalog/price_lists/items/test_sync_price_list_items.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,20 @@
88
pytestmark = [pytest.mark.flaky]
99

1010

11-
def test_get_price_list_item(price_list_items_service, price_list_item):
12-
result = price_list_items_service.get(price_list_item.id)
11+
def test_get_price_list_item(price_list_items_service, price_list_item_id):
12+
result = price_list_items_service.get(price_list_item_id)
1313

14-
assert result.id == price_list_item.id
14+
assert result.id == price_list_item_id
1515

1616

17-
def test_filter_price_list_items(price_list_items_service, price_list_item):
17+
def test_filter_price_list_items(price_list_items_service, price_list_item_id):
1818
assert_service_filter_with_iterate(
19-
price_list_items_service, price_list_item.id, ["-notes"]
19+
price_list_items_service, price_list_item_id, ["-notes"]
2020
) # act
2121

2222

23-
def test_update_price_list_item(price_list_items_service, price_list_item, price_list_item_data):
24-
result = price_list_items_service.update(price_list_item.id, price_list_item_data)
23+
def test_update_price_list_item(price_list_items_service, price_list_item_id, price_list_item_data):
24+
result = price_list_items_service.update(price_list_item_id, price_list_item_data)
2525

2626
assert result.reason_for_change == price_list_item_data["reasonForChange"]
2727

@@ -33,8 +33,8 @@ def test_get_price_list_item_not_found(price_list_items_service):
3333
price_list_items_service.get(bogus_id)
3434

3535

36-
def test_create_price_list_item_invalid_data(price_list_items_service, price_list_item):
37-
invalid_data = {"unitPP": "0"}
36+
def test_update_price_list_item_invalid_data(price_list_items_service, price_list_item_id):
37+
invalid_data = {"unitPP": "NaN"}
3838

3939
with pytest.raises(MPTAPIError, match=r"400 Bad Request"):
40-
price_list_items_service.update(price_list_item.id, invalid_data)
40+
price_list_items_service.update(price_list_item_id, invalid_data)

tests/e2e/catalog/price_lists/test_async_price_lists.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,28 +29,22 @@ def test_create_price_list(async_created_price_list, product_id):
2929
assert result.product.id == product_id
3030

3131

32-
async def test_get_price_list(async_price_lists_service, async_created_price_list):
33-
result = await async_price_lists_service.get(async_created_price_list.id)
34-
35-
assert result.id == async_created_price_list.id
36-
37-
38-
async def test_get_price_list_by_id(async_price_lists_service, price_list_id):
32+
async def test_get_price_list(async_price_lists_service, price_list_id):
3933
result = await async_price_lists_service.get(price_list_id)
4034

4135
assert result.id == price_list_id
4236

4337

44-
async def test_filter_price_lists(async_price_lists_service, async_created_price_list):
38+
async def test_filter_price_lists(async_price_lists_service, price_list_id):
4539
await assert_async_service_filter_with_iterate(
46-
async_price_lists_service, async_created_price_list.id, ["-product"]
40+
async_price_lists_service, price_list_id, ["-product"]
4741
) # act
4842

4943

50-
async def test_update_price_list(async_price_lists_service, async_created_price_list, short_uuid):
44+
async def test_update_price_list(async_price_lists_service, price_list_id, short_uuid):
5145
await assert_async_update_resource(
5246
async_price_lists_service,
53-
async_created_price_list.id,
47+
price_list_id,
5448
"notes",
5549
f"Updated notes {short_uuid}",
5650
) # act

tests/unit/http/test_async_client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def test_async_http_initialization(mocker):
3232
"User-Agent": "swo-marketplace-client/1.0",
3333
"Authorization": "Bearer test-token",
3434
},
35-
timeout=10.0,
35+
timeout=20.0,
3636
transport=mocker.ANY,
3737
)
3838

@@ -51,7 +51,7 @@ def test_async_env_initialization(monkeypatch, mocker):
5151
"User-Agent": "swo-marketplace-client/1.0",
5252
"Authorization": f"Bearer {API_TOKEN}",
5353
},
54-
timeout=10.0,
54+
timeout=20.0,
5555
transport=mocker.ANY,
5656
)
5757

tests/unit/http/test_client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def test_http_initialization(mocker):
2222
"User-Agent": "swo-marketplace-client/1.0",
2323
"Authorization": "Bearer test-token",
2424
},
25-
timeout=10.0,
25+
timeout=20.0,
2626
transport=mocker.ANY,
2727
)
2828

@@ -41,7 +41,7 @@ def test_env_initialization(monkeypatch, mocker):
4141
"User-Agent": "swo-marketplace-client/1.0",
4242
"Authorization": f"Bearer {API_TOKEN}",
4343
},
44-
timeout=10.0,
44+
timeout=20.0,
4545
transport=mocker.ANY,
4646
)
4747

0 commit comments

Comments
 (0)