-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_get_user.py
57 lines (46 loc) · 1.86 KB
/
test_get_user.py
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
from seleniumbase import BaseCase
from qa327.backend import get_user
from qa327.models import db, User, Ticket
from werkzeug.security import generate_password_hash, check_password_hash
class BackEndGetUserTest(BaseCase):
"""
Testing backend function get_user using input partitioning
"""
def test_get_user_empty_email(self):
"""
Input Partion: empty email
"""
user = get_user("")
self.assert_equal(user, None)
def test_get_user_invalid_email(self):
"""
Input Partion: invalid email
"""
user = get_user("invalid_email")
self.assert_equal(user, None)
def test_get_user_nonexistent_email(self):
"""
Input Partion: nonexistent user email
"""
#Make sure user with email not in database
sql = "DELETE FROM User WHERE email='nonexistant_user@example.com'"
print(db.session.execute(sql))
#Get user by email and assert equal to the test user
user = get_user("nonexistant_user@example.com")
self.assert_equal(user, None)
def test_get_user_valid_email(self):
"""
Input Partion: valid email
"""
#Remove user with email "test_backend@example.com" if exists
sql = "DELETE FROM User WHERE email='test_backend@example.com'"
print(db.session.execute(sql))
#Add test user to database
hashed_pw = generate_password_hash('q1w2e3Q!W@E#', method='sha256')
test_user = User(email='test_backend@example.com', name='Test Email Input', password=hashed_pw, balance=5000)
db.session.add(test_user)
#Get user by email and assert equal to the test user
user = get_user("test_backend@example.com")
self.assert_equal(user, test_user)
#Clean up by deleting test user
db.session.delete(test_user)