Exemple #1
0
def test_create_offer_200_from_two_different_accounts():
    """
    Тест проверяет фунцию создания офферов с двух разных аккаунтов на один ивент.
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(
        f"{HOST}/events",
        headers=x_auth_token,
        json=info
    )

    assert create_event_response.status_code == 200, create_event_response.text

    event_id = create_event_response.json()["ID"]

    sign_up_response_2 = sign_up()

    assert sign_up_response_2.status_code == 200, sign_up_response_2.text

    account_id_2 = sign_up_response_2.json()["Account"]["ID"]
    x_auth_token_2 = {"X-Auth-Token": sign_up_response_2.json()["Token"]}

    create_offer_response = requests.post(
        f"{HOST}/offers",
        headers=x_auth_token_2,
        json={
            "AccountID": account_id_2,
            "EventID": event_id
        }
    )

    assert create_offer_response.status_code == 200, create_offer_response.text

    sign_up_response_3 = sign_up()

    assert sign_up_response_3.status_code == 200, sign_up_response_2.text

    account_id_3 = sign_up_response_3.json()["Account"]["ID"]
    x_auth_token_3 = {"X-Auth-Token": sign_up_response_3.json()["Token"]}

    create_offer_response = requests.post(
        f"{HOST}/offers",
        headers=x_auth_token_3,
        json={
            "AccountID": account_id_3,
            "EventID": event_id
        }
    )

    assert create_offer_response.status_code == 200, create_offer_response.text
Exemple #2
0
def test_repeated_create_offer_400():
    """
    По бизнес-логике запрещено создавать два оффера c одного аккаунта на один ивент.
    """

    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_token = {"X-Auth-Token": sign_up_response.json()["Token"]}

    create_events_response = requests.post(
        f"{HOST}/events",
        headers=account_token,
        json=create_valid_account_info()
    )

    assert create_events_response.status_code == 200, create_events_response.text

    event_id = create_events_response.json()["ID"]

    sign_up_response_2 = sign_up()

    assert sign_up_response_2.status_code == 200, sign_up_response_2.text

    account_id_2 = sign_up_response_2.json()["Account"]["ID"]
    account_2_token = {"X-Auth-Token": sign_up_response_2.json()["Token"]}

    create_offer_response_1 = requests.post(
        f"{HOST}/offers",
        headers=account_2_token,
        json={
            "AccountID": account_id_2,
            "EventID": event_id
        }
    )

    assert create_offer_response_1.status_code == 200, create_offer_response_1.text

    create_offer_response_2 = requests.post(
        f"{HOST}/offers",
        headers=account_2_token,
        json={
            "AccountID": account_id_2,
            "EventID": event_id
        }
    )
    assert create_offer_response_2.status_code == 400, create_offer_response_2.text
    assert "fails" in create_offer_response_2.text
Exemple #3
0
def test_update_events_owner_id_not_nil():
    """
    ID аккаунта не может ровняться нулю.
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(
        f"{HOST}/events",
        headers=x_auth_token,
        json=info
    )

    assert create_event_response.status_code == 200, create_event_response.text

    event_id = create_event_response.json()["ID"]

    event = create_valid_event_info(account_id)
    del event["OwnerID"]

    update_event_response = requests.put(
        f"{HOST}/events/{event_id}",
        headers=x_auth_token,
        json=event
    )

    assert update_event_response.status_code == 200, update_event_response.text
    assert update_event_response.json()["OwnerID"] != 0
Exemple #4
0
def test_check_timlines_not_nil():
    """
    Таймлайн ивента не должен быть нулём. Issue #41.
    """

    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(f"{HOST}/events",
                                          headers=x_auth_token,
                                          json=info)

    assert create_event_response.status_code == 200, create_event_response.text

    event_id = create_event_response.json()["ID"]

    event_info_response = requests.get(f"{HOST}/events/{event_id}")
    assert event_info_response.status_code == 200, event_info_response.text

    event_info = event_info_response.json()
    timlelines = event_info["Timelines"]

    assert timlelines
