Skip to content

Commit 23d022d

Browse files
authored
Merge pull request #4 from cloudblue/feaure/increase-code-coverage
Feature/Increase Code Coverage.
2 parents 1b8100d + 0291e15 commit 23d022d

13 files changed

Lines changed: 602 additions & 191 deletions

connect/devops_testing/asserts.py

Lines changed: 23 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
import operator
2+
from typing import Any
23

34
from connect.devops_testing.utils import find_by_id
45

56
__operators = {
67
'==': operator.eq,
78
'!=': operator.ne,
8-
'<': operator.gt,
9-
'<=': operator.ge,
10-
'>': operator.lt,
11-
'>=': operator.le,
129
'in': operator.contains,
1310
}
1411

@@ -17,157 +14,109 @@ def request_status(request: dict, expected: str):
1714
assert request['status'] == expected
1815

1916

20-
def task_response_status(task_response, expected):
17+
def task_response_status(task_response, expected: str):
2118
assert task_response.status == expected
2219

2320

2421
def asset_status(request: dict, expected: str):
2522
assert request['asset']['status'] == expected
2623

2724

28-
def asset_params_value(request: dict, param_id: str, operator: str, expected: str):
25+
def asset_params_value(request: dict, param_id: str, operator: str, expected: Any):
2926
fn = __operators.get(operator)
3027
param = find_by_id(request['asset']['params'], param_id)
3128
assert fn(param['value'], expected)
3229

3330

34-
def asset_params_value_equal(request: dict, param_id: str, expected: str):
31+
def asset_params_value_equal(request: dict, param_id: str, expected: Any):
3532
asset_params_value(request, param_id, '==', expected)
3633

3734

38-
def asset_params_value_not_equal(request: dict, param_id: str, expected: str):
35+
def asset_params_value_not_equal(request: dict, param_id: str, expected: Any):
3936
asset_params_value(request, param_id, '!=', expected)
4037

4138

42-
def asset_params_value_greater(request: dict, param_id: str, expected: str):
39+
def asset_params_value_greater(request: dict, param_id: str, expected: Any):
4340
asset_params_value(request, param_id, '<', expected)
4441

4542

46-
def asset_params_value_greater_or_equal(request: dict, param_id: str, expected: str):
43+
def asset_params_value_greater_or_equal(request: dict, param_id: str, expected: Any):
4744
asset_params_value(request, param_id, '<=', expected)
4845

4946

50-
def asset_params_value_lesser(request: dict, param_id: str, expected: str):
47+
def asset_params_value_lesser(request: dict, param_id: str, expected: Any):
5148
asset_params_value(request, param_id, '>', expected)
5249

5350

54-
def asset_params_value_lesser_or_equal(request: dict, param_id: str, expected: str):
51+
def asset_params_value_lesser_or_equal(request: dict, param_id: str, expected: Any):
5552
asset_params_value(request, param_id, '>=', expected)
5653

5754

58-
def asset_params_value_contains(request: dict, param_id: str, expected):
55+
def asset_params_value_contains(request: dict, param_id: str, expected: Any):
5956
fn = __operators.get('in')
6057
param = find_by_id(request['asset']['params'], param_id)
6158
assert fn(expected, param['value'])
6259

6360

64-
def asset_params_value_error(request: dict, param_id: str, operator: str, expected: str):
61+
def asset_params_value_error(request: dict, param_id: str, operator: str, expected: Any):
6562
fn = __operators.get(operator)
6663
param = find_by_id(request['asset']['params'], param_id)
6764
assert fn(param['value_error'], expected)
6865

6966

70-
def asset_params_value_equal_error(request: dict, param_id: str, expected: str):
67+
def asset_params_value_equal_error(request: dict, param_id: str, expected: Any):
7168
asset_params_value_error(request, param_id, '==', expected)
7269

7370

74-
def asset_params_value_not_equal_error(request: dict, param_id: str, expected: str):
71+
def asset_params_value_not_equal_error(request: dict, param_id: str, expected: Any):
7572
asset_params_value_error(request, param_id, '!=', expected)
7673

7774

