45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
|
from datetime import datetime, timedelta
|
||
|
import unittest
|
||
|
from app import app, db
|
||
|
from app.models import User, Post
|
||
|
|
||
|
class UserModelCase(unittest.TestCase):
|
||
|
def setUp(self):
|
||
|
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://'
|
||
|
db.create_all()
|
||
|
|
||
|
def tearDown(self):
|
||
|
db.session.remove()
|
||
|
db.drop_all()
|
||
|
|
||
|
def test_password_hashing(self):
|
||
|
u = User(username='susan')
|
||
|
u.set_password('cat')
|
||
|
self.assertFalse(u.check_password('dog'))
|
||
|
self.assertTrue(u.check_password('cat'))
|
||
|
|
||
|
def test_follow(self):
|
||
|
u1 = User(username='john', email='john@example.com')
|
||
|
u2 = User(username='Snowden', realUser=False)
|
||
|
db.session.add(u1)
|
||
|
db.session.add(u2)
|
||
|
db.session.commit()
|
||
|
self.assertEqual(u1.followed.all(), [])
|
||
|
self.assertEqual(u1.followers.all(), [])
|
||
|
|
||
|
u1.follow(u2)
|
||
|
db.session.commit()
|
||
|
self.assertTrue(u1.is_following(u2))
|
||
|
self.assertEqual(u1.followed.count(), 1)
|
||
|
self.assertEqual(u1.followed.first().username, 'Snowden')
|
||
|
self.assertEqual(u2.followers.count(), 1)
|
||
|
self.assertEqual(u2.followers.first().username, 'john')
|
||
|
|
||
|
u1.unfollow(u2)
|
||
|
db.session.commit()
|
||
|
self.assertFalse(u1.is_following(u2))
|
||
|
self.assertEqual(u1.followed.count(), 0)
|
||
|
self.assertEqual(u2.followers.count(), 0)
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
unittest.main(verbosity=2)
|