小编Chg*_*gad的帖子

如何在 GitHub README.md 中显示 Codecov.io 徽章?

正如标题中提到的,我如何添加一个类似于我的项目覆盖范围的 Codecov.io 徽章?

Codecov.io的文档中对此没有任何说明。

提前致谢。

html markdown code-coverage github badge

19
推荐指数
3
解决办法
7469
查看次数

测试 Celery Beat

我在 django 项目中处理 celery beat 任务,该项目定期创建数据库条目。我知道是因为当我像这样设置任务时:

芹菜.py:

from __future__ import absolute_import, unicode_literals

import os

from celery import Celery
from celery.schedules import crontab

app = Celery("clock-backend", broker=os.environ.get("RABBITMQ_URL"))

app.config_from_object("django.conf:settings", namespace="CELERY")
app.conf.beat_schedule = {

    'create_reports_monthly': {
        'task': 'project_celery.tasks.create_reports_monthly',
        'schedule': 10.0,
    },
}
app.autodiscover_tasks()
Run Code Online (Sandbox Code Playgroud)

并开始我的项目,它真的每 10 秒创建一个对象。

但我真正想做的是将它设置为每个月的第一天运行。

这样做我会改变"schedule": crontab(0, 0, day_of_month="1")

我的实际问题来了:我如何测试这是否真的有效?

通过测试,我指的是实际(单元)测试。

我尝试过的是使用名为freezegun的包。一个这样的测试看起来像这样:

def test_start_of_month_report_creation(self, user_object, contract_object, report_object):
    # set time to the last day of January
    with freeze_time("2019-01-31 23:59:59") as frozen_time:
        # let one second pass
        frozen_time.tick() …
Run Code Online (Sandbox Code Playgroud)

django time celerybeat

7
推荐指数
1
解决办法
1135
查看次数

Python:迭代一个月中的所有日子

有没有一种简单的方法来迭代给定月份的所有日子?

我想要一种方法,其中我正在迭代的对象具有作为datetime.date对象的日子。我已经找到了calendar模块及其Calendar类和相应的方法itermonthdates(year, month)

我的问题是生成的迭代器包含“填充”天来表示完整的周。例如,2019 年 7 月在星期三 (31) 结束。所以这一周是不完整的,并itermonthdates()添加了 8 月 1-4 日的日期。

我不想要这种行为。

我的第一个猜测是这样的:

from calendar import Calendar, monthrange
c = Calendar()

for date in list(c.itermonthdates(2019, 7))[:monthrange(2019, 7)[1]]:
    print(date)
Run Code Online (Sandbox Code Playgroud)

它的行为符合预期,但我不确定是否有更好、更优雅的方法来做到这一点。

python iteration date

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

标签 统计

badge ×1

celerybeat ×1

code-coverage ×1

date ×1

django ×1

github ×1

html ×1

iteration ×1

markdown ×1

python ×1

time ×1