Exemple #5
0
def test_create_offer_400_id_doesnt_match():
    """
    Запрещено создавать оффер без подтверждения ID пользователя.
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_events_response = requests.post(
        f"{HOST}/events",
        headers=x_auth_token,
        json=info
    )

    assert create_events_response.status_code == 200, create_events_response.text

    event_id = create_events_response.json()["ID"]

    info['OwnerID'] = account_id + 1

    create_offer_response = requests.post(
        f"{HOST}/offers",
        headers=x_auth_token,
        json={
            "AccountID": info["OwnerID"],
            "EventID": event_id
        }
    )

    assert create_offer_response.status_code == 400, create_offer_response.text
    assert "this account" in create_offer_response.text
Exemple #6
0
def test_update_events_400_id_doesnt_match():
    """
    Запрещено обновлять ивент без подверждения ID пользователя. issues 54
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(
        f"{HOST}/events",
        headers=x_auth_token,
        json=info
    )

    assert create_event_response.status_code == 200, create_event_response.text

    event_id = create_event_response.json()["ID"]
    info['OwnerID'] = account_id + 1

    update_event_response = requests.put(
        f"{HOST}/events/{event_id}",
        headers=x_auth_token,
        json=info
    )

    assert update_event_response.status_code == 400, update_event_response.text
    assert "authorized" in update_event_response.text
Exemple #7
0
def test_update_events_400_description_is_empty():
    """
    Тест проверяет возникновение ошибки при обновлении ивента без ввода описания ивента.
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(
        f"{HOST}/events",
        headers=x_auth_token,
        json=info
    )

    assert create_event_response.status_code == 200, create_event_response.text

    event_id = create_event_response.json()["ID"]

    event = create_valid_event_info(account_id)
    event["Description"] = ""
    del event["OwnerID"]

    update_event_response = requests.put(
        f"{HOST}/events/{event_id}",
        headers=x_auth_token,
        json=event
    )

    assert update_event_response.status_code == 400, update_event_response.text
    assert "Description" in update_event_response.text
Exemple #8
0
def test_create_offer_on_your_account_400():
    """
    Запрещено создавать оффер на собственный ивент.
    """

    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(
        f"{HOST}/events",
        headers=x_auth_token,
        json=info
    )

    assert create_event_response.status_code == 200, create_event_response.text

    event_id = create_event_response.json()["ID"]

    create_offer_response = requests.post(
        f"{HOST}/offers",
        headers=x_auth_token,
        json={
            "AccountID": account_id,
            "EventID": event_id
        }
    )

    assert create_offer_response.status_code == 400, create_offer_response.text
    assert "fails" in create_offer_response.text
Exemple #9
0
def test_update_events_200():
    """
    Тест проверяет функцию обновления данных ивента с валидными данными.
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(
        f"{HOST}/events",
        headers=x_auth_token,
        json=info
    )

    assert create_event_response.status_code == 200, create_event_response.text

    event_id = create_event_response.json()["ID"]

    event = create_valid_event_info(account_id)
    del event["OwnerID"]

    update_event_response = requests.put(
        f"{HOST}/events/{event_id}",
        headers=x_auth_token,
        json=event
    )

    assert update_event_response.status_code == 200, update_event_response.text
Exemple #10
0
def test_create_event_timeline_is_not_in_the_present():
    """
    Таймлайн в ивенте разрешается устанавливать на 1 час позже чем время создания ивента. Тест проверяет
    возниконовение ошибки при создании ивента с таймлайном до этого часа.
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}

    info = create_valid_event_info(account_id)
    forbidden_time = datetime.now() + timedelta(minutes=55)

    info["Timelines"][0]["Start"] = forbidden_time.strftime(format_time)

    create_event_response_1 = requests.post(f"{HOST}/events",
                                            headers=x_auth_token,
                                            json=info)

    assert create_event_response_1.status_code == 400, create_event_response_1.text
    assert "early" in create_event_response_1.text

    create_event_response_2 = requests.post(f"{HOST}/events",
                                            headers=x_auth_token,
                                            json=info)

    assert create_event_response_2.status_code == 200, create_event_response_2.text
Exemple #11
0
def test_update_events_400_not_authorized():
    """
    Запрещено обновлять ивент без авторизации. issues 53
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(
        f"{HOST}/events",
        headers=x_auth_token,
        json=info
    )

    assert create_event_response.status_code == 200, create_event_response.text

    event_id = create_event_response.json()["ID"]

    update_event_response = requests.put(
        f"{HOST}/events/{event_id}",
        json=info
    )

    assert update_event_response.status_code == 400, update_event_response.text
    assert "X-Auth-Token" in create_event_response.text
Exemple #12
0
def test_create_offer_400_account_that_created_the_event_deleted():
    """
    Запрещено создавать оффер на событие, созданное аккаунтом, который был удален.
    """

    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    account_1_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_events_response = requests.post(
        f"{HOST}/events",
        headers=account_1_token,
        json=info
    )

    assert create_events_response.status_code == 200, create_events_response.text

    event_id = create_events_response.json()["ID"]

    delete_account_response = requests.delete(
        f"{HOST}/accounts/{account_id}",
        headers=account_1_token
    )

    assert delete_account_response.status_code == 204, delete_account_response.text

    sign_up_response_2 = sign_up()

    assert sign_up_response_2.status_code == 200, sign_up_response_2.text

    account_id_2 = sign_up_response_2.json()["Account"]["ID"]
    account_2_token = {"X-Auth-Token": sign_up_response_2.json()["Token"]}

    create_offer_response = requests.post(
        f"{HOST}/offers",
        headers=account_2_token,
        json={
            "AccountID": account_id_2,
            "EventID": event_id
        }
    )

    assert create_offer_response.status_code == 400, create_offer_response.text
