-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtest_preparers.py
More file actions
60 lines (48 loc) · 2.41 KB
/
test_preparers.py
File metadata and controls
60 lines (48 loc) · 2.41 KB
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
from simple_model.builder import model_builder
def test_simple_preparer_lookup_data_with_dict(simple_preparer, payload):
assert simple_preparer.lookup_data('', payload) == payload
assert simple_preparer.lookup_data('type', payload) == payload['type']
assert simple_preparer.lookup_data('attributes.title', payload) == payload['attributes']['title']
assert simple_preparer.lookup_data('relationships.author.data.id', payload) == payload['relationships']['author']['data']['id']
def test_simple_preparer_lookup_data_with_object(simple_preparer, payload):
obj = model_builder(payload)
assert simple_preparer.lookup_data('', obj) == obj
assert simple_preparer.lookup_data('type', obj) == obj.type
assert simple_preparer.lookup_data('attributes.title', obj) == obj.attributes.title
assert simple_preparer.lookup_data('relationships.author.data.id', obj) == obj.relationships.author.data.id
def test_simple_preparer_prepare(simple_preparer, payload):
expected = {
'type': 'articles',
'id': '1',
'title': 'JSON API paints my bikeshed!',
'body': 'The shortest article. Ever.',
'relationship_id': '42'
}
assert simple_preparer.prepare(payload) == expected
assert simple_preparer.prepare(model_builder(payload)) == expected
def test_simple_preparer_without_fields_prepare(simple_preparer_without_fields, payload):
assert simple_preparer_without_fields.prepare(payload) == payload
assert simple_preparer_without_fields.prepare(model_builder(payload)) == payload
def test_preparer_with_subpreparer_prepare(preparer_with_subpreparer, payload):
expected = {
'type': 'articles',
'id': '1',
'attrs': {
'title': 'JSON API paints my bikeshed!',
'body': 'The shortest article. Ever.'
}
}
assert preparer_with_subpreparer.prepare(payload) == expected
assert preparer_with_subpreparer.prepare(model_builder(payload)) == expected
def test_preparer_with_collectionsubpreparer_prepare(preparer_with_collectionsubpreparer, payload):
expected = {
'type': 'articles',
'id': '1',
'tag_list': [
{'tag_name': 'tag-1'},
{'tag_name': 'tag-2'},
{'tag_name': 'tag-3'},
]
}
assert preparer_with_collectionsubpreparer.prepare(payload) == expected
assert preparer_with_collectionsubpreparer.prepare(model_builder(payload)) == expected