欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python flask ModuleNotFoundError: No module named 'app'

程序员文章站 2022-05-28 23:32:23
...

对用户模型执行单元测试时报错

python flask ModuleNotFoundError: No module named 'app'

代码如下,请问怎么解决

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_avatar(self):
		u = User(username='john', email='[email protected]')
		self.assertEqual(u.avatar(128),('https://www.gravatar.com/avatar/'
										'd4c74594d841139328695756648b6bd6'
										'?d=identicon&s=128'))

	def test_follow(self):
		u1 = User(username='john', email='[email protected]')
		u2 = User(username='susan',email='[email protected]')
		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,'susan')
		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)

	def test_follow_posts(self):
		# create four users
		u1 = User(username='john', email='[email protected]')
		u2 = User(username='susan', email='[email protected]')
		u3 = User(username='mary', email='[email protected]')
		u4 = User(username='david', email='[email protected]')
		db.session.add_all([u1, u2, u3, u4])

		# create four posts
		now = datetime.utcnow()
		p1 = Post(body="post from john", author=u1,
				timestamp=now + timedelta(seconds=1))
		p2 = Post(body="post from susan", author=u2,
				timestamp=now + timedelta(seconds=4))
		p3 = Post(body="post from mary", author=u3,
				timestamp=now + timedelta(seconds=3))
		p4 = Post(body="post from david", author=u4,
				timestamp=now + timedelta(seconds=2))
		db.session.add_all([p1, p2, p3, p4])
		db.session.commit()

		# setup the followers
		u1.follow(u2)  # john follows susan
		u1.follow(u4)  # john follows david
		u2.follow(u3)  # susan follows mary
		u3.follow(u4)  # mary follows david
		db.session.commit()

		# check the followed posts of each user
		f1 = u1.followed_posts().all()
		f2 = u2.followed_posts().all()
		f3 = u3.followed_posts().all()
		f4 = u4.followed_posts().all()
		self.assertEqual(f1, [p2, p4, p1])
		self.assertEqual(f2, [p2, p3])
		self.assertEqual(f3, [p3, p4])
		self.assertEqual(f4, [p4])

if __name__ == '__main__':
	unittest.main(verbosity=2)
相关标签: python web