Skip to content

Commit 4ef140e

Browse files
committed
MPT-14897 E2E Catalog listings
1 parent ff6b291 commit 4ef140e

File tree

6 files changed

+170
-8
lines changed

6 files changed

+170
-8
lines changed

e2e_config.test.json

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,25 @@
1111
"accounts.seller.id": "SEL-7310-3075",
1212
"accounts.user.id": "USR-9673-3314",
1313
"accounts.user_group.id": "UGR-6822-0561",
14-
"commerce.agreement.id": "AGR-9850-2169-6098",
15-
"commerce.product.id": "PRD-1767-7355",
16-
"commerce.product.item.id": "ITM-1767-7355-0001",
17-
"commerce.product.listing.id": "LST-5489-0806",
18-
"commerce.product.template.id": "TPL-1767-7355-0003",
19-
"commerce.authorization.id": "AUT-0031-2873",
20-
"commerce.client.id": "ACC-1086-6867",
21-
"catalog.product.item.id": "ITM-7255-3950-0751",
14+
"catalog.authorization.id": "AUT-9288-6146",
15+
"catalog.listing.id": "LST-5489-0806",
2216
"catalog.product.document.id": "PDC-7255-3950-0001",
17+
"catalog.price_list.id": "PRC-7255-3950-0245",
2318
"catalog.product.id": "PRD-7255-3950",
19+
"catalog.product.item.id": "ITM-7255-3950-0751",
2420
"catalog.product.item_group.id": "IGR-7255-3950-0001",
2521
"catalog.product.parameter.id": "PAR-7255-3950-0016",
2622
"catalog.product.parameter_group.id": "PGR-7255-3950-0001",
2723
"catalog.product.template.id": "TPL-7255-3950-0001",
2824
"catalog.product.terms.id": "TCS-7255-3950-0001",
2925
"catalog.product.terms.variant.id": "TCV-7255-3950-0001-0001",
3026
"catalog.unit.id": "UNT-1229",
27+
"commerce.agreement.id": "AGR-9850-2169-6098",
28+
"commerce.authorization.id": "AUT-0031-2873",
29+
"commerce.client.id": "ACC-1086-6867",
30+
"commerce.product.id": "PRD-1767-7355",
31+
"commerce.product.item.id": "ITM-1767-7355-0001",
32+
"commerce.product.listing.id": "LST-5489-0806",
33+
"commerce.product.template.id": "TPL-1767-7355-0003",
3134
"notifications.message.id": "MSG-0000-6215-1019-0139"
3235
}

