diff --git a/e2e_config.test.json b/e2e_config.test.json index c32853a5..08f734e1 100644 --- a/e2e_config.test.json +++ b/e2e_config.test.json @@ -1,4 +1,5 @@ { "catalog.product.id": "PRD-7255-3950", - "accounts.seller.id": "SEL-7310-3075" + "accounts.seller.id": "SEL-7310-3075", + "catalog.product.parameter_group.id": "PGR-7255-3950-0001" } diff --git a/seed/catalog/product_parameters_group.py b/seed/catalog/product_parameters_group.py index d0191692..9b6bba75 100644 --- a/seed/catalog/product_parameters_group.py +++ b/seed/catalog/product_parameters_group.py @@ -10,7 +10,7 @@ logger = logging.getLogger(__name__) -namespace = "catalog.parameter_group" +namespace = "catalog.product.parameter_group" @inject @@ -39,7 +39,7 @@ async def get_parameter_group( def build_parameter_group(context: Context = DEFAULT_CONTEXT) -> dict[str, Any]: """Build parameter group data dictionary.""" return { - "name": "Parameter group", + "name": "e2e - seed", "label": "Parameter group label", "displayOrder": 100, } diff --git a/tests/e2e/accounts/test_async_sellers.py b/tests/e2e/accounts/test_async_sellers.py index 646d81df..5d9e795f 100644 --- a/tests/e2e/accounts/test_async_sellers.py +++ b/tests/e2e/accounts/test_async_sellers.py @@ -26,7 +26,7 @@ async def _async_created_seller( try: await async_mpt_ops.accounts.sellers.delete(ret_seller.id) except MPTAPIError: - logger.exception("TEARDOWN - Unable to delete seller %s", ret_seller.id) + print(f"TEARDOWN - Unable to delete seller {ret_seller.id}") # noqa: WPS421 async def test_get_seller_by_id(async_mpt_ops, seller_id): diff --git a/tests/e2e/accounts/test_sync_sellers.py b/tests/e2e/accounts/test_sync_sellers.py index 8314bfd8..5a07346b 100644 --- a/tests/e2e/accounts/test_sync_sellers.py +++ b/tests/e2e/accounts/test_sync_sellers.py @@ -25,7 +25,7 @@ def _created_seller( try: mpt_ops.accounts.sellers.delete(ret_seller.id) except MPTAPIError: - logger.exception("TEARDOWN - Unable to delete seller %s", ret_seller.id) + print(f"TEARDOWN - Unable to delete seller {ret_seller.id}") # noqa: WPS421 def test_get_seller_by_id(mpt_ops, seller_id): diff --git a/tests/e2e/catalog/product/parameter_groups/conftest.py b/tests/e2e/catalog/product/parameter_groups/conftest.py new file mode 100644 index 00000000..138dee6c --- /dev/null +++ b/tests/e2e/catalog/product/parameter_groups/conftest.py @@ -0,0 +1,15 @@ +import pytest + + +@pytest.fixture +def parameter_group_id(e2e_config): + return e2e_config["catalog.product.parameter_group.id"] + + +@pytest.fixture +def parameter_group_data(): + return { + "name": "e2e - please delete", + "label": "e2e - please delete", + "displayOrder": 100, + } diff --git a/tests/e2e/catalog/product/parameter_groups/test_async_parameter_groups.py b/tests/e2e/catalog/product/parameter_groups/test_async_parameter_groups.py new file mode 100644 index 00000000..94c485bb --- /dev/null +++ b/tests/e2e/catalog/product/parameter_groups/test_async_parameter_groups.py @@ -0,0 +1,51 @@ +import pytest + +from mpt_api_client.exceptions import MPTAPIError + + +@pytest.fixture +async def async_created_parameter_group(logger, async_mpt_vendor, product_id, parameter_group_data): + service = async_mpt_vendor.catalog.products.parameter_groups(product_id) + group = await service.create(parameter_group_data) + yield group + try: + await service.delete(group.id) + except MPTAPIError as error: + print(f"TEARDOWN - Unable to delete parameter group {group.id}: {error.title}") # noqa: WPS421 + + +@pytest.mark.flaky +def test_create_parameter_group(async_created_parameter_group): + assert async_created_parameter_group.name == "e2e - please delete" + + +@pytest.mark.flaky +async def test_update_parameter_group(async_mpt_vendor, product_id, async_created_parameter_group): + service = async_mpt_vendor.catalog.products.parameter_groups(product_id) + update_data = {"name": "e2e - delete me (updated)"} + group = await service.update(async_created_parameter_group.id, update_data) + assert group.name == "e2e - delete me (updated)" + + +@pytest.mark.flaky +async def test_get_parameter_group(async_mpt_vendor, product_id, parameter_group_id): + service = async_mpt_vendor.catalog.products.parameter_groups(product_id) + group = await service.get(parameter_group_id) + assert group.id == parameter_group_id + + +@pytest.mark.flaky +async def test_iterate_parameter_groups( + async_mpt_vendor, product_id, async_created_parameter_group +): + service = async_mpt_vendor.catalog.products.parameter_groups(product_id) + groups = [group async for group in service.iterate()] + assert any(group.id == async_created_parameter_group.id for group in groups) + + +@pytest.mark.flaky +async def test_delete_parameter_group(async_mpt_vendor, product_id, async_created_parameter_group): + service = async_mpt_vendor.catalog.products.parameter_groups(product_id) + await service.delete(async_created_parameter_group.id) + with pytest.raises(MPTAPIError): + await service.get(async_created_parameter_group.id) diff --git a/tests/e2e/catalog/product/parameter_groups/test_sync_parameter_groups.py b/tests/e2e/catalog/product/parameter_groups/test_sync_parameter_groups.py new file mode 100644 index 00000000..0cd68f64 --- /dev/null +++ b/tests/e2e/catalog/product/parameter_groups/test_sync_parameter_groups.py @@ -0,0 +1,49 @@ +import pytest + +from mpt_api_client.exceptions import MPTAPIError + + +@pytest.fixture +def created_parameter_group(logger, mpt_vendor, product_id, parameter_group_data): + service = mpt_vendor.catalog.products.parameter_groups(product_id) + group = service.create(parameter_group_data) + yield group + try: + service.delete(group.id) + except MPTAPIError as error: + print(f"TEARDOWN - Unable to delete parameter group {group.id}: {error.title}") # noqa: WPS421 + + +@pytest.mark.flaky +def test_create_parameter_group(created_parameter_group): + assert created_parameter_group.name == "e2e - please delete" + + +@pytest.mark.flaky +def test_update_parameter_group(mpt_vendor, product_id, created_parameter_group): + service = mpt_vendor.catalog.products.parameter_groups(product_id) + update_data = {"name": "please delete me"} + group = service.update(created_parameter_group.id, update_data) + assert group.name == "please delete me" + + +@pytest.mark.flaky +def test_get_parameter_group_get(mpt_vendor, product_id, parameter_group_id): + service = mpt_vendor.catalog.products.parameter_groups(product_id) + group = service.get(parameter_group_id) + assert group.id == parameter_group_id + + +@pytest.mark.flaky +def test_iterate_parameter_groups(mpt_vendor, product_id, created_parameter_group): + service = mpt_vendor.catalog.products.parameter_groups(product_id) + groups = list(service.iterate()) + assert any(group.id == created_parameter_group.id for group in groups) + + +@pytest.mark.flaky +def test_delete_parameter_group(mpt_vendor, product_id, created_parameter_group): + service = mpt_vendor.catalog.products.parameter_groups(product_id) + service.delete(created_parameter_group.id) + with pytest.raises(MPTAPIError): + service.get(created_parameter_group.id) diff --git a/tests/e2e/catalog/product/test_async_product.py b/tests/e2e/catalog/product/test_async_product.py index ac01bb4c..0a4f226f 100644 --- a/tests/e2e/catalog/product/test_async_product.py +++ b/tests/e2e/catalog/product/test_async_product.py @@ -13,7 +13,7 @@ async def async_created_product(logger, async_mpt_vendor, product_data, product_ try: await async_mpt_vendor.catalog.products.delete(product.id) except MPTAPIError as error: - logger.exception("TEARDOWN - Unable to delete product %s: %s", product.id, error.title) + print(f"TEARDOWN - Unable to delete product {product.id}: {error.title}") # noqa: WPS421 @pytest.mark.flaky diff --git a/tests/e2e/catalog/product/test_sync_product.py b/tests/e2e/catalog/product/test_sync_product.py index f680cec2..d9d0483c 100644 --- a/tests/e2e/catalog/product/test_sync_product.py +++ b/tests/e2e/catalog/product/test_sync_product.py @@ -13,7 +13,7 @@ def created_product(logger, mpt_vendor, product_data, product_icon): try: mpt_vendor.catalog.products.delete(product.id) except MPTAPIError as error: - logger.exception("TEARDOWN - Unable to delete product %s: %s", product.id, error.title) + print(f"TEARDOWN - Unable to delete product {product.id}: {error.title}") # noqa: WPS421 @pytest.mark.flaky diff --git a/tests/seed/catalog/test_product_parameters_group.py b/tests/seed/catalog/test_product_parameters_group.py index 74e6adf6..d6ff6b66 100644 --- a/tests/seed/catalog/test_product_parameters_group.py +++ b/tests/seed/catalog/test_product_parameters_group.py @@ -29,7 +29,7 @@ def parameter_groups_service(): async def test_get_parameter_group( context: Context, vendor_client, parameter_groups_service, parameter_group ) -> None: - context["catalog.parameter_group.id"] = parameter_group.id + context["catalog.product.parameter_group.id"] = parameter_group.id context["catalog.product.id"] = "product-123" parameter_groups_service.get.return_value = parameter_group vendor_client.catalog.products.parameter_groups.return_value = parameter_groups_service @@ -37,8 +37,8 @@ async def test_get_parameter_group( fetched_parameter_group = await get_parameter_group(context=context, mpt_vendor=vendor_client) assert fetched_parameter_group == parameter_group - assert context.get("catalog.parameter_group.id") == parameter_group.id - assert context.get(f"catalog.parameter_group[{parameter_group.id}]") == parameter_group + assert context.get("catalog.product.parameter_group.id") == parameter_group.id + assert context.get(f"catalog.product.parameter_group[{parameter_group.id}]") == parameter_group async def test_get_parameter_group_without_id(context: Context) -> None: @@ -86,8 +86,8 @@ async def test_create_parameter_group_success( created = await create_parameter_group(context=context, mpt_vendor=vendor_client) assert created == parameter_group - assert context.get("catalog.parameter_group.id") == parameter_group.id - assert context.get(f"catalog.parameter_group[{parameter_group.id}]") == parameter_group + assert context.get("catalog.product.parameter_group.id") == parameter_group.id + assert context.get(f"catalog.product.parameter_group[{parameter_group.id}]") == parameter_group async def test_seed_parameter_group() -> None: