-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.py
73 lines (61 loc) · 2.33 KB
/
test.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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import os
import sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
import unittest
import sqlalchemy
from flask_blog import app, db
from author.models import *
from blog.models import *
class UserTest(unittest.TestCase):
def setUp(self):
db_username = app.config["DB_USERNAME"]
db_password = app.config["DB_PASSWORD"]
db_host = app.config["DB_HOST"]
self.db_uri = "mysql+pymysql://%s:%s@%s/" % (db_username, db_password, db_host)
app.config["TESTING"] = True
app.config["WTF_CSRF_ENABLED"] = False
app.config["BLOG_DATABASE_NAME"] = "test_blog"
app.config["SQLALCHEMY_DATABASE_URI"] = self.db_uri + app.config["BLOG_DATABASE_NAME"]
engine = sqlalchemy.create_engine(self.db_uri)
conn = engine.connect()
conn.execute("commit")
conn.execute("CREATE DATABASE " + app.config["BLOG_DATABASE_NAME"])
db.create_all()
conn.close()
self.app = app.test_client()
def tearDown(self):
db.session.remove()
engine = sqlalchemy.create_engine(self.db_uri)
conn = engine.connect()
conn.execute("commit")
conn.execute("DROP DATABASE " + app.config["BLOG_DATABASE_NAME"])
conn.close()
def create_blog(self):
return self.app.post('/setup', data=dict(
name="test blog1",
fullname="desmond",
email="desmond@123.com",
username="desmond.dai",
password="098567",
confirm="098567"
), follow_redirects=True)
def login(self, username, password):
return self.app.post('/login', data=dict(
username=username,
password=password
), follow_redirects=True)
def logout(self):
return self.app.get('logout', follow_redirects=True)
def test_create_blog(self):
rv = self.create_blog()
assert "Blog created" in str(rv.data)
def test_login_logout(self):
self.create_blog()
rv = self.login("desmond.dai", "098567")
assert "User desmond.dai logged in" in str(rv.data)
rv = self.logout()
assert "User logged out" in str(rv.data)
rv = self.login("desmond.dai", "test")
assert "Incorrect username and password" in str(rv.data)
if __name__ == "__main__":
unittest.main()