Skip to content

Commit 42cc356

Browse files
author
Martin Kudlej
committed
fix assert_resource_params bug
1 parent 233e7f8 commit 42cc356

13 files changed

+64
-72
lines changed

Pipfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ verify_ssl = true
55

66
[dev-packages]
77
pylint = "*"
8-
#pytest = "<8.0.0"
98
pytest = "*"
109
responses = "*"
1110
python-dotenv = "*"

tests/integration/asserts.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,13 @@ def assert_errors_contains(resource: threescale_api.defaults.DefaultClient, fiel
1919

2020

2121
def assert_resource_params(obj: threescale_api.defaults.DefaultResource, params: dict, allowed=None):
22+
if allowed is None:
23+
allowed = params.keys()
2224
for (key, val) in params.items():
23-
if allowed is not None and key in allowed:
24-
assert obj[key] == val, f"Resource value for key \"{key}\" should be correct."
25-
assert obj.entity[key] == val, "Entity value for key \"{key}\" should be correct."
25+
if key in allowed:
26+
assert obj[key] == val, f"Resource hasn't got expected value for a \"{key}\". {obj[key]} == {val}"
27+
assert obj.entity[key] == val, "Entity hasn't got expected value for key \"{key}\". {obj.entity[key]} == {val}"
28+
2629

2730

2831
def assert_http_ok(response: requests.Response):

tests/integration/conftest.py

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -106,14 +106,14 @@ def access_token(access_token_params, api):
106106
def update_account_params():
107107
suffix = secrets.token_urlsafe(8)
108108
name = f"updated-{suffix}"
109-
return dict(name=name, username=name, org_name=name)
109+
return dict(org_name=name)
110110

111111

112112
@pytest.fixture(scope='module')
113113
def account_params():
114114
suffix = get_suffix()
115115
name = f"test-{suffix}"
116-
return dict(name=name, username=name, org_name=name)
116+
return dict(username=name, org_name=name)
117117

118118

119119
@pytest.fixture(scope='module')
@@ -206,24 +206,22 @@ def metric_params(service):
206206
def backend_metric_params(backend):
207207
suffix = get_suffix()
208208
friendly_name = f'test-metric-{suffix}'
209-
system_name = f'{friendly_name}'.replace('-', '_')
210209
return dict(backend_id=backend['id'], friendly_name=friendly_name,
211-
system_name=system_name, unit='count')
210+
unit='count')
212211

213212
@pytest.fixture
214213
def updated_metric_params(metric_params):
214+
params = metric_params.copy()
215215
suffix = get_suffix()
216216
friendly_name = f'test-updated-metric-{suffix}'
217-
metric_params['friendly_name'] = f'/anything/{friendly_name}'
218-
metric_params['system_name'] = friendly_name.replace('-', '_')
219-
return metric_params
217+
params['friendly_name'] = f'/anything/{friendly_name}'
218+
return params
220219

221220
@pytest.fixture
222221
def backend_updated_metric_params(backend_metric_params):
223222
suffix = get_suffix()
224223
friendly_name = f'test-updated-metric-{suffix}'
225224
backend_metric_params['friendly_name'] = f'/anything/{friendly_name}'
226-
backend_metric_params['system_name'] = friendly_name.replace('-', '_')
227225
return backend_metric_params
228226

229227

@@ -249,17 +247,14 @@ def backend_hits_metric(backend):
249247
def method_params(service):
250248
suffix = get_suffix()
251249
friendly_name = f'test-method-{suffix}'
252-
system_name = f'{friendly_name}'.replace('-', '_')
253-
return dict(friendly_name=friendly_name, system_name=system_name,
254-
unit='hits')
250+
return dict(friendly_name=friendly_name)
255251

256252

257253
@pytest.fixture
258254
def updated_method_params(method_params):
259255
suffix = get_suffix()
260256
friendly_name = f'test-updated-method-{suffix}'
261257
method_params['friendly_name'] = friendly_name
262-
method_params['system_name'] = f'{friendly_name}'.replace('-', '_')
263258
return method_params
264259

265260

@@ -404,11 +399,11 @@ def backend(backend_params, api) -> Backend:
404399
cleanup(backend)
405400

