Skip to content

Commit 191e43e

Browse files
committed
MPT-14938 Add audit records e2e
1 parent f47c482 commit 191e43e

File tree

4 files changed

+115
-0
lines changed

4 files changed

+115
-0
lines changed

e2e_config.test.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"accounts.seller.id": "SEL-7310-3075",
1212
"accounts.user.id": "USR-9673-3314",
1313
"accounts.user_group.id": "UGR-6822-0561",
14+
"audit.record.id": "AUD-3748-4760-1006-3938",
1415
"billing.journal.id": "BJO-6562-0928",
1516
"catalog.authorization.id": "AUT-9288-6146",
1617
"catalog.listing.id": "LST-5489-0806",
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
from typing import Any
2+
3+
import pytest
4+
5+
6+
@pytest.fixture
7+
def record_data(account_id: str) -> dict[str, Any]:
8+
return {
9+
"event": "extensions.e2e.test",
10+
"object": {"id": account_id, "name": "e2e test account"},
11+
"details": "e2e test details",
12+
"summary": "e2e test summary",
13+
"actor": {
14+
"type": "system",
15+
"id": "system",
16+
},
17+
"payload": {
18+
"key": "value",
19+
},
20+
}
21+
22+
23+
@pytest.fixture
24+
def audit_record_id(e2e_config):
25+
return e2e_config["audit.record.id"]
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
from typing import Any
2+
3+
import pytest
4+
5+
from mpt_api_client import AsyncMPTClient
6+
from mpt_api_client.exceptions import MPTAPIError
7+
from mpt_api_client.resources.audit.records import Record
8+
from mpt_api_client.rql.query_builder import RQLQuery
9+
10+
pytestmark = [pytest.mark.flaky]
11+
12+
13+
@pytest.fixture
14+
async def created_record(async_mpt_vendor: AsyncMPTClient, record_data: dict[str, Any]) -> Record:
15+
service = async_mpt_vendor.audit.records
16+
return await service.create(record_data)
17+
18+
19+
def test_create_record(created_record: Record, record_data: dict[str, Any]) -> None: # noqa: AAA01
20+
assert created_record.event == record_data["event"]
21+
assert created_record.object.id == record_data["object"]["id"]
22+
23+
24+
async def test_get_record(async_mpt_vendor: AsyncMPTClient, audit_record_id: str) -> None:
25+
service = async_mpt_vendor.audit.records
26+
result = await service.get(audit_record_id)
27+
28+
assert result.id == audit_record_id
29+
30+
31+
async def test_iterate_records(async_mpt_vendor: AsyncMPTClient, product_id: str) -> None:
32+
service = async_mpt_vendor.audit.records.filter(RQLQuery(object__id=product_id))
33+
records = [record async for record in service.iterate()]
34+
35+
result = records[0]
36+
37+
assert result.object.id == product_id
38+
39+
40+
async def test_get_record_not_found(async_mpt_vendor: AsyncMPTClient) -> None:
41+
service = async_mpt_vendor.audit.records
42+
43+
with pytest.raises(MPTAPIError):
44+
await service.get("REC-000-000-000")
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
from typing import Any
2+
3+
import pytest
4+
5+
from mpt_api_client import MPTClient
6+
from mpt_api_client.exceptions import MPTAPIError
7+
from mpt_api_client.resources.audit.records import Record
8+
from mpt_api_client.rql.query_builder import RQLQuery
9+
10+
pytestmark = [pytest.mark.flaky]
11+
12+
13+
@pytest.fixture
14+
def created_record(mpt_vendor: MPTClient, record_data: dict[str, Any]) -> Record:
15+
service = mpt_vendor.audit.records
16+
return service.create(record_data)
17+
18+
19+
def test_create_record(created_record: Record, record_data: dict[str, Any]) -> None: # noqa: AAA01
20+
assert created_record.event == record_data["event"]
21+
assert created_record.object.id == record_data["object"]["id"]
22+
23+
24+
def test_get_record(mpt_vendor: MPTClient, audit_record_id) -> None:
25+
service = mpt_vendor.audit.records
26+
27+
result = service.get(audit_record_id)
28+
29+
assert result.id == audit_record_id
30+
31+
32+
def test_iterate_records(mpt_vendor: MPTClient, product_id) -> None:
33+
service = mpt_vendor.audit.records.filter(RQLQuery(object__id=product_id))
34+
records = list(service.iterate())
35+
36+
result = records[0]
37+
38+
assert result.object.id == product_id
39+
40+
41+
def test_get_record_not_found(mpt_vendor: MPTClient) -> None:
42+
service = mpt_vendor.audit.records
43+
44+
with pytest.raises(MPTAPIError):
45+
service.get("REC-000-000-000")

0 commit comments

Comments
 (0)