-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapi_test.py
More file actions
86 lines (66 loc) · 2.61 KB
/
api_test.py
File metadata and controls
86 lines (66 loc) · 2.61 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
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
from flask_restplus.reqparse import RequestParser
from pytest import fail
def test_create_attributes_filter_with_invalid_attribute_should_fail():
from time_tracker_api.api import create_attributes_filter
from time_tracker_api.projects.projects_namespace import project, ns
try:
create_attributes_filter(ns, project, ['invalid_attribute'])
fail("It was expected to fail")
except Exception as e:
assert type(e) is ValueError
def test_create_attributes_filter_with_valid_attribute_should_succeed():
from time_tracker_api.api import create_attributes_filter
from time_tracker_api.projects.projects_namespace import project, ns
filter = create_attributes_filter(ns, project, ['name'])
assert filter is not None
assert type(filter) is RequestParser
def test_remove_required_constraint():
from time_tracker_api.api import remove_required_constraint
from flask_restplus import fields
from flask_restplus import Namespace
ns = Namespace('todos', description='Namespace for testing')
sample_model = ns.model(
'Todo',
{
'id': fields.Integer(
readonly=True, description='The task unique identifier'
),
'task': fields.String(
required=True, description='The task details'
),
'done': fields.Boolean(
required=False, description='Has it being done or not'
),
},
)
new_model = remove_required_constraint(sample_model)
assert new_model is not sample_model
for attrib in sample_model:
assert (
new_model[attrib].required is False
), "No attribute should be required"
assert (
new_model[attrib] is not sample_model[attrib]
), "No attribute should be required"
def test_add_update_last_entry_if_overlap():
from time_tracker_api.api import add_update_last_entry_if_overlap
from flask_restplus import fields
from flask_restplus import Namespace
ns = Namespace('todos', description='Namespace for testing')
sample_model = ns.model(
'Todo',
{
'id': fields.Integer(
readonly=True, description='The task unique identifier'
),
'task': fields.String(
required=True, description='The task details'
),
},
)
new_model = add_update_last_entry_if_overlap(sample_model)
assert new_model is not sample_model
update_last_entry_if_overlap = new_model.get(
'update_last_entry_if_overlap'
)
assert update_last_entry_if_overlap is not None