我需要MockMixin为我的测试创建一些.它应该包括调用外部源的所有内容的模拟.例如,每次我在管理面板中保存模型时,我都会调用一些远程URL.如果嘲笑并使用那样的话会很好:
class ExampleTestCase(MockedTestCase):
# tests
Run Code Online (Sandbox Code Playgroud)
因此,每次我在管理员中保存模型时,例如在功能测试中,应用此模拟而不是调用远程URL.
这有可能吗?我能够为1个特定测试做到这一点,这不是问题.但是有一些全局模拟更有用,因为我经常使用它.
我想知道是否可以将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
是否可以通过JavaScript触发Flash对象上的click事件?
我正在尝试移植我的项目以使用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) 在验证并保存表单后,有没有办法获得字段标签文本?我尝试:
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) 我正在编写自定义管理员资料,需要在管理员中获取所有已注册的模型.这可能吗?我需要它在管理员索引页面上制作一些自定义视图.
我正在为大约 10 个模型构建一些抽象模型。我需要以某种方式使 1 个字段不在抽象模型中声明,但必须在继承模型中声明。怎么做?有什么办法可以使用吗NotImplementedError?
有没有办法在我的基本模板中创建全局占位符?我需要在每个页面上都相同(横幅列表).我怎样才能做到这一点?
我计划使用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的方式?
django ×7
python ×4
django-cms ×2
unit-testing ×2
ansible ×1
coverage.py ×1
django-1.7 ×1
django-admin ×1
django-forms ×1
django-views ×1
docker ×1
flash ×1
javascript ×1
jquery ×1
placeholder ×1
provisioning ×1
python-mock ×1