跳转到主要内容

Django包工具集

项目描述

这是Django应用打包的工具集。以下功能可用。

  1. 与setup.py一起运行的单元测试工具

  2. 仅用于测试的动态添加模型的单元测试工具

  3. 在syncdb命令中自动创建用户

如何安装

使用pip命令或easy_install

pip install django-packageutils

假设目录树

django-packagename
    +- setup.py
    +- RELEASE-VERSION          # used for git versioning
    +- packagename              # your package
        +- __init__.py
        +- models.py            # or whatever
        +- tests
            +- __init__.py
            +- test_models.py   # or whatever
            +- testapp          # App only required in tests of this package
                +- __init__.py
                +- models.py
    +- test                     # django project for testing
        +- __init__.py
        +- settings.py
        +- manage.py
        +- urls.py
        +- runtests.py          # for running test with setup.py

与setup.py一起运行的单元测试工具

在您的包目录中编写您的 runtests.py

import os
from packageutils.test import get_package_runner
from packageutils.test import run_tests

def runtests(verbosity=1, interactive=True):
    package_dir = os.path.dirname(__file__)
    test_runner = get_package_runner(package_dir, verbosity, interactive)
    run_tests(test_runner, ['some_application_name'])

if __name__ == '__main__':
    runtests()

将测试套件添加到您的 setup.py

setup(
    # ... some configures
    install_requires = [
        'distribute',           # recommended
        'setuptools-git',       # recommended
        'django-packageutils',  # required
        # and some other requires
    ],
    test_suite = 'tests.runtests.runtests',
    test_require = [
        'django',
    ],
)

然后执行以下命令

python setup.py test

仅用于测试的动态添加模型的单元测试工具

使用Django默认的TestCase,您不能在测试中添加所需的模型。有时您需要额外的模型来测试您的Django包,那么您可以使用 AppTestCase

from packageutils.testcase import AppTestCase
from testapp.models import Article

class TestAppTestCase(AppTestCase):
    # Apps only required in this test
    installed_apps = [
        'packagename.tests.testapp',
    ]
    # Middlewares only required in this test
    middleware_classes = [
        'testapp.middleware.SomeMiddlewareRequired',
    ]

    def test_creation(self):
        article = Article.objects.create(title='foo')
        assert Article.objects.filter(title='foo').exists()

在syncdb命令中自动创建用户

INSTALLED_APPS 中添加 packageutils.syncdb.autouser,然后在syncdb命令中自动创建管理员用户(密码将设置为“admin”)

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

django-packageutils-0.1.0.tar.gz (22.7 kB 查看哈希值)

上传时间:

构建的分发版

django_packageutils-0.1.0-py2.7.egg (60.1 kB 查看哈希值)

上传时间 源码

支持者