def test_create_working_day_by_user(client: TestClient, normal_user_token_headers: dict, db: Session) -> None: r = client.get(f"{settings.API_V1_STR}/users/me", headers=normal_user_token_headers) user_id = r.json()["id"] contract = create_random_contract(db, user_id=user_id) day_type = create_random_day_type(db) data = { "day": str(random_date_range(contract.start, contract.end)), "start": str(random_time_range(8, 12)), "end": str(random_time_range(14, 19)) } response = client.post( f"{settings.API_V1_STR}/working_days/" + f"?day_type_id={day_type.id}&contract_id={contract.id}", headers=normal_user_token_headers, json=data, ) assert response.status_code == 200 content = response.json() assert "id" in content assert content["day_type_id"] == day_type.id assert content["contract_id"] == contract.id assert content["day"] == data["day"] assert content["start"] == data["start"] assert content["end"] == data["end"]
def test_update_day_type_by_user(client: TestClient, normal_user_token_headers: dict, db: Session) -> None: day_type = create_random_day_type(db) data = {"name": "Foo4"} response = client.put(f"{settings.API_V1_STR}/day_types/{day_type.id}", headers=normal_user_token_headers, json=data) assert response.status_code == 400
def test_delete_day_type_by_user(client: TestClient, normal_user_token_headers: dict, db: Session) -> None: day_type = create_random_day_type(db) response = client.delete( f"{settings.API_V1_STR}/day_types/{day_type.id}", headers=normal_user_token_headers, ) assert response.status_code == 400
def test_delete_day_type_by_admin(client: TestClient, superuser_token_headers: dict, db: Session) -> None: day_type = create_random_day_type(db) response = client.delete( f"{settings.API_V1_STR}/day_types/{day_type.id}", headers=superuser_token_headers, ) assert response.status_code == 200 content = response.json() assert content["id"] == day_type.id assert content["name"] == day_type.name
def test_create_working_day_by_another_user(client: TestClient, normal_user_token_headers: dict, db: Session) -> None: user = create_random_user(db) contract = create_random_contract(db, user_id=user.id) day_type = create_random_day_type(db) data = { "day": str(random_date_range(contract.start, contract.end)), "start": str(random_time_range(8, 12)), "end": str(random_time_range(14, 19)) } response = client.post( f"{settings.API_V1_STR}/working_days/" + f"?day_type_id={day_type.id}&contract_id={contract.id}", headers=normal_user_token_headers, json=data, ) assert response.status_code == 400
def create_random_working_day( db: Session, user_id: int = None, nanny_id: int = None, day_type_id: int = None, contract_id: int = None, day: str = None, ) -> models.WorkingDay: if not user_id: user = create_random_user(db) user_id = user.id if not nanny_id: nanny = create_random_user(db) nanny_id = nanny.id if day_type_id: day_type = crud.day_type.get(db, id=day_type_id) else: day_type = create_random_day_type(db) if contract_id: contract = crud.contract.get(db, id=contract_id) else: contract = create_random_contract(db, user_id=user.id, nanny_id=nanny.id) if not day: day = random_date_range(contract.start, contract.end) start_time = random_time_range(8, 12) start = str(start_time) end_time = random_time_range(14, 19) end = str(end_time) working_day_in = WorkingDayCreate( day=day, start=start, end=end, ) return crud.working_day.create_with_owner( db=db, obj_in=working_day_in, day_type_id=day_type.id, contract_id=contract.id, )
def test_delete_working_day_by_user(client: TestClient, normal_user_token_headers: dict, db: Session) -> None: r = client.get(f"{settings.API_V1_STR}/users/me", headers=normal_user_token_headers) user_id = r.json()["id"] contract = create_random_contract(db, user_id=user_id) day_type = create_random_day_type(db) working_day = create_random_working_day(db, day_type_id=day_type.id, contract_id=contract.id) response = client.delete( f"{settings.API_V1_STR}/working_days/{working_day.id}", headers=normal_user_token_headers, ) assert response.status_code == 200 content = response.json() assert "id" in content assert "day_type_id" in content assert "contract_id" in content assert content["day"] == str(working_day.day) assert content["start"] == str(working_day.start) assert content["end"] == str(working_day.end)