Я пытаюсь проверить мое приложение фляги, используя unittest. Я хочу воздержаться от проверки колб, потому что я не люблю опережать меня.Как я могу проверить мое приложение фляги, используя unittest?
Я действительно боролся с этой неуместной вещью сейчас. Это запутанно, потому что есть контекст запроса и контекст приложения, и я не знаю, какой из них мне нужно, когда я вызываю db.create_all().
Похоже, что когда я добавляю в базу данных, он добавляет мои модели в базу данных, указанную в моем модуле приложения (init .py), но не базу данных, указанную в методе setUp (self).
У меня есть некоторые методы, которые должны заполнять базу данных перед каждым методом test_.
Как я могу указать свой дБ на правильный путь?
def setUp(self):
#self.db_gd, app.config['DATABASE'] = tempfile.mkstemp()
app.config['TESTING'] = True
# app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + app.config['DATABASE']
basedir = os.path.abspath(os.path.dirname(__file__))
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + \
os.path.join(basedir, 'test.db')
db = SQLAlchemy(app)
db.create_all()
#self.app = app.test_client()
#self.app.testing = True
self.create_roles()
self.create_users()
self.create_buildings()
#with app.app_context():
# db.create_all()
# self.create_roles()
# self.create_users()
# self.create_buildings()
def tearDown(self):
#with app.app_context():
#with app.request_context():
db.session.remove()
db.drop_all()
#os.close(self.db_gd)
#os.unlink(app.config['DATABASE'])
Вот один из методов, которые заполнят мою база данных:
def create_users(self):
#raise ValueError(User.query.all())
new_user = User('Some User Name','[email protected]','admin')
new_user.role_id = 1
new_user.status = 1
new_user.password = generate_password_hash(new_user.password)
db.session.add(new_user)
места Я смотрел:
http://kronosapiens.github.io/blog/2014/08/14/understanding-contexts-in-flask.html
http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xvi-debugging-testing-and-profiling
и Документация колбы : http://flask.pocoo.org/docs/0.10/testing/