Conversation
|
💩 Code linting failed, use |
Summary
|
|
💩 Code linting failed, use |
| ) | ||
| async def start_rental_session( | ||
| session_id, deadline_ts=Depends(validate_deadline_ts), user=Depends(UnionAuth(scopes=["rental.session.admin"])) | ||
| session_id: int, deadline_ts=Depends(validate_deadline_ts), user=Depends(UnionAuth(scopes=["rental.session.admin"])) |
| "auth_methods": ["string"], | ||
| "session_scopes": [{"id": 0, "name": "string"}], | ||
| "user_scopes": [{"id": 0, "name": "string"}], | ||
| "user_scopes": [ |
There was a problem hiding this comment.
если это сейчас ничего не делает зачем оставлять? удали
| ], # добавлен нужный скоуп "rental.session.admin" (по сути сейчас эта строка ничего не делает, но как в UnionAuth) | ||
| "scopes": [ | ||
| "rental.session.admin" | ||
| ], # добавлено для корректной работы прав в тесте test_admin_can_update_any_rental_session |
| "auth_methods": ["string"], | ||
| "session_scopes": [{"id": 0, "name": "string"}], | ||
| "user_scopes": [{"id": 0, "name": "string"}], | ||
| "user_scopes": [], |
There was a problem hiding this comment.
здесь тоже, зачем это? запускаю и проверяю у себя все локально, работает и без этого
| "user_scopes": [ | ||
| {"id": 1, "name": "rental.session.admin"} | ||
| ], # добавлен нужный скоуп "rental.session.admin" (по сути сейчас эта строка ничего не делает, но как в UnionAuth) | ||
| "scopes": [ | ||
| "rental.session.admin" | ||
| ], # добавлено для корректной работы прав в тесте test_admin_can_update_any_rental_session |
There was a problem hiding this comment.
убирай и возвращай как было, это не нужно, можешь сам запустить тесты без изменения этого кода и убедиться, что все корректно работает
| "user_scopes": [], | ||
| "scopes": [], |
| for i in item_types: | ||
| for item in i.items: | ||
| dbsession.delete(item) | ||
| dbsession.flush() | ||
| dbsession.delete(i) | ||
| dbsession.commit() |
There was a problem hiding this comment.
думаю что это не стоит удалять, попробуй лучше переработать падающий тест на delete item с этим кодом. и изучи логику удаления, вероятно с ней ошибка сейчас(изучить надо эндпоинт в первую очередь)
| 'session_id, right_status_code', | ||
| [ | ||
| (0, status.HTTP_200_OK), | ||
| # (1, status.HTTP_404_NOT_FOUND), |
There was a problem hiding this comment.
комменты оставлять так не надо, если не используется - убираем
| assert response.json()["status"] == RentStatus.EXPIRED | ||
|
|
||
|
|
||
| # Тест на начало уже активной сессии |
There was a problem hiding this comment.
этот коммент лишний, ты же добавил описание функции
| assert response.status_code == expected_status | ||
|
|
||
|
|
||
| # Тест для блокирующего кейса (параметризуется фикстурой blocking_session) |
There was a problem hiding this comment.
коммент лишний, вся суть должна быть отражена в документации к тесту(то что с тремя кавычками)
| check_object_update(item_fixture, session=dbsession, is_available=end_item_avail), | ||
| ): | ||
| if case_name == "available_item": | ||
| item = request.getfixturevalue("available_item") |
There was a problem hiding this comment.
мне не нравится непрямое обращение к фикстуре с помощью getfixturevalue, лучше в аргументах функции указать требуемые фикстуры
Fix test_item and test_rental_session:
Все тесты работают.
Для test_item пофикшен тест test_delete_item.
В conftest.py:
Добавил новые фикстуры, необходимые для новых тестов, дабы в test_rental_session.py не было прямого обращения к БД. Также переписаны некоторые уже существующие фикстуры. Их изменения не влияют на другие файлы.
В test_rental_session.py:
Переписал уже существующие тесты, проверив их логику и работоспособность. Дописал новые. Также для ручки patch("/{session_id}") update_rental_session написал два теста на проверку прав для обычного пользователя и админа.
PS: Объединил несколько тестов в один и убрал тесты на скоупы