Exemple #1
0
def test_patch_id_hit(client, db_session):
    """
    GIVEN database with employee
    WHEN /employee/{id} PATCH is called with the id of the employee
    THEN the employee is updated.
    """
    db_employee = models.Employee(id=1,
                                  name="name 1",
                                  division="division 1",
                                  salary=1.0)
    db_session.add(db_employee)
    db_session.flush()
    employee = {
        "id": db_employee.id,
        "name": "name 2",
        "division": "division 2",
        "salary": 2.0,
    }

    response = client.patch(
        f"/employee/{db_employee.id}",
        data=json.dumps(employee),
        headers={"Content-Type": "application/json"},
    )

    assert response.status_code == 200
    db_session.refresh(db_employee)
    assert db_employee.id == employee["id"]
    assert db_employee.name == employee["name"]
    assert db_employee.division == employee["division"]
    assert db_employee.salary == employee["salary"]
Exemple #2
0
def test_patch_id_miss(client, db_session):
    """
    GIVEN database with employee
    WHEN /employee/{id} PATCH is called with a different id
    THEN 404 is returned.
    """
    db_employee = models.Employee(id=1,
                                  name="name 1",
                                  division="division 1",
                                  salary=1.0)
    db_session.add(db_employee)
    db_session.flush()
    employee = {
        "id": 2,
        "name": "name 2",
        "division": "division 2",
        "salary": 2.0
    }

    response = client.patch(
        "/employee/2",
        data=json.dumps(employee),
        headers={"Content-Type": "application/json"},
    )

    assert response.status_code == 404
Exemple #3
0
def test_get_id_miss(client, db_session):
    """
    GIVEN database with employee
    WHEN /employee/{id} GET is called with a different id
    THEN 404 is returned.
    """
    db_employee = models.Employee(id=1,
                                  name="name 1",
                                  division="division 1",
                                  salary=1.0)
    db_session.add(db_employee)
    db_session.flush()

    response = client.get("/employee/2")

    assert response.status_code == 404
Exemple #4
0
def test_delete_id_hit(client, db_session):
    """
    GIVEN database with employee
    WHEN /employee/{id} DELETE is called with the id of the employee
    THEN the employee is updated.
    """
    db_employee = models.Employee(id=1,
                                  name="name 1",
                                  division="division 1",
                                  salary=1.0)
    db_session.add(db_employee)
    db_session.flush()

    response = client.delete(f"/employee/{db_employee.id}")

    assert response.status_code == 200
    db_employees = db_session.query(models.Employee).all()
    assert len(db_employees) == 0
Exemple #5
0
def test_get_id_hit(client, db_session):
    """
    GIVEN database with employee
    WHEN /employee/{id} GET is called with the id of the employee
    THEN the employee is returned.
    """
    db_employee = models.Employee(id=1,
                                  name="name 1",
                                  division="division 1",
                                  salary=1.0)
    db_session.add(db_employee)
    db_session.flush()

    response = client.get(f"/employee/{db_employee.id}")

    assert response.status_code == 200
    employee = response.json
    assert employee["id"] == db_employee.id
    assert employee["name"] == db_employee.name
    assert employee["division"] == db_employee.division
    assert employee["salary"] == db_employee.salary
Exemple #6
0
def test_get(client, db_session):
    """
    GIVEN database with employee
    WHEN /employee GET is called
    THEN the employee is returned.
    """
    db_employee = models.Employee(id=1,
                                  name="name 1",
                                  division="division 1",
                                  salary=1.0)
    db_session.add(db_employee)
    db_session.flush()

    response = client.get("/employee")

    assert response.status_code == 200
    employees = response.json
    assert len(employees) == 1
    employee = employees[0]
    assert employee["id"] == db_employee.id
    assert employee["name"] == db_employee.name
    assert employee["division"] == db_employee.division
    assert employee["salary"] == db_employee.salary