/
test_extended_citysdk_api.py
89 lines (75 loc) · 2.98 KB
/
test_extended_citysdk_api.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
from django.utils.crypto import get_random_string
from issues.tests.conftest import mf_api_client, random_service, testing_issues # noqa
from issues.tests.schemata import LIST_OF_ISSUES_SCHEMA
from issues.tests.utils import ISSUE_LIST_ENDPOINT, get_data_from_response, verify_issue
from issues_citysdk.models import Issue_CitySDK
def test_get_by_service_object(testing_issues, mf_api_client):
issue = testing_issues.first()
service_object_id = '10844'
service_object_type = 'http://www.hel.fi/servicemap/v2'
Issue_CitySDK.objects.create(
issue=issue,
service_object_id=service_object_id,
service_object_type=service_object_type,
)
content = get_data_from_response(
mf_api_client.get(
ISSUE_LIST_ENDPOINT,
{
'extensions': 'citysdk',
'service_object_id': service_object_id,
'service_object_type': service_object_type,
}
),
schema=LIST_OF_ISSUES_SCHEMA
)
for issue in content:
assert issue['extended_attributes']['service_object_id'] == service_object_id
assert issue['extended_attributes']['service_object_type'] == service_object_type
def test_get_by_service_object_id_without_type(testing_issues, mf_api_client):
get_data_from_response(
mf_api_client.get(
ISSUE_LIST_ENDPOINT,
{
'extensions': 'citysdk',
'service_object_id': '10844',
}
),
status_code=400
)
def test_by_description(testing_issues, mf_api_client):
search = 'some'
content = get_data_from_response(
mf_api_client.get(ISSUE_LIST_ENDPOINT, {
'extensions': 'citysdk',
'search': search
}),
schema=LIST_OF_ISSUES_SCHEMA
)
assert search.lower() in content[0]['description'].lower()
def test_post_service_object(random_service, mf_api_client):
service_object_id = get_random_string(12)
service_object_type = 'http://www.hel.fi/servicemap/v2'
title = get_random_string(12)
issues = get_data_from_response(
mf_api_client.post(
ISSUE_LIST_ENDPOINT + '?extensions=citysdk',
{
'service_code': random_service.service_code,
'lat': 42,
'long': 42,
'description': 'hellote',
'service_object_id': service_object_id,
'service_object_type': service_object_type,
'title': title,
}
),
schema=LIST_OF_ISSUES_SCHEMA,
status_code=201
)
issue = issues[0]
verify_issue(issue)
iex = Issue_CitySDK.objects.get(issue__identifier=issue['service_request_id'])
assert iex.service_object_id == issue['extended_attributes']['service_object_id'] == service_object_id
assert iex.service_object_type == issue['extended_attributes']['service_object_type'] == service_object_type
assert iex.title == issue['extended_attributes']['title'] == title