使用 SQLAlchemy 和 PostgreSQL 进行 Flask 单元测试耗尽数据库连接

2024-01-26

我正在使用 Flask、SQLAlchemy 和 PostgreSQL 运行一套相当简单的测试用例。使用应用程序工厂,我定义了一个基本单元测试类,如下所示:

class BaseTestCase(unittest.TestCase):
    def setUp(self):
        self.app = create_app()
        self.app.config.from_object('app.config.test')
        self.api_base = '/api/v1'

        self.ctx = self.app.test_request_context()
        self.ctx.push()

        self.client = self.app.test_client()
        db.create_all()

    def tearDown(self):
        db.session.remove()
        db.drop_all(app=self.app)
        print db.engine.pool.status()
        if self.ctx is not None:
            self.ctx.pop()

一些单元测试一切顺利,直到:

OperationalError: (OperationalError) FATAL:  remaining connection slots are reserved for non-replication superuser connections

池中似乎只有 1 个连接(每个测试的 db.engine.pool.status() 显示:池大小:5 池中的连接:1 当前溢出:-4 当前检出连接:0),但不知何故该应用程序永远不会断开连接。显然,为每个测试用例创建了一个新的应用程序实例,根据文档,这似乎很好。如果我将应用程序创建移至模块级别,它就可以正常工作。

有谁知道为什么会发生这种情况?

Thanks


Add db.get_engine(self.app).dispose()在 db.drop_all() 之后

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SQLAlchemy 和 PostgreSQL 进行 Flask 单元测试耗尽数据库连接 的相关文章

随机推荐

  • C# 使用 NumberLong 将 mongodb bson 转换为 json

    我有一个动态 mongoDB bson 文档 我尝试将其反序列化为 C Dictionary 对象 bson 文档包含 LongNumber 类型 我遇到了麻烦 var json entity BsonValue ToJson JsonCo
  • 如何使用生成器形成多个管道?

    我正在使用 python 并且正在尝试找到一种将多个生成器优雅地链接在一起的方法 问题的一个例子是 例如 有一个根生成器 它提供某种数据 每个值都像级联一样传递给它的 子级 而级联反过来可能会修改它们接收的对象 我可以走这条路 for x
  • jQuery:表单序列化、隐藏字段和不显示字段

    我在用 this serialize 提交表格时 它工作得很好 除了当我 由于某种原因 有两个具有相同名称的字段 一个可见 一个不可见 而且我不是在谈论type visible but display none 但是当然serialize不
  • 没有 Google Fonts 2 的 Bootstrap CSS (Bootswatch)

    我正在开发一个网页 并使用 Bootswatch 进行样式设置 有时我必须离线工作并在本地托管 不幸的是 Bootswatch 无法离线使用 因为它使用了 Bootstrap css 版本 并且开头带有额外的字体 import url ht
  • VBA 词。超链接的HighlightColorIndex 返回 9999999

    我正在 Word 中编写一个宏 以删除突出显示的所有超链接的突出显示wdGray25 对所有超链接的搜索是通过以下方式完成的 For Each oLink In ActiveDocument Hyperlinks If oLink Rang
  • 在IntelliJ IDEA中添加AAR而不使用gradle

    如何将aar module添加到IDEA中的项目中 没有gradle 使用ant 对于 Android Studio 这几乎是一样的 我找到的唯一解决方案是将 aar 内容提取到文件夹中以与导入模块过程一起使用 File gt Projec
  • 构建应用程序时出现“找不到资源”错误

    我想将我的 Eclipse 项目迁移到 Android Studio 我曾经使用 minSdkVersion 8 构建项目 但我想添加需要 minSdkVersion 10 的新功能 我正在运行 Android Studio 1 1 0 导
  • Angular:ng-init 不在负载上运行

    我已经看到了一些有关 ng init 问题的堆栈溢出示例 尽管我似乎找不到使用控制器引用它的示例 我通过在 html 文件中包含以下内容来调用控制器中的函数 div class tab container 在控制器中 scope init
  • R:控制直方图箱的数量

    我正在使用 hist 函数来分析我生成的一些数据 对于分析测定 我想精确控制直方图箱的数量 我知道 中断参数 并且我可以看到 在许多情况下 垃圾箱的数量与中断的数量有直接关系 即 no bins no breaks 1 由于 R 的算法 情
  • 花栗鼠碰撞检测

    我对花栗鼠完全陌生 而且我刚刚使用它几天 所以我猜这是非常明显的事情 但是我找不到任何相关文档 Chipmunk 中是否有任何回调或方法可以告诉您 2 个给定的形状发生了碰撞 如果不是 最好的方法是简单地在精灵上使用 cgrect cont
  • iOS 6 自定义 URL 方案启动图像错误

    我已经在我的应用程序中实现了自定义 URL 方案 另外 我使用以下命令对启动图像有不同的名称UI启动图像文件键入 info plist 文件说 如果您的应用程序支持一个或多个自定义 URL 方案 它还可以 为每个 URL 方案提供自定义启动
  • 无法从外部机器连接到kafka

    我从 Apache Kafka 开始 当我尝试从外部机器连接时遇到问题 使用下面的配置 如果应用程序和 docker 在同一台机器上运行 则一切正常 但是当我将应用程序放入机器 A 并将 docker 放入机器 B 时 应用程序无法连接 我
  • 在 ng-repeat 中生成 ng-model

    我一直在阅读一些主题 但找不到我所坚持的这个主题的解决方案 我正在尝试添加ng model inside NG 重复像这样的东西 span span
  • CUDA:是否可以将全部 48KB 片上内存用作共享内存?

    我正在 Windows 7 64 位 SP1 上使用 CUDA Toolkit 4 0 和 Visual Studio 2010 Professional 为 GTX 580 开发 CUDA 应用程序 我的程序比典型的 CUDA 程序更占用
  • 创建条带摘要报告

    我最近将付款处理切换到 Stripe 我现在需要为我们的财务部门创建一份报告 显示指定日期范围内的交易汇总 我已经开始创建一个简单的 PHP 网页 并使用 Stripe PHP 库 它将提供以下摘要 交易数量 交易金额 退款次数 退款金额
  • 使用 Mongoose 时出现 MongoDB 弃用警告

    我正在使用猫鼬版本5 2 13 我想是最新的 但是当我尝试执行 findOneAndUpdate 查询时 Mongo 会抛出弃用警告 DeprecationWarning collection findAndModify 已弃用 使用 改为
  • Android OpenCV:无法 dlopen 相机包装库

    如同OpenCV 2 3 如何从Android相机捕获帧 https stackoverflow com questions 7198912 opencv 2 3 how to capture frames from android cam
  • 如果我单击 overrideredirect 窗口并移动它(窗口),如何获得更好的窗口位置?

    当我单击窗口时 在我的例子中 当我单击self top frame and self app name 要移动它 窗口位置将更改为 0 x 和 y 坐标 所以如果我想移动窗口 窗口就会移动到右侧 我可以修复它 以便窗口不会移动到右侧 或从我
  • Javascript使用datejs解析RFC3339日期时间

    我在使用来自 Google Calendar API 的日期格式的 datajs 时遇到问题 我认为日期时间格式是 RFC3339 这是从日历 api 返回的示例日期时间 2012 01 05T08 45 00Z 这是来自 datejs 文
  • 使用 SQLAlchemy 和 PostgreSQL 进行 Flask 单元测试耗尽数据库连接

    我正在使用 Flask SQLAlchemy 和 PostgreSQL 运行一套相当简单的测试用例 使用应用程序工厂 我定义了一个基本单元测试类 如下所示 class BaseTestCase unittest TestCase def s