406401
@pytest.fixture(scope='module')
407-
def backend_metric(backend, metric_params, proxy) -> Metric:
402+
def backend_metric(backend, backend_metric_params, proxy) -> Metric:
408403
"""
409404
Fixture for getting backend metric.
410405
"""
411-
resource = backend.metrics.create(params=metric_params)
406+
resource = backend.metrics.create(params=backend_metric_params)
412407
yield resource
413408
for map_rule in backend.mapping_rules.select_by(metric_id=resource['id']):
414409
map_rule.delete()
@@ -495,7 +490,7 @@ def provider_account_params():
495490
name = f"test-{suffix}"
496491
return dict(username=name,
497492
email=f'{name}@example.com',
498-
assword='123456')
493+
password='123456')
499494

500495

501496
@pytest.fixture(scope='module')
@@ -514,7 +509,7 @@ def webhook(api):
514509
def account_plans_update_params():
515510
suffix = secrets.token_urlsafe(8)
516511
name = f"updated-{suffix}"
517-
return dict(name=name, description=name)
512+
return dict(name=name)
518513

519514

520515
@pytest.fixture(scope='module')
@@ -559,7 +554,7 @@ def fields_definitions_params():
559554
return dict(name=f"name-{get_suffix()}",
560555
label=f"label-{get_suffix()}",
561556
target="Account",
562-
required="false")
557+
required=False)
563558

564559

565560
@pytest.fixture(scope="module")
@@ -637,10 +632,11 @@ def cms_layout(api, cms_layout_params):
637632
@pytest.fixture(scope="module")
638633
def cms_page_params(cms_section, cms_layout):
639634
"""CMS page fixture params"""
635+
# section_name or section_id can be used to identify section
636+
# layout_name or layout_id can be used to identify section
640637
return {"system_name": f"sname-{get_suffix()}", "draft": f"draft-{get_suffix()}",
641638
"title": f"title-{get_suffix()}", "path": f"/path-{get_suffix()}",
642-
"section_name": f"section-{get_suffix()}", "section_id": cms_section['id'],
643-
"layout_name": f"layout-{get_suffix()}", "layout_id": cms_layout['id'],
639+
"section_id": cms_section['id'], "layout_id": cms_layout['id'],
644640
"liquid_enabled": True, "handler": "markdown", "content_type": "text/html"}
645641

646642

tests/integration/test_integration_account_plans.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ def test_account_plan_can_be_created(api, account_plan, account_plans_params):
1010
asserts.assert_resource(account_plan)
1111
asserts.assert_resource_params(account_plan, account_plans_params)
1212

13+
def test_account_plan_can_be_read(api, account_plan, account_plans_params):
14+
read = api.account_plans.read(account_plan.entity_id)
15+
asserts.assert_resource(read)
16+
asserts.assert_resource_params(read, account_plans_params)
17+
1318

1419
def test_account_plan_update(account_plan, account_plans_update_params):
1520
updated_account_plan = account_plan.update(params=account_plans_update_params)
1621
asserts.assert_resource(updated_account_plan)
1722
asserts.assert_resource_params(updated_account_plan, account_plans_update_params)
1823

19-
20-
def test_account_plan_can_be_read(api, account_plan, account_plans_params):
21-
read = api.account_plans.read(account_plan.entity_id)
22-
asserts.assert_resource(read)
23-
asserts.assert_resource_params(read, account_plans_params)

tests/integration/test_integration_accounts.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,26 @@ def test_accounts_list(api, account):
88

99
def test_account_can_be_created(api, account, account_params):
1010
asserts.assert_resource(account)
11-
asserts.assert_resource_params(account, account_params)
12-
13-
14-
def test_account_update(api,account,update_account_params):
15-
updated_account = account.update(params=update_account_params)
16-
asserts.assert_resource(updated_account)
17-
asserts.assert_resource_params(updated_account,update_account_params)
11+
asserts.assert_resource_params(account, account_params, ['org_name'])
1812

1913

2014
def test_account_can_be_read(api, account, account_params):
2115
read = api.accounts.read(account.entity_id)
2216
asserts.assert_resource(read)
23-
asserts.assert_resource_params(read, account_params)
17+
asserts.assert_resource_params(read, account_params, ['org_name'])
2418

2519

2620
def test_account_can_be_read_by_name(api, account, account_params):
2721
account_name = account['org_name']
2822
read = api.accounts[account_name]
2923
asserts.assert_resource(read)
30-
asserts.assert_resource_params(read, account_params)
24+
asserts.assert_resource_params(read, account_params, ['org_name'])
25+
26+
27+
def test_account_update(api,account, update_account_params):
28+
updated_account = account.update(params=update_account_params)
29+
asserts.assert_resource(updated_account)
30+
asserts.assert_resource_params(updated_account, update_account_params)
3131

