Beispiel #1
0
def test_post_tender_plan_success(app, tender, plan):
    response = app.post_json(
        "/tenders/{}/plans?acc_token={}".format(tender["data"]["id"],
                                                tender["access"]["token"]),
        {"data": {
            "id": plan["data"]["id"]
        }},
    )
    assert response.json["data"] == [{'id': plan["data"]["id"]}]

    response = app.get("/tenders/{}".format(tender["data"]["id"]))
    assert response.json["data"]["dateModified"] > tender["data"][
        "dateModified"]

    response = app.get("/plans/{}".format(plan["data"]["id"]))
    assert response.json["data"]["tender_id"] == tender["data"]["id"]
    assert response.json["data"]["dateModified"] > plan["data"]["dateModified"]

    # second plan
    response = app.post_json("/plans", {"data": deepcopy(test_plan_data)})
    another_plan = response.json

    response = app.post_json(
        "/tenders/{}/plans?acc_token={}".format(tender["data"]["id"],
                                                tender["access"]["token"]),
        {"data": {
            "id": another_plan["data"]["id"]
        }},
    )
    assert response.json["data"] == [{
        'id': plan["data"]["id"]
    }, {
        'id': another_plan["data"]["id"]
    }]
Beispiel #2
0
def search_complaint(app,
                     query=None,
                     auth=("Basic", ("bot", "bot")),
                     status=200):
    url = "/complaints/search"
    if query:
        url = "{}?{}".format(url, query)
    with change_auth(app, auth):
        response = app.get(url, status=status)
    assert response.status_code == status
    return response
Beispiel #3
0
def test_get_tender_plans_404(app):
    response = app.get("/tenders/{}/plans".format("a" * 32), status=404)
    assert response.json == {
        "status":
        "error",
        "errors": [{
            "location": "url",
            "name": "tender_id",
            "description": "Not Found"
        }]
    }
Beispiel #4
0
def test_complaint_value_change(app):
    """
    value should be calculated only once for a complaint
    """
    test_tender_data["value"]["amount"] = 1000  # we want minimum complaint value
    tender = create_tender(app, test_tender_data)
    with patch("openprocurement.tender.core.models.RELEASE_2020_04_19", get_now() - timedelta(days=1)):
        response = app.post_json(
            "/tenders/{}/complaints".format(tender["data"]["id"]),
            {"data": complaint_data},
        )
    response_data = response.json["data"]
    assert "value" in response_data
    expected_value = {"currency": "UAH", "amount": COMPLAINT_MIN_AMOUNT}
    assert response_data["value"] == expected_value

    # if we deploy new constant values the value shouldn't change
    with patch("openprocurement.tender.core.models.COMPLAINT_MIN_AMOUNT", 40):
        response = app.get("/tenders/{}".format(tender["data"]["id"]))
        complaint = response.json["data"].get("complaints")[0]
        assert complaint["value"] == expected_value
Beispiel #5
0
def test_get_tender_plans_empty(app, tender):
    response = app.get("/tenders/{}/plans".format(tender["data"]["id"]))
    assert response.status == "200 OK"
    assert response.json == {"data": []}