Skip to content

Commit 0b82bab

Browse files
Added some unit tests
1 parent 8e68d16 commit 0b82bab

File tree

2 files changed

+170
-2
lines changed

2 files changed

+170
-2
lines changed

tests/data/response2.json

Lines changed: 116 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,66 @@
2020
"id": "TEAM_ST3L2T1Y",
2121
"mpn": "TEAM-ST3L2T1Y",
2222
"old_quantity": "0",
23-
"quantity": "100"
23+
"quantity": "100",
24+
"global_id": "XXX",
25+
"params": [
26+
{
27+
"value": "Value 1",
28+
"events": {
29+
"updated": {
30+
"at": "2019-08-27T14:21:23+00:00",
31+
"by": {
32+
"id": "UR-841-574-187",
33+
"name": "Marc Serrat"
34+
}
35+
},
36+
"created": {
37+
"at": "2019-08-26T10:42:56+00:00",
38+
"by": {
39+
"id": "UR-841-574-187",
40+
"name": "Marc Serrat"
41+
}
42+
}
43+
},
44+
"id": "item_parameter",
45+
"title": "item_parameter",
46+
"description": "item_parameter",
47+
"type": "text",
48+
"scope": "item",
49+
"phase": "configuration",
50+
"constraints": {
51+
"hidden": false,
52+
"required": false,
53+
"unique": false
54+
}
55+
},
56+
{
57+
"value": "item",
58+
"events": {
59+
"updated": {
60+
"at": "2019-08-26T10:44:10+00:00"
61+
},
62+
"created": {
63+
"at": "2019-08-26T10:44:10+00:00",
64+
"by": {
65+
"id": "UR-841-574-187",
66+
"name": "Marc Serrat"
67+
}
68+
}
69+
},
70+
"id": "item_per_marketplace",
71+
"title": "item_per_marketplace",
72+
"description": "item_per_marketplace",
73+
"type": "text",
74+
"scope": "item_marketplace",
75+
"phase": "configuration",
76+
"constraints": {
77+
"hidden": false,
78+
"required": true,
79+
"unique": false
80+
}
81+
}
82+
]
2483
},
2584
{
2685
"id": "TEAM_ST3L2TAC1M",
@@ -134,6 +193,62 @@
134193
"name": "ACME Reseller"
135194
},
136195
"tier2": {}
196+
},
197+
"configuration": {
198+
"params": [
199+
{
200+
"value": "product_value",
201+
"events": {
202+
"updated": {
203+
"at": "2019-08-26T10:42:49+00:00"
204+
},
205+
"created": {
206+
"at": "2019-08-26T10:42:49+00:00",
207+
"by": {
208+
"id": "UR-841-574-187",
209+
"name": "Marc Serrat"
210+
}
211+
}
212+
},
213+
"id": "product_configuration",
214+
"title": "product_configuration",
215+
"description": "product_configuration",
216+
"type": "text",
217+
"scope": "product",
218+
"phase": "configuration",
219+
"constraints": {
220+
"hidden": false,
221+
"required": true,
222+
"unique": false
223+
}
224+
},
225+
{
226+
"value": "product_marketplace_config",
227+
"events": {
228+
"updated": {
229+
"at": "2019-08-26T10:43:27+00:00"
230+
},
231+
"created": {
232+
"at": "2019-08-26T10:43:27+00:00",
233+
"by": {
234+
"id": "UR-841-574-187",
235+
"name": "Marc Serrat"
236+
}
237+
}
238+
},
239+
"id": "product_Marketplace_configuration",
240+
"title": "product_Marketplace_configuration",
241+
"description": "product_Marketplace_configuration",
242+
"type": "text",
243+
"scope": "marketplace",
244+
"phase": "configuration",
245+
"constraints": {
246+
"hidden": false,
247+
"required": true,
248+
"unique": false
249+
}
250+
}
251+
]
137252
}
138253
},
139254
"created": "2018-09-03T10:28:18.472670+00:00",

tests/test_models.py

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import six
1010
from mock import MagicMock, patch
1111

12-
from connect.models import Asset, Param, Fulfillment, Item, TierConfig
12+
from connect.models import Asset, Param, Fulfillment, Item, TierConfig, Configuration
1313
from connect.resources import FulfillmentAutomation
1414
from .common import Response, load_str
1515

@@ -150,10 +150,63 @@ def test_asset_methods():
150150
assert not asset.get_param_by_id('invalid-id')
151151

152152
# Get item by id
153+
assert isinstance(asset.get_item_by_id('TEAM_ST3L2T1Y'), Item)
154+
assert asset.get_item_by_id('TEAM_ST3L2T1Y').mpn == 'TEAM-ST3L2T1Y'
155+
assert not asset.get_item_by_id('invalid_id')
156+
157+
# Get item by mpn
153158
assert isinstance(asset.get_item_by_mpn('TEAM-ST3L2T1Y'), Item)
154159
assert asset.get_item_by_mpn('TEAM-ST3L2T1Y').mpn == 'TEAM-ST3L2T1Y'
155160
assert not asset.get_item_by_mpn('invalid-mpn')
156161

162+
# Get item by global id
163+
assert isinstance(asset.get_item_by_global_id('XXX'), Item)
164+
assert asset.get_item_by_global_id('XXX').mpn == 'TEAM-ST3L2T1Y'
165+
assert not asset.get_item_by_mpn('invalid_id')
166+
167+
# Get requests
168+
requests = asset.get_requests()
169+
assert isinstance(requests, list)
170+
assert len(requests) == 1
171+
assert requests[0].id == 'PR-5620-6510-8214'
172+
173+
174+
@patch('requests.get', MagicMock(return_value=_get_response_ok2()))
175+
def test_asset_configuration():
176+
# Get asset
177+
requests = FulfillmentAutomation().list()
178+
assert len(requests) == 1
179+
assert isinstance(requests[0], Fulfillment)
180+
asset = requests[0].asset
181+
assert isinstance(asset, Asset)
182+
183+
assert isinstance(asset.configuration, Configuration)
184+
assert len(asset.configuration.params) == 2
185+
186+
product_param = asset.configuration.get_param_by_id('product_configuration')
187+
assert isinstance(product_param, Param)
188+
assert product_param.id == 'product_configuration'
189+
assert product_param.scope == 'product'
190+
191+
marketplace_param = asset.configuration.get_param_by_id('product_Marketplace_configuration')
192+
assert isinstance(marketplace_param, Param)
193+
assert marketplace_param.id == 'product_Marketplace_configuration'
194+
assert marketplace_param.scope == 'marketplace'
195+
196+
197+
@patch('requests.get', MagicMock(return_value=_get_response_ok2()))
198+
def test_asset_item():
199+
# Get asset
200+
requests = FulfillmentAutomation().list()
201+
assert len(requests) == 1
202+
assert isinstance(requests[0], Fulfillment)
203+
asset = requests[0].asset
204+
assert isinstance(asset, Asset)
205+
206+
item = asset.get_item_by_mpn('TEAM-ST3L2T1Y')
207+
param = item.get_param_by_id('item_parameter')
208+
assert isinstance(param, Param)
209+
157210

158211
@patch('requests.get')
159212
def test_get_tier_config(get_mock):

0 commit comments

Comments
 (0)