#python #flask #python-unittest
#python #flask #python-unittest
Вопрос:
Я читаю книгу под названием Flask Web Development. В настоящее время я на этапе модульного тестирования. Когда я запускаю свой простой тест, он выдает ошибку утверждения. Я знаю, что это будет что-то легкое, но я просто не могу понять это сам. Я просто не понимаю, что там происходит не так.
test_app_exists (test_basics.BasicsTestCase) ... ok
test_app_is_testing (test_basics.BasicsTestCase) ... FAIL
======================================================================
FAIL: test_app_is_testing (test_basics.BasicsTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:UsersdaniePycharmProjectsflaskWebDevelopmentteststest_basics.py", line 22, in test_app_is_testing
self.assertTrue(current_app.config['TESTING'])
AssertionError: False is not true
----------------------------------------------------------------------
Ran 2 tests in 0.018s
FAILED (failures=1)
Мой тест
import unittest
from flask import current_app
from app import create_app, db
class BasicsTestCase(unittest.TestCase):
def setUp(self):
self.app = create_app('testing')
self.app_context = self.app.app_context()
self.app_context.push()
db.create_all()
def tearDown(self):
db.session.remove()
db.drop_all()
self.app_context.pop()
def test_app_exists(self):
self.assertFalse(current_app is None)
def test_app_is_testing(self):
self.assertTrue(current_app.config['TESTING'])
и config.py
import os
basedir = os.path.abspath(os.path.dirname(__file__))
class Config:
...
@staticmethod
def init_app(app):
pass
class DevelopmentConfig(Config):
DEBUG = True
SQLALCHEMY_DATABASE_URI = 'sqlite:///' os.path.join(basedir, 'data-dev.sqlite')
class TestingConfig(Config):
DEBUG = True
SQLALCHEMY_DATABASE_URI = 'sqlite://' # only store info in temp memory
class ProductionConfig(Config):
SQLALCHEMY_DATABASE_URI = 'sqlite:///' os.path.join(basedir, 'data.sqlite')
config = {
'development': DevelopmentConfig,
'testing': TestingConfig,
'production': ProductionConfig,
'default': DevelopmentConfig
}
команда запуска модульного теста:
@app.cli.command()
def test():
import unittest
tests = unittest.TestLoader().discover('tests')
unittest.TextTestRunner(verbosity=2).run(tests)
Комментарии:
1. Для чего вы использовали camelCase
TESTING
?2. это было так в книге, но даже если я введу его в нижнем регистре, он все равно сделает то же самое