小编tun*_*rob的帖子

Django测试 - 在所有测试中修补对象

我需要MockMixin为我的测试创建一些.它应该包括调用外部源的所有内容的模拟.例如,每次我在管理面板中保存模型时,我都会调用一些远程URL.如果嘲笑并使用那样的话会很好:

class ExampleTestCase(MockedTestCase):
    # tests
Run Code Online (Sandbox Code Playgroud)

因此,每次我在管理员中保存模型时,例如在功能测试中,应用此模拟而不是调用远程URL.

这有可能吗?我能够为1个特定测试做到这一点,这不是问题.但是有一些全局模拟更有用,因为我经常使用它.

python django unit-testing django-testing python-mock

25
推荐指数
3
解决办法
1万
查看次数

结合python覆盖文件?

我想知道是否可以将coverage.xml文件合并到1个文件中以查看HTML输出中的全局报告.

我的unit/functional tests运行是1命令和integration tests第二个命令.这意味着我的覆盖范围unit/functional tests被覆盖了unit tests.

如果我对这个问题有一些解决方案,那将是很好的,主要是通过将这些文件组合成1个文件.

python unit-testing code-coverage coverage.py python-coverage

15
推荐指数
4
解决办法
8837
查看次数

点击Flash对象通过JavaScript

是否可以通过JavaScript触发Flash对象上的click事件?

javascript flash jquery

14
推荐指数
1
解决办法
2万
查看次数

测试中的模型 - Django 1.7问题

我正在尝试移植我的项目以使用Django 1.7.一切都很好,除了一件事.测试文件夹内的模型.

Django 1.7新迁移在内部运行migrate命令.在syncdb运行之前.这意味着如果模型未包含在迁移中 - 它将不会填充到DB(以及测试数据库).这正是我现在所经历的.

我所做的是:

在我的/app/tests/models.py虚拟模型中:class TestBaseImage(BaseImage): pass 它所做的只是从抽象 BaseImage模型继承.

然后在测试中我创建该虚拟模型的实例来测试它.

问题是它不再起作用了.它不包含在迁移中(这很明显,因为我不想将我的测试模型保存在生产数据库中).运行我的测试会导致DB错误table does not exist.这是有道理的,因为它不包含在迁移中.

有没有办法让它适用于新的迁移系统?我找不到一种"修复"的方法.

我使用的代码:

应用程序/测试/ models.py

from ..models import BaseImage


class TestBaseImage(BaseImage):
    """Dummy model just to test BaseImage abstract class"""
    pass
Run Code Online (Sandbox Code Playgroud)

应用程序/ models.py

class BaseImage(models.Model):
    # ... fields ...
    class Meta:
        abstract = True
Run Code Online (Sandbox Code Playgroud)

工厂:

class BaseImageFactory(factory.django.DjangoModelFactory):
    """Factory class for Vessel model"""
    FACTORY_FOR = BaseImage
    ABSTRACT_FACTORY = True


class PortImageFactory(BaseImageFactory):
    FACTORY_FOR = PortImage
Run Code Online (Sandbox Code Playgroud)

示例测试:

def get_model_field(model, field_name):
    """Returns …
Run Code Online (Sandbox Code Playgroud)

python django django-testing django-1.7 django-migrations

14
推荐指数
1
解决办法
1589
查看次数

Django CMS - 如何检测主页?

如何在模板中检测当前站点是否设置为主页?

django django-templates django-cms

12
推荐指数
1
解决办法
2482
查看次数

在视图中获取表单字段标签

在验证并保存表单后,有没有办法获得字段标签文本?我尝试:

for field in form:
    print field.label
Run Code Online (Sandbox Code Playgroud)

但我得到:

django.utils.functional.代理对象位于0x2557f90

任何解决方案?

解决:根据我需要调用它的unicode():

unicode(field.label)
Run Code Online (Sandbox Code Playgroud)

django django-forms django-views

10
推荐指数
0
解决办法
3806
查看次数

Django admin - 如何在templatetag中获取所有注册的模型?

我正在编写自定义管理员资料,需要在管理员中获取所有已注册的模型.这可能吗?我需要它在管理员索引页面上制作一些自定义视图.

django django-templates django-admin

9
推荐指数
1
解决办法
2691
查看次数

Django - 如何使需要实现的字段?

我正在为大约 10 个模型构建一些抽象模型。我需要以某种方式使 1 个字段不在抽象模型中声明,但必须在继承模型中声明。怎么做?有什么办法可以使用吗NotImplementedError

python django django-models

6
推荐指数
1
解决办法
1461
查看次数

Django-CMS - 全球占位符?

有没有办法在我的基本模板中创建全局占位符?我需要在每个页面上都相同(横幅列表).我怎样才能做到这一点?

django placeholder django-cms

6
推荐指数
2
解决办法
3216
查看次数

Docker组成生产?

我计划使用docker来构建我的开发和生产环境.我构建基于Django的应用程序.

在开发中我docker-compose用来管理所有本地容器.这是一个不错而方便的解决方案.我运行Django,3芹菜队列,rabbitmq,2 postgresql数据库.

但我的生产环境却截然不同.我需要运行gunicorn和nginx.此外,DB将使用AWS RDS运行.当然Django应用程序将需要更多的东西,比如不同的设置文件或更多的env vars.

我在徘徊如何划分它.我docker-compose也应该在那里吗?这将需要dev和prod的单独文件,将来可能更多用于登台等...如果是,如何部署它?使用Jenkins,拉,重启所有使用compose?

或者也许我应该使用ansible docker直接运行命令?但后来我不相信我的开发与现场相同,而且很难预测它的行为.

我喜欢在所有环境中运行撰写文件的想法,但我不确定是否为不同的环境维护多个文件是个好主意.Dev需要更少的环境和更少的配置.我可以使用env文件在生产中设置所有这些文件.但是我应该将我的实时设置保留在se repo中吗?以前我在配置时设置了所有env变量,这是一个单独的过程.现在看来配置和部署是一样的吗?也许这是Docker的方式?

provisioning ansible docker docker-compose

6
推荐指数
1
解决办法
3600
查看次数