1- from tests import client
1+ from tests .conftest import client
2+ from tests import db , User
23
3- def test_create_user (client ):
4- send_data = {
4+ class TestUserView (object ):
5+
6+ valid_data = {
57 'name' : 'L Jone' ,
68 'bio' : 'coding...' ,
79 'languages' : 'FR' ,
@@ -10,6 +12,52 @@ def test_create_user(client):
1012 'occupation' : 'cashier'
1113 }
1214
13- response = client .post ('/users' , json = send_data )
14- assert response .status_code == 201
15- # assert response.get_json() ==
15+ def create_user_for_test_cases (self ):
16+ new_user = User (** self .valid_data )
17+ db .session .add (new_user )
18+ db .session .commit ()
19+ return new_user .id
20+
21+ def test_create_user (self , client ):
22+ response = client .post ('/users' , json = self .valid_data )
23+ assert response .status_code == 201
24+
25+ response = client .post ('/users' , json = {})
26+ assert response .status_code == 400
27+
28+ def test_update_user (self , client ):
29+ user_id = self .create_user_for_test_cases ()
30+
31+ response = client .post ('/users/1' , json = {})
32+ assert response .status_code == 400
33+
34+ # notice: Should we respond to update_user request without json data with status code 200?
35+ response = client .post ('/users/{}' .format (user_id ), json = {})
36+ assert response .status_code == 400
37+
38+ response = client .post ('/users/{}' .format (user_id ), json = {"name" : "Updated Name" })
39+ assert response .status_code == 200
40+
41+ # created_user = User.query.filter_by(id=user_id).first()
42+ assert response .get_json ()['name' ] == "Updated Name"
43+
44+ def test_delete_user (self , client ):
45+ user_id = None
46+ response = client .delete ('/users/{}' .format (user_id ))
47+ assert response .status_code == 404
48+
49+ user_id = self .create_user_for_test_cases ()
50+ response = client .delete ('/users/{}' .format (user_id ))
51+ assert response .status_code == 200
52+
53+ def test_get_user (self , client ):
54+ user_id = None
55+ response = client .get ('/users/{}' .format (user_id ))
56+ assert response .status_code == 404
57+
58+ user_id = self .create_user_for_test_cases ()
59+ response = client .get ('/users/{}' .format (user_id ))
60+ assert response .status_code == 200
61+
62+ created_user = User .query .filter_by (id = user_id ).first ()
63+ assert response .get_json () == created_user .as_dict ()
0 commit comments