1
1
from faker import Faker
2
2
from flask import json
3
3
from flask .testing import FlaskClient
4
+ from flask_restplus ._http import HTTPStatus
4
5
from pytest_mock import MockFixture
5
6
6
7
from time_tracker_api .projects .projects_model import PROJECT_TYPE
@@ -25,7 +26,7 @@ def test_create_project_should_succeed_with_valid_request(client: FlaskClient, m
25
26
26
27
response = client .post ("/projects" , json = valid_project_data , follow_redirects = True )
27
28
28
- assert 201 == response .status_code
29
+ assert HTTPStatus . CREATED == response .status_code
29
30
repository_create_mock .assert_called_once_with (valid_project_data )
30
31
31
32
@@ -40,7 +41,7 @@ def test_create_project_should_reject_bad_request(client: FlaskClient, mocker: M
40
41
41
42
response = client .post ("/projects" , json = invalid_project_data , follow_redirects = True )
42
43
43
- assert 400 == response .status_code
44
+ assert HTTPStatus . BAD_REQUEST == response .status_code
44
45
repository_create_mock .assert_not_called ()
45
46
46
47
@@ -52,24 +53,21 @@ def test_list_all_projects(client: FlaskClient, mocker: MockFixture):
52
53
53
54
response = client .get ("/projects" , follow_redirects = True )
54
55
55
- assert 200 == response .status_code
56
- json_data = json .loads (response .data )
57
- assert [] == json_data
56
+ assert HTTPStatus .OK == response .status_code
57
+ assert [] == json .loads (response .data )
58
58
repository_find_all_mock .assert_called_once ()
59
59
60
60
61
61
def test_get_project_should_succeed_with_valid_id (client : FlaskClient , mocker : MockFixture ):
62
62
from time_tracker_api .projects .projects_namespace import project_dao
63
-
64
63
valid_id = fake .random_int (1 , 9999 )
65
-
66
64
repository_find_mock = mocker .patch .object (project_dao .repository ,
67
65
'find' ,
68
66
return_value = fake_project )
69
67
70
68
response = client .get ("/projects/%s" % valid_id , follow_redirects = True )
71
69
72
- assert 200 == response .status_code
70
+ assert HTTPStatus . OK == response .status_code
73
71
fake_project == json .loads (response .data )
74
72
repository_find_mock .assert_called_once_with (str (valid_id ))
75
73
@@ -86,11 +84,12 @@ def test_get_project_should_return_not_found_with_invalid_id(client: FlaskClient
86
84
87
85
response = client .get ("/projects/%s" % invalid_id , follow_redirects = True )
88
86
89
- assert 404 == response .status_code
87
+ assert HTTPStatus . NOT_FOUND == response .status_code
90
88
repository_find_mock .assert_called_once_with (str (invalid_id ))
91
89
92
90
93
- def test_get_project_should_return_422_for_invalid_id_format (client : FlaskClient , mocker : MockFixture ):
91
+ def test_get_project_should_response_with_unprocessable_entity_for_invalid_id_format (client : FlaskClient ,
92
+ mocker : MockFixture ):
94
93
from time_tracker_api .projects .projects_namespace import project_dao
95
94
from werkzeug .exceptions import UnprocessableEntity
96
95
@@ -102,7 +101,7 @@ def test_get_project_should_return_422_for_invalid_id_format(client: FlaskClient
102
101
103
102
response = client .get ("/projects/%s" % invalid_id , follow_redirects = True )
104
103
105
- assert 422 == response .status_code
104
+ assert HTTPStatus . UNPROCESSABLE_ENTITY == response .status_code
106
105
repository_find_mock .assert_called_once_with (str (invalid_id ))
107
106
108
107
@@ -116,7 +115,7 @@ def test_update_project_should_succeed_with_valid_data(client: FlaskClient, mock
116
115
valid_id = fake .random_int (1 , 9999 )
117
116
response = client .put ("/projects/%s" % valid_id , json = valid_project_data , follow_redirects = True )
118
117
119
- assert 200 == response .status_code
118
+ assert HTTPStatus . OK == response .status_code
120
119
fake_project == json .loads (response .data )
121
120
repository_update_mock .assert_called_once_with (str (valid_id ), valid_project_data )
122
121
@@ -133,7 +132,7 @@ def test_update_project_should_reject_bad_request(client: FlaskClient, mocker: M
133
132
valid_id = fake .random_int (1 , 9999 )
134
133
response = client .put ("/projects/%s" % valid_id , json = invalid_project_data , follow_redirects = True )
135
134
136
- assert 400 == response .status_code
135
+ assert HTTPStatus . BAD_REQUEST == response .status_code
137
136
repository_update_mock .assert_not_called ()
138
137
139
138
@@ -151,7 +150,7 @@ def test_update_project_should_return_not_found_with_invalid_id(client: FlaskCli
151
150
json = valid_project_data ,
152
151
follow_redirects = True )
153
152
154
- assert 404 == response .status_code
153
+ assert HTTPStatus . NOT_FOUND == response .status_code
155
154
repository_update_mock .assert_called_once_with (str (invalid_id ), valid_project_data )
156
155
157
156
@@ -166,7 +165,7 @@ def test_delete_project_should_succeed_with_valid_id(client: FlaskClient, mocker
166
165
167
166
response = client .delete ("/projects/%s" % valid_id , follow_redirects = True )
168
167
169
- assert 204 == response .status_code
168
+ assert HTTPStatus . NO_CONTENT == response .status_code
170
169
assert b'' == response .data
171
170
repository_remove_mock .assert_called_once_with (str (valid_id ))
172
171
@@ -183,11 +182,12 @@ def test_delete_project_should_return_not_found_with_invalid_id(client: FlaskCli
183
182
184
183
response = client .delete ("/projects/%s" % invalid_id , follow_redirects = True )
185
184
186
- assert 404 == response .status_code
185
+ assert HTTPStatus . NOT_FOUND == response .status_code
187
186
repository_remove_mock .assert_called_once_with (str (invalid_id ))
188
187
189
188
190
- def test_delete_project_should_return_422_for_invalid_id_format (client : FlaskClient , mocker : MockFixture ):
189
+ def test_delete_project_should_return_unprocessable_entity_for_invalid_id_format (client : FlaskClient ,
190
+ mocker : MockFixture ):
191
191
from time_tracker_api .projects .projects_namespace import project_dao
192
192
from werkzeug .exceptions import UnprocessableEntity
193
193
@@ -199,5 +199,5 @@ def test_delete_project_should_return_422_for_invalid_id_format(client: FlaskCli
199
199
200
200
response = client .delete ("/projects/%s" % invalid_id , follow_redirects = True )
201
201
202
- assert 422 == response .status_code
202
+ assert HTTPStatus . UNPROCESSABLE_ENTITY == response .status_code
203
203
repository_remove_mock .assert_called_once_with (str (invalid_id ))
0 commit comments