如何打包 Django 应用程序以使其易于测试?

How to package a Django app to be test-friendly?

我一直在研究 this side project,它可以有效地替代 Django 的默认 FileFieldImageField 类。更像是一个薄包装器,它可以让你改变这个:

    attachment = models.FileField(upload_to="attachments")
    image = models.ImageField(
        upload_to="images",
        width_field="image_width",
        height_field="image_height"
    )

进入这个:

    attachment = EncryptedFileField(upload_to="attachments")
    image = EncryptedImageField(
        upload_to="images",
        width_field="image_width",
        height_field="image_height"
    )

并神奇地加密所有事物。

问题是,虽然到目前为止效果很好,而且我有 tests,但打包仍然很麻烦。

具体来说:

TL;DR:有人能告诉我一个简单的 django 模块,它可以进行测试和打包 "right"?

I don't know how to run the tests outside of the demo. You need to cd into demo and run ./manage.py test and there has to be a symlink from that directory to ../django_encrypted_filefield. This can't be the "right" way to do this... right?

您可以将 demo/demo 的内容移动到 demo,并将 demo/manage.py 移动到基本文件夹。

现在您可以简单地 运行 ./manage.py 在基础文件夹中测试

Ideally, I'd like to setup tox to do the usual pep8 & unit test run, but I don't know how to do that for a project that's Django-dependent.

也许可以在调用 make test 的地方使用 Makefile,然后 运行 ./manage.py 自动测试。与 pep8

相同

TL;DR: Can someone point me to a simple django module that does tests & packaging "right"?

我知道可以有一个外部应用程序并在您自己的 django 项目中使用它,如果我是正确的,这就是您想要的。您只需将一个应用程序(如您的应用程序)包含在您的项目中,方法是将其包含在 settings.py 中的 INSTALLED_APPS 中。

这是一个 example。 (django-leaflet) 另一个例子 specifically about the tests.

虽然我不确定包装。