김도균
@dkim72409371
수강평 작성수
8
평균평점
5.0
게시글
질문&답변
351쪽 질문
앗, 362쪽에 코드를 제공해주셨네요. 죄송합니다 ^^;
- 0
- 2
- 31
질문&답변
4주 2회차 과제 질문
작가님 빠른 답변 감사 드립니다! 죄송합니다. 제가 파이썬과 Fast API 입문한 지 얼마 안되서 그런지 아직 과제 요구 사항이 이해가 잘 되지 않습니다 ㅜㅜ. 아래 책의 예제 test_timeslot_api.py 에서 작가님 말씀을 참조하여, 18시 - 19시 정각 타임 슬롯을 먼저 생성 후, 테스트 케이스로 18시 30분 부터 19시 10분까지 진행되는 타임슬롯을 추가 하려는 테스트를 해보았는데, 중복 검사 테스트를 통과 하였습니다. 책 309쪽에서 작가님이 제공해주신 아래 코드가 모든 타임 슬롯 중복 검사를 잘 하는 것 같습니다. stmt = select(TimeSlot).where( and_( TimeSlot.calendar_id == user.calendar.id, TimeSlot.start_time payload.start_time ) ) result = await session.execute(stmt) existing_time_slots = result.scalars().all() for existing_time_slot in existing_time_slots: if any(day in existing_time_slot.weekdays for day in payload.weekdays): raise TimeSlotOverlapError()@pytest.mark.parametrize("start_time, end_time, weekdays, expected_status_code", [ (time(18, 30), time(19, 10), [calendar.MONDAY], status.HTTP_422_UNPROCESSABLE_CONTENT), ]) @pytest.mark.usefixtures("host_user_calendar") async def test_겹치는_시간대가_있는_경우_HTTP_422_응답을_한다( client_with_auth: TestClient, start_time: time, end_time: time, weekdays: list[int], expected_status_code: int, ): # 첫 번째 타임슬롯 생성 payload = { "start_time": time(18, 00).isoformat(), "end_time": time(19, 00).isoformat(), "weekdays": [calendar.MONDAY, calendar.TUESDAY, calendar.WEDNESDAY], } response = client_with_auth.post("/time-slots", json=payload) assert response.status_code == status.HTTP_201_CREATED # 두 번째 타임슬롯 생성 시도 payload = { "start_time": start_time.isoformat(), "end_time": end_time.isoformat(), "weekdays": weekdays, } print (payload) response = client_with_auth.post("/time-slots", json=payload) assert response.status_code == expected_status_code
- 0
- 3
- 32
고민있어요
수강기간 연장
- 0
- 1
- 314




