Skip to content

Commit c9e1e48

Browse files
author
marter11
committed
pr
1 parent deb51c6 commit c9e1e48

File tree

6 files changed

+86
-27
lines changed

6 files changed

+86
-27
lines changed

src/tests/__init__.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
import sys
2+
import os
3+
4+
# sys.path.insert(0, os.getcwd()+'/src')
5+
16
from api import app
27
from api.models import db
3-
from api.models import User, Project
8+
from api.models import User, Project, UserFeedback, ProjectFeedback, UserLink, ProjectLink
9+
10+
# sys.path.insert(0, os.getcwd()+'/tests')

src/tests/api/__init__.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
2+
"""
3+
4+
Creates valid model objects for testing purposes:
5+
6+
- these functions will give back the object's id
7+
8+
- if you want to access the object properties, then run a query on the model with the given id
9+
example: User.query.filter_by(id=returned_id)
10+
11+
12+
-Call these function form any test case.
13+
14+
"""
15+
16+
from tests import db, Project, User, UserLink, ProjectLink
17+
18+
def create_project_for_test_cases(data):
19+
new_project = Project(**data)
20+
db.session.add(new_project)
21+
db.session.commit()
22+
return new_project.id
23+
24+
def create_user_for_test_cases(data):
25+
new_user = User(**data)
26+
db.session.add(new_user)
27+
db.session.commit()
28+
return new_user.id
29+
30+
def create_user_link_for_test_cases(data):
31+
new_user_link = UserLink(**data)
32+
db.session.add(new_user)
33+
db.session.commit()
34+
return new_user_link.id
35+
36+
def create_project_for_test_cases(data):
37+
new_project_link = ProjectLink(**data)
38+
db.session.add(new_project_link)
39+
db.session.commit()
40+
return new_project_link.id
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from tests.conftest import client
2+
from tests import User, Project, UserFeedback, ProjectFeedback
3+
from tests.api import create_user_for_test_cases, create_project_for_test_cases
4+
5+
class TestFeedbackFlow(object):
6+
7+
valid_data_1 = {
8+
"name": "Foe Joe",
9+
}
10+
11+
valid_data_2 = {
12+
"name": "Jimmy Joe"
13+
}
14+
15+
def test_user_to_user_feedback_creation(self, client):
16+
user1_id = create_user_for_test_cases(self.valid_data_2)
17+
user2_id = create_user_for_test_cases(self.valid_data_2)

src/tests/api/views/test_projectView.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,15 @@
11
from tests.conftest import client
22
from tests import db, Project
3-
from datetime import datetime
3+
from tests.api import create_project_for_test_cases
44

5-
class TestPorjectView(object):
5+
class TestProjectView(object):
66

77
valid_data = {
88
'name': 'PB api',
99
'description': 'A cool project',
1010
'repository': 'http://github.xy.com'
1111
}
1212

13-
def create_project_for_test_cases(self):
14-
new_project = Project(**self.valid_data)
15-
db.session.add(new_project)
16-
db.session.commit()
17-
return new_project.id
18-
1913
def test_create_project(self, client):
2014
response = client.post('/projects', json={"name": "Project"})
2115
assert response.status_code == 400
@@ -34,7 +28,7 @@ def test_update_project(self, client):
3428
# notice: should return 404 when doesen't exist insted of 400
3529
assert response.status_code == 404
3630

37-
project_id = self.create_project_for_test_cases()
31+
project_id = create_project_for_test_cases(self.valid_data)
3832
response = client.post('/projects/{}'.format(project_id), json={'description': 'updated desc'})
3933
project = Project.query.filter_by(id=project_id).first()
4034
assert project.description == 'updated desc'

src/tests/api/views/test_userView.py

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
from tests.conftest import client
22
from tests import db, User
3+
from tests.api import create_user_for_test_cases
34

45
class TestUserView(object):
56

7+
"""
8+
9+
"""
10+
11+
# valid data for user creation
612
valid_data = {
713
'name': 'L Jone',
814
'bio': 'coding...',
@@ -12,12 +18,6 @@ class TestUserView(object):
1218
'occupation': 'cashier'
1319
}
1420

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-
2121
def test_create_user(self, client):
2222
response = client.post('/users', json=self.valid_data)
2323
assert response.status_code == 201
@@ -26,7 +26,7 @@ def test_create_user(self, client):
2626
assert response.status_code == 400
2727

2828
def test_update_user(self, client):
29-
user_id = self.create_user_for_test_cases()
29+
user_id = create_user_for_test_cases(self.valid_data)
3030

3131
response = client.post('/users/1', json={})
3232
assert response.status_code == 400
@@ -46,7 +46,7 @@ def test_delete_user(self, client):
4646
response = client.delete('/users/{}'.format(user_id))
4747
assert response.status_code == 404
4848

49-
user_id = self.create_user_for_test_cases()
49+
user_id = create_user_for_test_cases(self.valid_data)
5050
response = client.delete('/users/{}'.format(user_id))
5151
assert response.status_code == 200
5252

@@ -55,15 +55,15 @@ def test_get_user(self, client):
5555
response = client.get('/users/{}'.format(user_id))
5656
assert response.status_code == 404
5757

58-
user_id = self.create_user_for_test_cases()
58+
user_id = create_user_for_test_cases(self.valid_data)
5959
response = client.get('/users/{}'.format(user_id))
6060
assert response.status_code == 200
6161

6262
created_user = User.query.filter_by(id=user_id).first()
6363
assert response.get_json() == created_user.as_dict()
6464

6565
def test_get_all_users(self, client):
66-
self.create_user_for_test_cases()
66+
create_user_for_test_cases(self.valid_data)
6767

6868
self.valid_data = {
6969
'name': 'Valid',
@@ -74,7 +74,7 @@ def test_get_all_users(self, client):
7474
'occupation': 'cashier2.1'
7575
}
7676

77-
self.create_user_for_test_cases()
77+
create_user_for_test_cases(self.valid_data)
7878

7979
response = client.get('/users')
8080
assert response.status_code == 200
@@ -89,3 +89,9 @@ def test_get_all_users(self, client):
8989
response = client.get('/users')
9090
assert response.status_code == 200
9191
assert response.get_json() == [users_dict[1]]
92+
93+
l = User(**self.valid_data)
94+
db.session.add(l)
95+
db.session.commit()
96+
97+
assert l.name == 1

src/tests/conftest.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,7 @@
44
from tests import app, db
55

66
"""
7-
todo: change this importing solution if the tests/ won't be under src/
8-
import sys
9-
import os
10-
sys.path.insert(0, os.getcwd()+'/src')
11-
import api
12-
sys.path.insert(0, os.getcwd()+'/tests')
7+
138
"""
149

1510
@pytest.fixture

0 commit comments

Comments
 (0)