Ejemplo n.º 1
0
def test_mood_get_all_success(db_session, test_mood_create):
    mood_create1, mood_create2 = test_mood_create
    mood1 = create_mood(db_session, mood_create1)
    mood2 = create_mood(db_session, mood_create2)

    response = client.get("/moods")

    assert response.status_code == 200
    json_response = jsonable_encoder(response.json())

    response_mood1 = next(mood for mood in json_response
                          if mood["public_id"] == mood1.public_id)
    response_mood2 = next(mood for mood in json_response
                          if mood["public_id"] == mood2.public_id)

    # Check they both exist
    assert response_mood1
    assert response_mood2

    # Check mood1 data is correct
    assert response_mood1["public_id"] == mood1.public_id
    assert response_mood1["name"] == mood_create1.name
    assert response_mood1["colour"] == mood_create1.colour.as_named()

    # Check mood2 data is correct
    assert response_mood2["public_id"] == mood2.public_id
    assert response_mood2["name"] == mood_create2.name
    assert response_mood2["colour"] == mood_create2.colour.as_named()
Ejemplo n.º 2
0
def test_mood_get_fails_with_invalid_id(db_session, test_mood_create):
    invalid_id = "invalid_id"
    mood_create, _ = test_mood_create
    create_mood(db_session, mood_create)

    response = client.get(f"/moods/{invalid_id}")
    json_response = response.json()

    assert response.status_code == 404
    assert json_response[
        "detail"] == f"The mood with id {invalid_id} does not exist"
Ejemplo n.º 3
0
def test_mood_get_success(db_session, test_mood_create):
    mood_create, _ = test_mood_create
    mood = create_mood(db_session, mood_create)

    response = client.get(f"/moods/{mood.public_id}")
    json_response = response.json()

    assert response.status_code == 200
    assert json_response["name"] == mood.name
    assert json_response["public_id"] == mood.public_id
    assert json_response["colour"] == mood_create.colour.as_named()
Ejemplo n.º 4
0
def default_moods(db_session):
    """
    Test fixture for creating the default template and moods
    """
    default_template = MoodTemplateCreate(name="Default Mood Template")
    mood_template = create_mood_template(db_session, default_template)

    awful = create_mood(
        db_session,
        MoodCreate(name="Awful",
                   colour="#e05f4e",
                   template_id=mood_template.public_id),
    )
    poor = create_mood(
        db_session,
        MoodCreate(name="Poor",
                   colour="#e28f53",
                   template_id=mood_template.public_id),
    )
    okay = create_mood(
        db_session,
        MoodCreate(name="Okay",
                   colour="#ede357",
                   template_id=mood_template.public_id),
    )
    great = create_mood(
        db_session,
        MoodCreate(name="Great",
                   colour="#5e95ed",
                   template_id=mood_template.public_id),
    )
    amazing = create_mood(
        db_session,
        MoodCreate(name="Amazing",
                   colour="#53d192",
                   template_id=mood_template.public_id),
    )
    return awful, poor, okay, great, amazing
Ejemplo n.º 5
0
def test_mood_get_all_with_template_id_success(db_session, test_mood_create):
    mood_create1, mood_create2 = test_mood_create
    mood1 = create_mood(db_session, mood_create1)
    mood2 = create_mood(db_session, mood_create2)
    response = client.get(f"/moods/?template_id={mood_create1.template_id}")

    assert response.status_code == 200
    json_response = jsonable_encoder(response.json())

    response_mood1 = next(mood for mood in json_response
                          if mood["public_id"] == mood1.public_id)
    # Shouldn't be able to find mood2
    with pytest.raises(StopIteration):
        next(mood for mood in json_response
             if mood["public_id"] == mood2.public_id)

    # Check they both exist
    assert response_mood1

    # Check mood1 data is correct
    assert response_mood1["public_id"] == mood1.public_id
    assert response_mood1["name"] == mood_create1.name
    assert response_mood1["colour"] == mood_create1.colour.as_named()
Ejemplo n.º 6
0
async def create_mood(mood: schema.MoodCreate, db: Session = Depends(get_db)):
    template = get_mood_template(db, mood.template_id)
    if not template:
        raise NoResourceWithIdError("mood_template", mood.template_id)
    return crud.create_mood(db, mood)