Так что я пробовал написать несколько тестов для своего приложения Flask на пару дней, но я не могу заставить его работать. Тест проходит, но он застревает в PASSED.Я потерялся, пытаясь написать тесты в мое приложение для фляшек
Я клонировал кукурузную колбу (cookiecutter-flask), и он запускает веб-тест вместе с pytest (я думаю). Мой conftest.py выглядит так же, как это делает в репо (conftest.py)
Это мои текущие тесты:
def test_app(testapp):
app = create_app(TestConfig)
res = testapp.get('/')
res.status_code == 200
Этот проход и продолжается.
def test_create_admin_user(db, testapp):
password = bcrypt.generate_password_hash('test')
User.create(
uid='00000000000000000000',
email='[email protected]',
password=password,
active=1
)
user = User.query.filter_by(email='[email protected]').first()
assert user.email == '[email protected]'
Здесь я потерялся, и тест застрял на PASSED и ничего не делает. Когда я принудительно прервать процесс я получаю это:
Traceback (most recent call last):
File "manage.py", line 68, in <module>
manager.run()
File "/home/johan/Development/venv_python/local/lib/python2.7/site-packages/flask_script/__init__.py", line 412, in run
result = self.handle(sys.argv[0], sys.argv[1:])
File "/home/johan/Development/venv_python/local/lib/python2.7/site-packages/flask_script/__init__.py", line 383, in handle
res = handle(*args, **config)
File "/home/johan/Development/venv_python/local/lib/python2.7/site-packages/flask_script/commands.py", line 216, in __call__
return self.run(*args, **kwargs)
File "/home/johan/Development/venv_python/local/lib/python2.7/site-packages/flask/ctx.py", line 386, in __exit__
self.auto_pop(exc_value)
File "/home/johan/Development/venv_python/local/lib/python2.7/site-packages/flask/ctx.py", line 374, in auto_pop
self.pop(exc)
File "/home/johan/Development/venv_python/local/lib/python2.7/site-packages/flask/ctx.py", line 357, in pop
% (rv, self)
AssertionError: Popped wrong request context. (<RequestContext 'http://localhost/' [GET] of backend.app> instead of <RequestContext 'http://localhost/' [GET] of backend.app>)
Я нашел следующую нить в колбе о тестировании (предоставившем это Колба-тестирование, но я подумал, что это имеет какое-то отношение, может быть, это не : issue) и изменил мою тестовую конфигурацию, поэтому он содержит PRESERVE_CONTEXT_ON_EXCEPTION = False, но он все еще просто зависает.
У кого-нибудь есть идеи, которые я могу попробовать? Я не очень хорошо разбираюсь в тестировании, поэтому, вероятно, это то, что я делаю неправильно.
Просто оглядываясь на исходный код 'cookiecutter-flask', и они, похоже, используют [webtest] (http://webtest.readthedocs.org/en/latest/). В первом тесте вы создаете экземпляр приложения, но не используете его, есть ли причина для этого? – pech0rin