Exemple #13
0
def test_create_offer():
    """
    Тест проверяет функцию создания оффера.
    """

    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(
        f"{HOST}/events",
        headers=x_auth_token,
        json=info
    )

    assert create_event_response.status_code == 200, create_event_response.text

    event_id = create_event_response.json()["ID"]

    sign_up_response_2 = sign_up()

    assert sign_up_response_2.status_code == 200, sign_up_response_2.text

    account_id_2 = sign_up_response_2.json()["Account"]["ID"]
    account_2_token = {"X-Auth-Token": sign_up_response_2.json()["Token"]}

    create_offer_response = requests.post(
        f"{HOST}/offers",
        headers=account_2_token,
        json={
            "AccountID": account_id_2,
            "EventID": event_id
        }
    )

    assert create_offer_response.status_code == 200, create_offer_response.text
Exemple #14
0
def test_create_event_400_not_authorized():
    """
    Тест проверяет функцию создания ивентов не авторизованным пользователем.
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(f"{HOST}/events", json=info)

    assert create_event_response.status_code == 400, create_event_response.text
    assert "X-Auth-Token" in create_event_response.text
Exemple #15
0
def test_create_event_200():
    """
    Тест проверяет функцию создания ивентов с валидными данными.
    """
    sign_up_response = sign_up()
    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(f"{HOST}/events",
                                          headers=x_auth_token,
                                          json=info)

    assert create_event_response.status_code == 200, create_event_response.text
Exemple #16
0
def test_create_events_400_timeline_is_not_in_the_past():
    """
    Тест проверяет возниконовение ошибки при создании ивента с таймлайном который находится в прошедшем времени.
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}

    create_event_response = requests.post(
        f"{HOST}/events",
        headers=x_auth_token,
        json=create_invalid_event_info(account_id))

    assert create_event_response.status_code == 400, create_event_response.text
    assert "early" in create_event_response.text
Exemple #17
0
def test_update_events_info():
    """
    Тест проверяет обновление информации ивента. issue #56
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(
        f"{HOST}/events",
        headers=x_auth_token,
        json=info
    )

    assert create_event_response.status_code == 200, create_event_response.text

    event_id = create_event_response.json()["ID"]

    event = create_valid_event_info(account_id)
    event["Name"] += "test"
    event["Description"] += "test"
    event["IsPublic"] = True
    event["IsHidden"] = True

    update_event_response = requests.put(
        f"{HOST}/events/{event_id}",
        headers=x_auth_token,
        json=event
    )

    assert update_event_response.status_code == 200, update_event_response.text

    event_info_response = requests.get(f"{HOST}/events/{event_id}")
    event_info = event_info_response.json()

    assert event_info_response.status_code == 200, event_info_response.text
    assert event_info["Name"] == event["Name"]
    assert event_info["Description"] == event["Description"]
    assert event_info["IsPublic"] == event["IsPublic"]
    assert event_info["IsHidden"] == event["IsHidden"]
Exemple #18
0
def test_create_event_400_name_cant_be_empty():
    """
    Тест проверяет функцию создания ивентов с невалидными данными (Отсутствует значение ключа "Name" в теле запроса).
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)
    info["Name"] = ""

    create_event_response = requests.post(f"{HOST}/events",
                                          headers=x_auth_token,
                                          json=info)

    assert create_event_response.status_code == 400, create_event_response.text
    assert "Title" in create_event_response.text