78-
def asset_params_value_greater_error(request: dict, param_id: str, expected: str):
79-
asset_params_value_error(request, param_id, '<', expected)
80-
81-
82-
def asset_params_value_greater_or_equal_error(request: dict, param_id: str, expected: str):
83-
asset_params_value_error(request, param_id, '<=', expected)
84-
85-
86-
def asset_params_value_lesser_error(request: dict, param_id: str, expected: str):
87-
asset_params_value_error(request, param_id, '>', expected)
88-
89-
90-
def asset_params_value_lesser_or_equal_error(request: dict, param_id: str, expected: str):
91-
asset_params_value_error(request, param_id, '>=', expected)
92-
93-
94-
def asset_params_value_contains_error(request: dict, param_id: str, expected):
75+
def asset_params_value_contains_error(request: dict, param_id: str, expected: Any):
9576
fn = __operators.get('in')
9677
param = find_by_id(request['asset']['params'], param_id)
9778
assert fn(expected, param['value_error'])
9879

9980

100-
def tcr_status(expected: str, request: dict):
81+
def tcr_status(request: dict, expected: str):
10182
assert request['configuration']['status'] == expected
10283

10384

104-
def tcr_params_value(request: dict, param_id: str, operator: str, expected: str):
85+
def tcr_params_value(request: dict, param_id: str, operator: str, expected: Any):
10586
fn = __operators.get(operator)
10687
param = find_by_id(request['configuration']['params'], param_id)
10788
assert fn(param['value'], expected)
10889

10990

110-
def tcr_params_value_equal(request: dict, param_id: str, expected: str):
91+
def tcr_params_value_equal(request: dict, param_id: str, expected: Any):
11192
tcr_params_value(request, param_id, '==', expected)
11293

11394

114-
def tcr_params_value_not_equal(request: dict, param_id: str, expected: str):
95+
def tcr_params_value_not_equal(request: dict, param_id: str, expected: Any):
11596
tcr_params_value(request, param_id, '!=', expected)
11697

11798

118-
def tcr_params_value_greater(request: dict, param_id: str, expected: str):
119-
tcr_params_value(request, param_id, '<', expected)
120-
121-
122-
def tcr_params_value_greater_or_equal(request: dict, param_id: str, expected: str):
123-
tcr_params_value(request, param_id, '<=', expected)
124-
125-
126-
def tcr_params_value_lesser(request: dict, param_id: str, expected: str):
127-
tcr_params_value(request, param_id, '>', expected)
128-
129-
130-
def tcr_params_value_lesser_or_equal(request: dict, param_id: str, expected: str):
131-
tcr_params_value(request, param_id, '>=', expected)
132-
133-
134-
def tcr_params_value_contains(request: dict, param_id: str, expected: str):
99+
def tcr_params_value_contains(request: dict, param_id: str, expected: Any):
135100
fn = __operators.get('in')
136101
param = find_by_id(request['configuration']['params'], param_id)
137102
assert fn(expected, param['value'])
138103

139104

140-
def tcr_params_value_error(request: dict, param_id: str, operator: str, expected: str):
105+
def tcr_params_value_error(request: dict, param_id: str, operator: str, expected: Any):
141106
fn = __operators.get(operator)
142107
param = find_by_id(request['configuration']['params'], param_id)
143108
assert fn(param['value_error'], expected)
144109

145110

146-
def tcr_params_value_equal_error(request: dict, param_id: str, expected: str):
111+
def tcr_params_value_equal_error(request: dict, param_id: str, expected: Any):
147112
tcr_params_value_error(request, param_id, '==', expected)
148113

149114

150-
def tcr_params_value_not_equal_error(request: dict, param_id: str, expected: str):
115+
def tcr_params_value_not_equal_error(request: dict, param_id: str, expected: Any):
151116
tcr_params_value_error(request, param_id, '!=', expected)
152117

153118

