Skip to content

Commit af9b083

Browse files
committed
MPT-14897 E2E Catalog listings
1 parent 7d33e5d commit af9b083

6 files changed

Lines changed: 151 additions & 8 deletions

File tree

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: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,8 @@ 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"]
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):
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": "PRC-7255-3950-0245"},
31+
"primary": False,
32+
"notes": "",
33+
"eligibility": {"client": True, "partner": False},
34+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import pytest
2+
from e2e.helper import assert_async_update_resource, async_create_fixture_resource_and_delete
3+
4+
from mpt_api_client.exceptions import MPTAPIError
5+
from tests.e2e.helper import assert_async_service_filter_with_iterate
6+
7+
pytestmark = [pytest.mark.flaky]
8+
9+
10+
@pytest.fixture
11+
def async_listings_service(async_mpt_ops):
12+
return async_mpt_ops.catalog.listings
13+
14+
15+
@pytest.fixture
16+
async def async_created_listing(async_listings_service, listing_data):
17+
async with async_create_fixture_resource_and_delete(
18+
async_listings_service, listing_data
19+
) as listing:
20+
yield listing
21+
22+
23+
def test_create_listing(async_created_listing, product_id): # noqa: AAA01
24+
assert async_created_listing.product.id == product_id
25+
26+
27+
async def test_get_listing(async_listings_service, listing_id):
28+
result = await async_listings_service.get(listing_id)
29+
30+
assert result.id == listing_id
31+
32+
33+
async def test_filter_listings(async_listings_service, listing_id):
34+
await assert_async_service_filter_with_iterate(async_listings_service, listing_id, None) # act
35+
36+
37+
async def test_get_listing_not_found(async_listings_service):
38+
bogus_id = "LST-0000-NOTFOUND"
39+
40+
with pytest.raises(MPTAPIError, match=r"404 Not Found"):
41+
await async_listings_service.get(bogus_id)
42+
43+
44+
async def test_update_listing(async_listings_service, async_created_listing, short_uuid):
45+
await assert_async_update_resource(
46+
async_listings_service, async_created_listing.id, "notes", f"delete-me {short_uuid}"
47+
) # act
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import pytest
2+
from e2e.helper import assert_update_resource, create_fixture_resource_and_delete
3+
4+
from mpt_api_client.exceptions import MPTAPIError
5+
from tests.e2e.helper import assert_service_filter_with_iterate
6+
7+
pytestmark = [pytest.mark.flaky]
8+
9+
10+
@pytest.fixture
11+
def listings_service(mpt_ops):
12+
return mpt_ops.catalog.listings
13+
14+
15+
@pytest.fixture
16+
def created_listing(listings_service, listing_data):
17+
with create_fixture_resource_and_delete(listings_service, listing_data) as listing:
18+
yield listing
19+
20+
21+
def test_create_listing(created_listing, product_id): # noqa: AAA01
22+
assert created_listing.product.id == product_id
23+
24+
25+
def test_get_listing_by_id(listings_service, listing_id):
26+
result = listings_service.get(listing_id)
27+
28+
assert result.id == listing_id
29+
30+
31+
def test_filter_listings(listings_service, listing_id):
32+
assert_service_filter_with_iterate(
33+
listings_service,
34+
listing_id,
35+
None,
36+
) # act
37+
38+
39+
def test_get_listing_not_found(listings_service):
40+
bogus_id = "LST-0000-NOTFOUND"
41+
42+
with pytest.raises(MPTAPIError, match=r"404 Not Found"):
43+
listings_service.get(bogus_id)
44+
45+
46+
def test_update_listing(listings_service, created_listing, short_uuid):
47+
assert_update_resource(
48+
listings_service, created_listing.id, "notes", f"delete-me {short_uuid}"
49+
) # act

tests/e2e/conftest.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,3 +141,8 @@ def licensee_id(e2e_config):
141141
@pytest.fixture
142142
def authorization_id(e2e_config):
143143
return e2e_config["commerce.authorization.id"]
144+
145+
146+
@pytest.fixture
147+
def price_list_id(e2e_config):
148+
return e2e_config["catalog.price_list.id"]

0 commit comments

Comments
 (0)