- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 pytest
覆盖了该项目的测试.
在每个应用程序( module
)中,我创建了 tests folder
, 其中放置了带有 application tests
的文件.
在每个测试文件夹中有 conftest fixtures
对于每个应用程序。
当我为每个应用程序(如 pytest apps/users
)分别运行测试时,一切正常。
但是,当我为第一个应用程序的整个项目(仅 pytest
)完全运行测试时,tests pass
,但随后它抛出 sqlalchemy.exc.ResourceClosedError: This Connection is closed 错误用于其他应用程序conftest.py
的示例
import os
import pytest
TESTDB = "test.db"
TESTDB_PATH = os.path.join(basedir, TESTDB)
@pytest.fixture(scope="session")
def app(request):
"""Session-wide test `Flask` application."""
app = create_app("config.TestConfig")
# Establish an application context before running the tests.
ctx = app.app_context()
ctx.push()
def teardown():
ctx.pop()
request.addfinalizer(teardown)
return app
@pytest.fixture(scope="session")
def db(app, request):
"""Session-wide test database."""
if os.path.exists(TESTDB_PATH):
os.unlink(TESTDB_PATH)
def teardown():
_db.drop_all()
try:
os.unlink(TESTDB_PATH)
except FileNotFoundError:
pass
_db.app = app
_db.create_all()
permission = PermissionModel(title="can_search_articles")
role = RoleModel(title="API User", permissions=[permission])
tag = TagModel(name="Test tag")
article = ArticleModel(
title="Test article",
legal_language="en",
abstract="",
state="Alaska",
tags=[tag],
)
_db.session.add_all([role, permission, tag, article])
_db.session.commit()
user1 = UserModel(email="test@gmail.com", role_id=role.id)
user2 = UserModel(email="test2@gmail.com")
_db.session.add_all([user1, user2])
# Commit the changes for the users
_db.session.commit()
request.addfinalizer(teardown)
return _db
@pytest.fixture(scope="function")
def session(db, request):
"""Creates a new database session for a test."""
connection = db.engine.connect()
transaction = connection.begin()
options = dict(bind=connection, binds={})
session = db.create_scoped_session(options=options)
db.session = session
def teardown():
transaction.rollback()
connection.close()
session.remove()
request.addfinalizer(teardown)
return session
@pytest.fixture(scope="module")
def client(app):
client = app.test_client()
ctx = app.app_context()
ctx.push()
yield client
ctx.pop()
proj/
__apps/
____articles/
______models.py, views.py, __init__.py etc
______tests/
________|__init__.py
________test_models.py
________conftest.py
____users/
______models.py, views.py, __init__.py etc
______tests/
________|__init__.py
________test_models.py
________conftest.py
______init__.py # Here I load my models, register blueprints
__main.py # Here I run my application
最佳答案
你不能有两个同时连接到 sqlite 数据库。此外,您在这里有两个连接,一个在 session 装置中显式,您自己打开和关闭它,第二个在 db
中隐式。 fixture ( _db.session
),可能不会在这里关闭。因此,尝试使用隐式连接且仅使用一次,而不是 db 和 session fixtures 只生成 session fixture:
@pytest.fixture
def session(app):
"""Creates a new database session for a test."""
db.app = app
db.create_all()
with db.engine.connect() as connection:
with connection.begin() as transaction:
options = dict(bind=connection, binds={})
session = db.create_scoped_session(options=options)
db.session = session
prepare_data(session)
yield session
transaction.rollback()
db.drop_all()
def prepare_data(session):
permission = PermissionModel(title="can_search_articles")
role = RoleModel(title="API User", permissions=[permission])
tag = TagModel(name="Test tag")
article = ArticleModel(
title="Test article",
legal_language="en",
abstract="",
state="Alaska",
tags=[tag],
)
session.add_all([role, permission, tag, article])
session.commit()
user1 = UserModel(email="test@gmail.com", role_id=role.id)
user2 = UserModel(email="test2@gmail.com")
session.add_all([user1, user2])
# Commit the changes for the users
session.commit()
关于python - sqlalchemy.exc.ResourceClosedError : This Connection is closed error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60870073/
我正在编写一些帐户创建代码并 try catch 特定的 sqlalchemy 异常,以便当用户使用已关联到现有帐户的电子邮件注册帐户时,我可以反馈适当的错误消息。 发生这种情况时,我原以为会得到一个
我创建了这个适用于 vector 、链表和双链表的函数。该函数获取一个值并在容器中搜索它。如果 vlaue 在容器中,则该函数会将值插入到已存在的位置旁边。因此,如果 val=2,则 {3,2,5}
我不断收到错误访问错误,我认为这与我的 UIPickerView 有关,因为这是应用程序崩溃的时候。一切正常,直到我从 UIPickerView 中做出第九个选择。每次应用程序在第 9 个选择时崩溃。
我在使用 swift 2 的最新版本的 xcode 中遇到此错误 上线 let s = linkTxt.text linkTxt 中的文本通过按钮“pasteFromClipBoard”显示 let
我有一个 Massive View Controller 并试图将我的代码分成不同的类。我创建了一个类 CurrentLocation。在 View Controller 中,我调用了 google
我正在使用 sqlacodegen 从我的数据库中反射(reflect)一堆表。我收到以下错误: sqlalchemy.exc.AmbiguousForeignKeysError: Can't det
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 8 年前。 Improve t
好吧,我对 ASP.NET 和 MasterPage 概念还很陌生,有一个我无法弄清楚的错误。 这是我的 default.aspx 的一部分: You've got credits.
本文整理了Java中com.ctc.wstx.exc.WstxException类的一些代码示例,展示了WstxException类的具体用法。这些代码示例主要来源于Github/Stackoverf
我在模拟器中遇到了问题。模拟器偶尔会停止并显示 程序收到信号:“EXC_BAD_ACCESS”。 作为控制台输出。没有提供更多信息。有机会更接近问题吗? 最佳答案 我看到 NSZombie 已经被提议
我很可能在这里缺少一些基本概念,但我尝试创建一些类似简单的代码审查应用程序的东西,并在设计数据库架构时尝试遵循此文档: http://flask-sqlalchemy.pocoo.org/2.1/mo
这种情况只是偶尔发生一次。当我从菜单项调用的方法中的断点单步执行时,按下时我最终到达方法的末尾,当我单步执行时,我最终到达 ccTouchEnded,然后发生错误访问。调试输出窗口中没有显示任何内容,
我在获取随机人变量的生日或电子邮件时遇到 EXC_BAD_ACCESS 问题。我尝试使用以下代码,但当我使用 dispatch_async 运行它时失败了。 ABAddressBook address
我收到此错误: >>> br = Browser() >>> br.open("http://www.bestforumz.com/forum/") >> >>> br.select_form(nr=
我开始使用 DeviceMotion 类进行编码。遵循 Apple 的文档后,我有以下内容: - (void)viewDidLoad { [super viewDidLoad]; my
我正在学习 Pyramid 教程:http://pyramid-blogr.readthedocs.io/en/latest/project_structure.html并使用 Windows 8。
我正在 try catch mysql/sqlalchemy OperationalErrors 并替换 handle access denied (1045) 与 connection refuse
为什么我会得到 TraceBack sqlalchemy.exc.NoForeignKeysError: Could not determine join condition between pare
过去 3 天我一直在为这个错误而苦苦挣扎,但没有成功。我正在开发一个包含 uiviewcontrollers 和 uitableviewcontrollers 的组合应用程序,在表格 View 中我单
给定以下 python 代码: import git try: raise git.exc.GitCommandError("dummy", "foo") except git.exc.Git
我是一名优秀的程序员,十分优秀!