python - Tornado 。类似 Django 的测试运行器和测试数据库

标签 python django unit-testing tornado

我喜欢 Django 单元测试,因为它们会在运行时创建和删除测试数据库。

创建tornado 测试数据库的方法有哪些?

UPD:我对在测试运行时创建 postgresql 测试数据库很感兴趣。

最佳答案

我发现最简单的方法就是对测试数据库使用 SQL 转储。创建一个数据库,用固定装置填充它,然后将它写到文件中。只需在运行测试之前调用 load_fixtures(或每当您想要重置数据库时)。这种方法当然可以改进,但它已经足够满足我的需求了。

import os
import unittest2

import tornado.database

settings = dict(
    db_host="127.0.0.1:3306",
    db_name="testdb",
    db_user="testdb",
    db_password="secret",
    db_fixtures_file=os.path.join(os.path.dirname(os.path.abspath(__file__)), 'fixtures.sql'),
)

def load_fixtures():
    """Fixtures are stored in an SQL dump.
    """
    os.system("psql %s --user=%s --password=%s < %s" % (settings['db_name'], 
        settings['db_user'], settings['db_password'], settings['db_fixtures_file']))

    return tornado.database.Connection(
        host=settings['db_host'], database=settings['db_name'],
        user=settings['db_user'], password=settings['db_password'])

关于python - Tornado 。类似 Django 的测试运行器和测试数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10754912/

相关文章:

python - 使用 MirroredStrategy : isinstance(x, dataset_ops.DatasetV2 时出现 AssertionError)

python - 非常非常大的数 Python

python - 如何删除每行全零的列,然后按总和对所选列进行排序

linux - Gunicorn Upstart 脚本启动失败

unit-testing - 为什么没有 numpy.testing.assert_array_greater、assert_array_less_equal、assert_array_true 等?

python - 在 GTK 应用程序中包含控制台应用程序

django IntegrityError(1048, "Column ' hotel_id'不能为空”)

django modelformset_factory 即使在成功创建对象后也能维持先前提交的数据

android - Android 可以使用标准构建的 JAR 文件吗?

c - 在 C 中将字符串作为文件句柄访问