跳转到主要内容

用于开发测试Armstrong的工具

项目描述

PyPI Version License

用于处理Armstrong应用程序开发的工具和类似工具

此包包含执行Armstrong包开发工作所需的一些各种辅助工具。如果您没有积极开发,或者使用Armstrong的开发版本,您可能不需要此包。

安装和配置

如果您只是对一个组件进行测试,Tox将获取它需要的所有内容,包括ArmDev。

  • pip install tox 并运行 tox

否则

  • pip install armstrong.dev invoke

Invoke不是严格必需的。ArmDev尽可能地保持精简,以支持快速创建虚拟环境,从而使多环境测试工具如TravisCI和Tox能够尽快完成。

许多Invoke任务都有自己的包要求,并且如果需要安装某些依赖项,它们会很好地通知您。

此组件支持Python 2.6和2.7上的Django 1.3、1.4、1.5、1.6和1.7。

用法

大多数Armstrong组件已经具有使用这些开发工具所需的配置。具体来说,组件需要tasks.pyenv_settings.py文件。假设它们都存在

invoke --list

查看所有可用命令的列表

invoke --help <cmd>

查看特定命令的帮助

一些任务接受可选的--extra参数,这被用作将任意参数传递给底层命令的通用方式。Invoke无法处理任意参数(如Fabric 1.x所能),因此这是我们的解决方案。两个一般规则:1) 将多个参数用引号括起来 2) kwargs需要使用“=”而不带空格(这是我们的限制,不是Invoke的限制)。例如:invoke test --extra "--verbosity=2" <path.to.app.test1> <path.to.app.test2>"

invoke install [--editable]

将组件“pip install”为可编辑安装,默认情况下。对于常规安装,使用--no-editable--editable=False

invoke test [--extra ...]

运行测试,其中–extra处理Django“manage.py test”命令接受的任何内容。

invoke coverage [--reportdir=<directory>] [--extra ...]

运行测试覆盖率。–extra的作用与“invoke test”相同,将任意参数传递给底层测试命令。–reportdir是HTML报告将创建的位置;默认情况下,该目录名为“htmlcov”或由.coveragerc文件设置的任何内容。

invoke managepy <cmd> [--extra ...]

运行任何Django“manage.py”命令,其中–extra处理任何任意参数。例如:invoke managepy shellinvoke managepy runserver --extra 9001

invoke create_migration [--initial]

为组件创建South迁移(在Django <1.7)。如果不使用–initial标志,则默认为“自动”迁移。

还有其他命令,但这些都是最有用的。请记住,各个组件可能还提供额外的Invoke任务。因此,运行invoke --list以发现它们。

组件设置

如果您正在创建一个新的Armstrong组件或更新一个使用2.0之前ArmDev的组件,您将需要创建(或移植到)以下两个文件

  1. 创建一个tasks.py并添加以下内容

    from armstrong.dev.tasks import *
    
    # any additional Invoke commands
    # ...
  2. 创建一个env_settings.py并添加以下内容

    from armstrong.dev.default_settings import *
    
    # any additional settings
    # it's likely you'll need to extend the list of INSTALLED_APPS
    # ...

虽然不是必需的,但只要您正在检查事物的总体状态,也要注意这些!

  • 审查requirements文件

  • 审查TravisCI配置

  • 删除Lettuce测试和需求

  • 添加一个tox.ini文件

  • 审查README文本和setup.py元数据

  • 使用Setuptools并修复任何不正确的命名空间

  • 将测试/移动到根目录以停止发送测试

  • 如果组件使用日志记录,请考虑使用logger = logging.getLogger(__name__)对其进行命名空间划分。

  • 添加一个CHANGES.rst文件并将其包含在MANIFEST中

  • 审查.gitignore。您可能希望忽略这些

    .tox/
    coverage*/
    *.egg-info

2.0中的显著变化

现在明确使用/要求 Setuptools 而不是 Distutils。

Invoke 替代了 Fabric,以实现更精简的安装,无需 SSH 和加密内容。Invoke 仍处于 1.0 版本之前,因此我们可能需要在以后进行一些调整。

本版本提供了一种更简单、更标准的方式来运行 Django 环境,使用组件特定的设置,无论是通过命令行还是通过导入。

它提供了一种“按需”需求方法。这意味着如果您运行一个需要尚未安装的包的 Invoke 命令,它将提示您安装它,而不是一开始就要求所有内容。这允许创建虚拟环境更快(这在测试中节省了大量时间),并且不会将您不使用的功能包污染虚拟环境。

测试覆盖率 将与自动化测试工具(如 TravisCI 和 Tox)配合得更好。这些命令现在也像 Django 的原生测试命令一样工作,因此您可以为运行选择性测试或更改输出详细程度传递参数。

设置现在在 env_settings.py 文件中以正常的 Django 风格定义,而不是在任务文件中的字典中。它不被称为“settings.py”,以使其更清晰,这些设置是为此组件的开发和测试而设置的,不一定是可以复制/粘贴以将组件合并到其他项目的值。

完整的更改列表和向后不兼容性列表可在 CHANGES.rst 中找到。

贡献

开发在 Github 上进行。欢迎参与!

  • 发现了错误?在 Github Issues 上提交。请提供尽可能多的细节,并确保列出特定组件,因为我们使用集中式、项目范围的错误跟踪器。

  • 有代码要提交?Fork 存储库,在主题分支上合并您的更改,并创建一个 pull request

  • 有问题、需要帮助、讨论?使用我们的 Google Group 邮件列表。

项目状态

Armstrong 是一个开源新闻平台,对任何组织都是免费提供的。它是德克萨斯州论坛(Texas Tribune)和调查报道中心(The Center for Investigative Reporting)合作的结果,并获得了约翰·S. 和詹姆斯·L. 基特基金会(John S. and James L. Knight Foundation)的资助。Armstrong 可作为完整的捆绑包和单独的独立组件提供。

项目详情


下载文件

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

源代码分发

armstrong.dev-2.1.0.tar.gz (18.5 kB 查看哈希值)

上传于

由以下支持