tests/e2e/catalog/conftest.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,13 @@ def item_group_id(e2e_config):
1414
@pytest.fixture
1515
def unit_id(e2e_config):
1616
return e2e_config.get("catalog.unit.id")
17+
18+
19+
@pytest.fixture
20+
def authorization_id(e2e_config):
21+
return e2e_config["catalog.authorization.id"]
22+
23+
24+
@pytest.fixture
25+
def price_list_id(e2e_config):
26+
return e2e_config["catalog.price_list.id"]
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import pytest
2+
3+
4+
@pytest.fixture
5+
def listings_service(mpt_ops):
6+
return mpt_ops.catalog.listings
7+
8+
9+
@pytest.fixture
10+
def listing_id(e2e_config):
11+
return e2e_config["catalog.listing.id"]
12+
13+
14+
@pytest.fixture
15+
def listing_data(authorization_id, product_id, account_id, seller_id, price_list_id):
16+
return {
17+
"name": "e2e - please delete",
18+
"authorization": {
19+
"id": authorization_id,
20+
},
21+
"product": {
22+
"id": product_id,
23+
},
24+
"vendor": {
25+
"id": account_id, # "ACC-9042-0088",
26+
},
27+
"seller": {
28+
"id": seller_id,
29+
},
30+
"priceList": {"id": price_list_id},
31+
"primary": False,
32+
"notes": "",
33+
"eligibility": {"client": True, "partner": False},
34+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import pytest
2+
3+
from mpt_api_client.exceptions import MPTAPIError
4+
from tests.e2e.helper import (
5+
assert_async_service_filter_with_iterate,
6+
assert_async_update_resource,
7+
async_create_fixture_resource_and_delete,
8+
)
9+
10+
pytestmark = [pytest.mark.flaky]
11+
12+
13+
@pytest.fixture
14+
def async_listings_service(async_mpt_ops):
15+
return async_mpt_ops.catalog.listings
16+
17+
18+
@pytest.fixture
19+
async def async_created_listing(async_listings_service, listing_data):
20+
async with async_create_fixture_resource_and_delete(
21+
async_listings_service, listing_data
22+
) as listing:
23+
yield listing
24+
25+
26+
def test_create_listing(async_created_listing, product_id): # noqa: AAA01
27+
assert async_created_listing.product.id == product_id
28+
29+
30+
async def test_get_listing(async_listings_service, listing_id):
31+
result = await async_listings_service.get(listing_id)
32+
33+
assert result.id == listing_id
34+
35+
36+
async def test_filter_listings(async_listings_service, listing_id):
37+
await assert_async_service_filter_with_iterate(async_listings_service, listing_id, None) # act
38+
39+
40+
async def test_get_listing_not_found(async_listings_service):
41+
bogus_id = "LST-0000-NOTFOUND"
42+
43+
with pytest.raises(MPTAPIError, match=r"404 Not Found"):
44+
await async_listings_service.get(bogus_id)
45+
46+
47+
async def test_update_listing(async_listings_service, async_created_listing, short_uuid):
48+
await assert_async_update_resource(
49+
async_listings_service, async_created_listing.id, "notes", f"delete-me {short_uuid}"
50+
) # act
51+
52+
53+
async def test_delete_listing(async_listings_service, async_created_listing):
54+
await async_listings_service.delete(async_created_listing.id) # act
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import pytest
2+
3+
from mpt_api_client.exceptions import MPTAPIError
4+
from tests.e2e.helper import (
5+
assert_service_filter_with_iterate,
6+
assert_update_resource,
7+
create_fixture_resource_and_delete,
8+
)
9+
10+
pytestmark = [pytest.mark.flaky]
11+
12+
13+
@pytest.fixture
14+
def listings_service(mpt_ops):
15+
return mpt_ops.catalog.listings
16+
17+
18+
@pytest.fixture
19+
def created_listing(listings_service, listing_data):
20+
with create_fixture_resource_and_delete(listings_service, listing_data) as listing:
21+
yield listing
22+
23+
24+
def test_create_listing(created_listing, product_id): # noqa: AAA01
25+
assert created_listing.product.id == product_id
26+
27+
28+
def test_get_listing_by_id(listings_service, listing_id):
29+
result = listings_service.get(listing_id)
30+
31+
assert result.id == listing_id
32+
33+
34+
def test_filter_listings(listings_service, listing_id):
35+
assert_service_filter_with_iterate(
36+
listings_service,
37+
listing_id,
38+
None,
39+
) # act
40+
41+
42+
def test_get_listing_not_found(listings_service):
43+
bogus_id = "LST-0000-NOTFOUND"
44+
45+
with pytest.raises(MPTAPIError, match=r"404 Not Found"):
46+
listings_service.get(bogus_id)
47+
48+
49+
def test_update_listing(listings_service, created_listing, short_uuid):
50+
assert_update_resource(
51+
listings_service, created_listing.id, "notes", f"delete-me {short_uuid}"
52+
) # act
53+
54+
55+
def test_delete_listing(listings_service, created_listing):
56+
listings_service.delete(created_listing.id) # act

tests/e2e/conftest.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,8 @@ def licensee_id(e2e_config):
146146
@pytest.fixture
147147
def authorization_id(e2e_config):
148148
return e2e_config["commerce.authorization.id"]
149+
150+
151+
@pytest.fixture
152+
def price_list_id(e2e_config):
153+
return e2e_config["catalog.price_list.id"]

0 commit comments

Comments
 (0)