Skip to content

Commit eaa7fc9

Browse files
Merge pull request #13 from ht-albert/master
Added test for fulfillment model
2 parents 7d4dd55 + b8290a4 commit eaa7fc9

File tree

3 files changed

+60
-1
lines changed

3 files changed

+60
-1
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ install:
2222

2323
script:
2424
- flake8 connect
25-
- pytest --cov-report=xml --cov=./
25+
- pytest --cov-report=xml --cov=./connect
2626

2727
after_success:
2828
- bash <(curl -s https://codecov.io/bash)

tests/response.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[{"activation_key": "###tile", "asset": {"connection": {"id": "CT-9344-000", "provider": {"id": "PA-063-000", "name": "Connection name"}, "type": "production", "vendor": {"id": "VA-691-000", "name": "Vendor Name"}}, "external_id": "1001000", "external_uid": "f90e2ed2-b267-4831-93e6-a6b06874e000", "id": "AS-392-283-000-0", "items": [{"id": "string_id", "mpn": "mpn params", "old_quantity": "0", "quantity": "0"}], "params": [{"description": "Activation Code", "id": "activationCode", "name": "Activation Code", "type": "text", "value": "value param", "value_choices": [], "value_error": ""}], "product": {"id": "CN-631-322-000", "name": "ProductName"}, "tiers": {"customer": {"contact_info": {"address_line1": "street A", "address_line2": "2 2", "city": "Moscow", "contact": {"email": "[email protected]", "first_name": "First Name", "last_name": "Last Name", "phone_number": {"area_code": "", "country_code": "+7", "extension": "", "phone_number": "8901298403"}}, "country": "es", "postal_code": "08000", "state": ""}, "external_id": "1001000", "id": "TA-0-7304-8514-7000", "name": "Name"}, "tier1": {"contact_info": {"address_line1": "street B", "address_line2": "", "city": "Saint-Petersburg", "contact": {"email": "[email protected]", "first_name": "First Name", "last_name": "Last Name", "phone_number": {"area_code": "123", "country_code": "+34", "extension": "", "phone_number": "753000"}}, "country": "es", "postal_code": "28000", "state": ""}, "external_id": "1000000", "id": "TA-0-7042-5000-3000", "name": "Name"}}}, "contract": {"id": "CRD-00000-00000-00000", "name": "ACME Distribution Contract"}, "created": "2019-02-19T19:23:07.209244+00:00", "id": "PR-5852-1608-0000", "marketplace": {"icon": "/media/PA-063-000/marketplaces/MP-77000/icon.svg", "id": "MP-77000", "name": "MP Spain"}, "reason": "", "status": "approved", "type": "purchase", "updated": "2019-02-19T19:28:11.053922+00:00"}]

tests/test_models.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import json
2+
import os
3+
from collections import namedtuple
4+
5+
from mock import MagicMock, patch
6+
7+
from connect.config import Config
8+
from connect.resource import FulfillmentResource
9+
10+
response = namedtuple('Response', ('ok', 'content'))
11+
12+
13+
def _get_response_ok():
14+
response.ok = True
15+
with open(os.path.join(os.path.dirname(__file__), 'response.json')) as file:
16+
response.content = file.read()
17+
18+
return response
19+
20+
21+
@patch('requests.get', MagicMock(return_value=_get_response_ok()))
22+
def test_create_model_from_response():
23+
Config(api_key='ApiKey XXXX:YYYYY', api_url='http://localhost:8080/api/public/v1/')
24+
25+
requests = FulfillmentResource().list()
26+
request_obj = FulfillmentResource().get(pk='PR-000-000-000')
27+
28+
assert requests[0].id == request_obj.id
29+
content = json.loads(response.content)[0]
30+
assert request_obj.id == content['id']
31+
assert request_obj.contract.id == content['contract']['id']
32+
assert request_obj.marketplace.id == content['marketplace']['id']
33+
assert request_obj.asset.id == content['asset']['id']
34+
assert request_obj.asset.product.id == content['asset']['product']['id']
35+
36+
try:
37+
(
38+
request_obj.contract,
39+
request_obj.contract.id,
40+
request_obj.marketplace,
41+
request_obj.marketplace.id,
42+
request_obj.type,
43+
request_obj.updated,
44+
request_obj.created,
45+
request_obj.reason,
46+
request_obj.activation_key,
47+
request_obj.status,
48+
request_obj.asset.external_id,
49+
request_obj.asset.external_uid,
50+
request_obj.asset.product,
51+
request_obj.asset.product.id,
52+
request_obj.asset.connection,
53+
request_obj.asset.items,
54+
request_obj.asset.params,
55+
request_obj.asset.tiers,
56+
)
57+
except AttributeError:
58+
assert False, 'Incorrectly initialized model '

0 commit comments

Comments
 (0)