154-
def tcr_params_value_greater_error(request: dict, param_id: str, expected: str):
155-
tcr_params_value_error(request, param_id, '<', expected)
156-
157-
158-
def tcr_params_value_greater_or_equal_error(request: dict, param_id: str, expected: str):
159-
tcr_params_value_error(request, param_id, '<=', expected)
160-
161-
162-
def tcr_params_value_lesser_error(request: dict, param_id: str, expected: str):
163-
tcr_params_value_error(request, param_id, '>', expected)
164-
165-
166-
def tcr_params_value_lesser_or_equal_error(request: dict, param_id: str, expected: str):
167-
tcr_params_value_error(request, param_id, '>=', expected)
168-
169-
170-
def tcr_params_value_contains_error(request: dict, param_id: str, expected: str):
119+
def tcr_params_value_contains_error(request: dict, param_id: str, expected: Any):
171120
fn = __operators.get('in')
172121
param = find_by_id(request['configuration']['params'], param_id)
173122
assert fn(expected, param['value_error'])

connect/devops_testing/bdd/fixures.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,16 @@
33
from connect.devops_testing.fixures import make_request_builder, make_request_dispatcher
44

55

6-
def use_connect_request_dispatcher(context: Context):
6+
def use_connect_request_dispatcher(context: Context, use_specs: bool = True):
77
"""
88
Provides a connect request provider into the behave Context object.
99
1010
:param context: Context
11+
:param use_specs: bool True to initialize the Open API Specification
12+
live connection
1113
:return: None
1214
"""
13-
context.connect = make_request_dispatcher()
15+
context.connect = make_request_dispatcher(use_specs=use_specs)
1416
context.request = None
1517

1618

connect/devops_testing/fixures.py

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from typing import Optional
22

3+
from connect.client import ConnectClient
34
from connect.devops_testing.request import Builder, Dispatcher
45

56
import os
@@ -8,29 +9,11 @@
89
__CONNECT_API_URL = 'CONNECT_API_URL'
910

1011

11-
def __get_credentials_from_env(
12-
api_key: Optional[str] = None,
13-
api_url: Optional[str] = None,
14-
) -> dict:
15-
"""
16-
Retrieve credentials from environment.
17-
18-
:param api_key: str
19-
:param api_url: str
20-
:return: dict
21-
"""
22-
if api_key is None:
23-
api_key = os.getenv(key=__CONNECT_API_KEY, default='unavailable')
24-
25-
if api_url is None:
26-
api_url = os.getenv(key=__CONNECT_API_URL, default='unavailable')
27-
28-
return {'api_key': api_key, 'api_url': api_url}
29-
30-
3112
def make_request_dispatcher(
32-
api_key: Optional[str] = None,
33-
api_url: Optional[str] = None,
13+
api_key: Optional[str] = None,
14+
api_url: Optional[str] = None,
15+
client: ConnectClient = None,
16+
use_specs: bool = True,
3417
) -> Dispatcher:
3518
"""
3619
Initializes a Dispatcher service.
@@ -39,15 +22,38 @@ def make_request_dispatcher(
3922
- CONNECT_API_KEY
4023
- CONNECT_API_URL
4124
25+
:return: Dispatcher
26+
:param api_key: Optional[str] The Connect API Key.
27+
:param api_url: Optional[str] The Connect API Url endpoint.
28+
:param client: ConnectClient Optional Connect Open API Client already
29+
instantiated if this value is provided the api_key and
30+
api_url will be omitted as they are not used.
31+
:param use_specs: bool True to initialize the Open API Specification
32+
live connection
4233
:return: Dispatcher
4334
"""
44-
return Dispatcher.init(**__get_credentials_from_env(api_key, api_url))
35+
if client is None:
36+
if api_key is None:
37+
api_key = os.getenv(key=__CONNECT_API_KEY, default='unavailable')
38+
39+
if api_url is None:
40+
api_url = os.getenv(key=__CONNECT_API_URL, default='unavailable')
41+
42+
client = ConnectClient(
43+
api_key=api_key,
44+
endpoint=api_url,
45+
use_specs=use_specs,
46+
)
47+
48+
return Dispatcher(client=client)
4549

4650

4751
def make_request_builder(path: Optional[str] = None) -> Builder:
4852
"""
4953
Provides a Connect Request Builder
5054
55+
:param path: Optional[str] The optional file path to a
56+
connect json request sample.
5157
:return: Builder
5258
"""
5359
return Builder() if path is None else Builder.from_file(path)

0 commit comments

Comments
 (0)