Skip to content

Commit 9879263

Browse files
authored
[MPT-14926] Added e2e tests for billing overrides (#190)
Added e2e tests for billing overrides https://softwareone.atlassian.net/browse/MPT-14926 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> Closes [MPT-14926](https://softwareone.atlassian.net/browse/MPT-14926) - Add e2e test config entry `billing.override.id = "BOV-7202-7714"` in `e2e_config.test.json` - Add pytest fixtures in `tests/e2e/billing/override/conftest.py`: - `billing_override_id(e2e_config)` (reads `billing.override.id`) - `invalid_billing_override_id()` returns `"BOV-0000-0000"` - Add async e2e tests `tests/e2e/billing/override/test_async_override.py`: - test get by id, list (fetch_page), not-found (404) and filter (id + externalId) with select & iteration - marked flaky - Add sync e2e tests `tests/e2e/billing/override/test_sync_override.py`: - test get by id, list (fetch_page), not-found (404) and filter (id + externalId) with select & iteration - marked flaky - Tests cover pagination, filtering by id and externalId, field selection, iteration, and error handling <!-- end of auto-generated comment: release notes by coderabbit.ai --> [MPT-14926]: https://softwareone.atlassian.net/browse/MPT-14926?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
2 parents 9db273b + 1ec8ae9 commit 9879263

File tree

4 files changed

+88
-0
lines changed

4 files changed

+88
-0
lines changed

e2e_config.test.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"billing.ledger.attachment.id": "LEA-4971-4321",
2222
"billing.ledger.charge.id": "CHG-2589-1434-0000-0000-0200",
2323
"billing.ledger.id": "BLE-2589-1434-7310-3075",
24+
"billing.override.id": "BOV-7202-7714",
2425
"billing.statement.charge.id": "CHG-2589-1434-0000-0000-0200",
2526
"billing.statement.id": "SOM-7311-9982-9805-9250",
2627
"catalog.authorization.id": "AUT-9288-6146",
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import pytest
2+
3+
4+
@pytest.fixture
5+
def billing_override_id(e2e_config):
6+
return e2e_config["billing.override.id"]
7+
8+
9+
@pytest.fixture
10+
def invalid_billing_override_id():
11+
return "BOV-0000-0000"
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import pytest
2+
3+
from mpt_api_client.exceptions import MPTAPIError
4+
from mpt_api_client.rql.query_builder import RQLQuery
5+
6+
pytestmark = [pytest.mark.flaky]
7+
8+
9+
async def test_get_billing_override_by_id(async_mpt_ops, billing_override_id):
10+
result = await async_mpt_ops.billing.manual_overrides.get(billing_override_id)
11+
12+
assert result is not None
13+
14+
15+
async def test_list_billing_overrides(async_mpt_ops):
16+
limit = 10
17+
18+
result = await async_mpt_ops.billing.manual_overrides.fetch_page(limit=limit)
19+
20+
assert len(result) > 0
21+
22+
23+
async def test_get_billing_override_by_id_not_found(async_mpt_ops, invalid_billing_override_id):
24+
with pytest.raises(MPTAPIError, match=r"404 Not Found"):
25+
await async_mpt_ops.billing.manual_overrides.get(invalid_billing_override_id)
26+
27+
28+
async def test_filter_billing_overrides(async_mpt_ops, billing_override_id):
29+
select_fields = ["-client"]
30+
filtered_billing_overrides = (
31+
async_mpt_ops.billing.manual_overrides.filter(RQLQuery(id=billing_override_id))
32+
.filter(RQLQuery(externalId="e2e-seeded-override"))
33+
.select(*select_fields)
34+
)
35+
36+
result = [override async for override in filtered_billing_overrides.iterate()]
37+
38+
assert len(result) == 1
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import pytest
2+
3+
from mpt_api_client.exceptions import MPTAPIError
4+
from mpt_api_client.rql.query_builder import RQLQuery
5+
6+
pytestmark = [pytest.mark.flaky]
7+
8+
9+
def test_get_billing_override_by_id(mpt_ops, billing_override_id):
10+
result = mpt_ops.billing.manual_overrides.get(billing_override_id)
11+
12+
assert result is not None
13+
14+
15+
def test_list_billing_overrides(mpt_ops):
16+
limit = 10
17+
18+
result = mpt_ops.billing.manual_overrides.fetch_page(limit=limit)
19+
20+
assert len(result) > 0
21+
22+
23+
def test_get_billing_override_by_id_not_found(mpt_ops, invalid_billing_override_id):
24+
with pytest.raises(MPTAPIError, match=r"404 Not Found"):
25+
mpt_ops.billing.manual_overrides.get(invalid_billing_override_id)
26+
27+
28+
def test_filter_billing_overrides(mpt_ops, billing_override_id):
29+
select_fields = ["-client"]
30+
filtered_billing_overrides = (
31+
mpt_ops.billing.manual_overrides.filter(RQLQuery(id=billing_override_id))
32+
.filter(RQLQuery(externalId="e2e-seeded-override"))
33+
.select(*select_fields)
34+
)
35+
36+
result = list(filtered_billing_overrides.iterate())
37+
38+
assert len(result) == 1

0 commit comments

Comments
 (0)