Exemple #19
0
def test_update_events_added_two_timelines():
    """
    Тест проверяет добавление дополнительного таймлана в ивент.
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(
        f"{HOST}/events",
        headers=x_auth_token,
        json=info
    )

    assert create_event_response.status_code == 200, create_event_response.text

    event_id = create_event_response.json()["ID"]

    timelines_2 = {
        "Start": "2021-01-02T17:05:05Z",
        "End": "2021-01-02T18:06:05Z",
        "Place": "Saint Petersburg"
    }

    event = create_valid_event_info(account_id)
    event["Timelines"].append(timelines_2)
    del event["OwnerID"]

    update_event_response = requests.put(
        f"{HOST}/events/{event_id}",
        headers=x_auth_token,
        json=event
    )

    event_info = update_event_response.json()

    assert update_event_response.status_code == 200, update_event_response.text
    assert len(event_info["Timelines"]) == 2
Exemple #20
0
def test_update_events_timelines():
    """
    Тест проверяет обновление данных в таймлайне ивента.
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(
        f"{HOST}/events",
        headers=x_auth_token,
        json=info
    )

    assert create_event_response.status_code == 200, create_event_response.text

    event_id = create_event_response.json()["ID"]

    event = create_valid_event_info(account_id)
    event["Timelines"][0]["Start"] = "2022-08-02T13:43:09.535504Z"
    event["Timelines"][0]["End"] = "2022-08-03T13:43:09.535504Z"
    event["Timelines"][0]["Place"] = "Moscow"

    update_event_response = requests.put(
        f"{HOST}/events/{event_id}",
        headers=x_auth_token,
        json=event
    )

    assert update_event_response.status_code == 200, update_event_response.text

    event_info_response = requests.get(f"{HOST}/events/{event_id}")
    assert event_info_response.status_code == 200, event_info_response.text

    event_info = event_info_response.json()
    assert event_info["Timelines"] == event["Timelines"]
Exemple #21
0
def test_update_events_del_one_timelines():
    """
    Тест проверяет удаление одного из таймлайнов ивента.
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    event = create_valid_event_info(account_id)
    event["Timelines"].append(
        {
            "Start": "2021-01-02T17:05:05Z",
            "End": "2021-01-02T18:06:05Z",
            "Place": "Saint Petersburg"
        }
    )

    create_event_response = requests.post(
        f"{HOST}/events",
        headers=x_auth_token,
        json=event
    )

    assert create_event_response.status_code == 200, create_event_response.text

    event_id = create_event_response.json()["ID"]
    del event["Timelines"][1]

    update_event_response = requests.put(
        f"{HOST}/events/{event_id}",
        headers=x_auth_token,
        json=event
    )
    assert update_event_response.status_code == 200, update_event_response.text

    event_info = update_event_response.json()

    assert len(event_info["Timelines"]) == 1
Exemple #22
0
def test_event_info_200():
    """
    Тест проверяет функцию получения информации об ивенте.
    """

    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(f"{HOST}/events",
                                          headers=x_auth_token,
                                          json=info)

    assert create_event_response.status_code == 200, create_event_response.text

    event_id = create_event_response.json()["ID"]
    event_info_response = requests.get(f"{HOST}/events/{event_id}")

    assert event_info_response.status_code == 200, event_info_response.text
Exemple #23
0
def test_create_events_400_intersection_of_timelines():
    """
    Тест проверяет возниконовение ошибки при пересечении временных промежутков.
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    event = create_valid_event_info(account_id)
    event["Timelines"].append({
        "Start": "2021-01-02T17:05:05Z",
        "End": "2021-01-02T18:06:05Z",
        "Place": "Saint Petersburg"
    })

    create_event_response = requests.post(f"{HOST}/events",
                                          headers=x_auth_token,
                                          json=event)

    assert create_event_response.status_code == 400, create_event_response.text
    assert "crossing" in create_event_response.text
Exemple #24
0
def test_list_events_200():
    """
    Тест проверяет функцию получения списка ифентов у одного аккаунта.
    """

    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}
    info = create_valid_event_info(account_id)

    create_event_response = requests.post(f"{HOST}/events",
                                          headers=x_auth_token,
                                          json=info)

    assert create_event_response.status_code == 200, create_event_response.text

    list_events_response = requests.get(f"{HOST}/events",
                                        params={"account_id": account_id})

    assert list_events_response.status_code == 200, list_events_response.text
    assert type(list_events_response.json()) == list
Exemple #25
0
def test_create_events_400_start_after_end():
    """
    Запрещено задавать конец ивента раньше старта
    """
    sign_up_response = sign_up()

    assert sign_up_response.status_code == 200, sign_up_response.text

    account_id = sign_up_response.json()["Account"]["ID"]
    x_auth_token = {"X-Auth-Token": sign_up_response.json()["Token"]}

    create_event_response = requests.post(f"{HOST}/events",
                                          headers=x_auth_token,
                                          json={
                                              "Name":
                                              "1",
                                              "Description":
                                              "1",
                                              "OwnerID":
                                              account_id,
                                              "IsPublic":
                                              False,
                                              "isHidden":
                                              False,
                                              "Timelines": [{
                                                  "Start":
                                                  "2006-01-02T17:05:05Z",
                                                  "End":
                                                  "2005-01-02T18:06:05Z",
                                                  "Place":
                                                  "Saint Petersburg"
                                              }]
                                          })

    assert create_event_response.status_code == 400, create_event_response.text
    assert "Start" in create_event_response.text