Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ install:

script:
- flake8 connect
- pytest --cov-report=xml --cov=./
- pytest --cov-report=xml --cov=./connect

after_success:
- bash <(curl -s https://codecov.io/bash)
Expand Down
1 change: 1 addition & 0 deletions tests/response.json
Original file line number Diff line number Diff line change
@@ -0,0 +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": "test@email.com", "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": "test2@mail.com", "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"}]
58 changes: 58 additions & 0 deletions tests/test_models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import json
import os
from collections import namedtuple

from mock import MagicMock, patch

from connect.config import Config
from connect.resource import FulfillmentResource

response = namedtuple('Response', ('ok', 'content'))


def _get_response_ok():
response.ok = True
with open(os.path.join(os.path.dirname(__file__), 'response.json')) as file:
response.content = file.read()

return response


@patch('requests.get', MagicMock(return_value=_get_response_ok()))
def test_create_model_from_response():
Config(api_key='ApiKey XXXX:YYYYY', api_url='http://localhost:8080/api/public/v1/')

requests = FulfillmentResource().list()
request_obj = FulfillmentResource().get(pk='PR-000-000-000')

assert requests[0].id == request_obj.id
content = json.loads(response.content)[0]
assert request_obj.id == content['id']
assert request_obj.contract.id == content['contract']['id']
assert request_obj.marketplace.id == content['marketplace']['id']
assert request_obj.asset.id == content['asset']['id']
assert request_obj.asset.product.id == content['asset']['product']['id']

try:
(
request_obj.contract,
request_obj.contract.id,
request_obj.marketplace,
request_obj.marketplace.id,
request_obj.type,
request_obj.updated,
request_obj.created,
request_obj.reason,
request_obj.activation_key,
request_obj.status,
request_obj.asset.external_id,
request_obj.asset.external_uid,
request_obj.asset.product,
request_obj.asset.product.id,
request_obj.asset.connection,
request_obj.asset.items,
request_obj.asset.params,
request_obj.asset.tiers,
)
except AttributeError:
assert False, 'Incorrectly initialized model '