如何打包Django应用程序以方便测试?

时间:2017-01-13 14:26:22

标签: python django packaging

我一直致力于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,但包装仍然很麻烦。

具体做法是:

  • 我不知道如何在演示之外运行测试。您需要cd进入demo并运行./manage.py test,并且必须有一个从该目录到../django_encrypted_filefield的符号链接。这不是"权利"这样做的方法......对吗?
  • 我认为我setup.py正在工作pip install -e git+...并且工作正常,但我不认为应该包含demo,对?但如果我把它排除在外,那么测试呢?
  • 理想情况下,我想设置tox来执行通常的pep8&单元测试运行,但我不知道如何为一个依赖Django的项目做到这一点。

TL; DR :有人能指出我做一个简单的django模块进行测试&包装"对"?

1 个答案:

答案 0 :(得分:1)

  

我不知道如何在演示之外运行测试。你需要cd   进入demo并运行./manage.py测试,必须有一个符号链接   该目录为../django_encrypted_filefield。这可能不是   "右"做到这一点的方法......对吧?

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

现在您只需在基础文件夹

中运行./manage.py test
  

理想情况下,我想设置tox来执行通常的pep8&单元测试运行,   但我不知道如何为一个依赖Django的项目做到这一点。

也许使用Makefile调用make test,并自动运行./manage.py测试。同样适用于pep8

  

TL; DR:有人能指出我做一个简单的django模块进行测试   &安培;包装"对"?

我知道可以拥有一个外部应用程序并在你自己的django项目中使用它,如果我是正确的,那就是你要去的。您只需在INSTALLED_APPS settings.py中的*this中添加应用(例如您的应用)即可。

这里是example。 (django的小叶) 另一个例子specifically about the tests

我不确定包装。