3232

3333
def test_users_list(api, account):

tests/integration/test_integration_application.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def test_application_update(application, update_application_params):
3232

3333
def test_application_key_can_be_created(app_key, app_key_params):
3434
asserts.assert_resource(app_key)
35-
asserts.assert_resource_params(app_key, app_key_params)
35+
assert app_key["value"] == app_key_params["key"]
3636

3737

3838
def test_application_key_list(application, app_key):

tests/integration/test_integration_application_plan.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
@pytest.fixture(scope='module')
88
def update_params():
99
suffix = secrets.token_urlsafe(8)
10-
return dict(name=f"updated-{suffix}", cost_per_month='12.0', setup_fee='50.0')
10+
return dict(name=f"updated-{suffix}", cost_per_month=12.0, setup_fee=50.0)
1111

1212

1313
def test_application_plan_can_be_created(api, application_plan_params, application_plan):

tests/integration/test_integration_backend_metrics.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,17 @@
88

99
def test_should_create_metric(backend_metric, backend_metric_params):
1010
asserts.assert_resource(backend_metric)
11-
asserts.assert_resource_params(backend_metric, backend_metric_params)
11+
asserts.assert_resource_params(backend_metric, backend_metric_params, [param for param in backend_metric_params.keys() if param != 'backend_id'])
1212

1313
def test_should_fields_be_required(backend):
1414
resource = backend.metrics.create(params={}, throws=False)
1515
asserts.assert_errors_contains(resource, ['friendly_name', 'unit'])
1616

1717

1818
def test_should_system_name_be_invalid(backend, backend_metric_params):
19-
backend_metric_params['system_name'] = 'invalid name whitespaces'
20-
resource = backend.metrics.create(params=backend_metric_params, throws=False)
19+
params = backend_metric_params.copy()
20+
params['system_name'] = 'invalid name whitespaces'
21+
resource = backend.metrics.create(params=params, throws=False)
2122
asserts.assert_errors_contains(resource, ['system_name'])
2223

2324

@@ -29,13 +30,13 @@ def test_should_raise_exception(backend):
2930
def test_should_read_metric(backend_metric, backend_metric_params):
3031
resource = backend_metric.read()
3132
asserts.assert_resource(resource)
32-
asserts.assert_resource_params(resource, backend_metric_params)
33+
asserts.assert_resource_params(resource, backend_metric_params, [param for param in backend_metric_params.keys() if param != 'backend_id'])
3334

3435

3536
def test_should_update_metric(backend_metric, backend_updated_metric_params):
3637
resource = backend_metric.update(params=backend_updated_metric_params)
3738
asserts.assert_resource(resource)
38-
asserts.assert_resource_params(resource, backend_updated_metric_params)
39+
asserts.assert_resource_params(resource, backend_updated_metric_params, [param for param in backend_updated_metric_params.keys() if param != 'backend_id'])
3940

4041

4142
def test_should_delete_metric(backend, backend_updated_metric_params):

tests/integration/test_integration_backend_usages.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
def test_backend_usage_can_be_created(backend_usage, backend_usage_params):
66
asserts.assert_resource(backend_usage)
7-
asserts.assert_resource_params(backend_usage, backend_usage_params)
7+
asserts.assert_resource_params(backend_usage, backend_usage_params, [param for param in backend_usage_params.keys() if param != 'backend_api_id'])
88

99

1010
def test_backend_usages_list(api, backend_usage, backend):
@@ -14,4 +14,4 @@ def test_backend_usages_list(api, backend_usage, backend):
1414
def test_backend_usage_update(backend_usage, backend, backend_usage_update_params):
1515
updated_backend_usage = backend_usage.update(backend_usage_update_params)
1616
asserts.assert_resource(updated_backend_usage)
17-
asserts.assert_resource_params(updated_backend_usage, backend_usage_update_params)
17+
asserts.assert_resource_params(updated_backend_usage, backend_usage_update_params, [param for param in backend_usage_update_params.keys() if param != 'backend_api_id'])

tests/integration/test_integration_fields_definitions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def test_fields_definitions_read(api):
2020

2121
def test_fields_definitions_update(api, fields_definition):
2222
update_params = dict(target="Cinstance", label="something_else",
23-
hidden="true", read_only="true", position=1)
23+
hidden=True, read_only=True, position=1)
2424
updated = fields_definition.update(update_params)
2525
assert_resource_params(updated, update_params)
2626

0 commit comments

Comments
 (0)