示例#1
0
def test_update_build_status(app, f_projects):
    p = f_projects[0]
    bs = BuildStatus(
        repo_name="foobar",
        build_id="12345",
        href="http://example.com/afasdfgt",
        status="pending"
    )

    ProjectLogic.get_or_create_build_info_from_bs(p, bs)
    app.db.session.commit()

    build = ProjectLogic.get_or_create_build_info_from_bs(p, bs)
    status_updated_on_first = build.status_updated_on

    ProjectLogic.update_build_info_status(build, bs)
    app.db.session.commit()

    bi_list = DhBuildInfo.query.all()
    assert len(bi_list) == 1
    bi = bi_list[0]
    assert bi.id == bs.build_id
    assert bi.status == bs.status
    assert bi.status_updated_on == status_updated_on_first

    bs.status = "failed"
    ProjectLogic.update_build_info_status(build, bs)
    app.db.session.commit()

    bi_list = DhBuildInfo.query.all()
    assert len(bi_list) == 1
    bi = bi_list[0]
    assert bi.id == bs.build_id
    assert bi.status == bs.status
    assert bi.status_updated_on > status_updated_on_first