-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat/test achievements #56
Conversation
В фикстуре auth_superuser заменил regicter_client на superuser
Тест запрета создания профиля напрямую без создания юзера Тест запрета удаления профиля
Переписал круд для получения групп с фильтацией по юзеру. Добавил ручку groups/me Добавил ручку патч Для ручки делет установил статус код 204 Добавил схему апдейта группы Добавил фикстуры для групп и тесты для групп
Добавил ручку получения текущим юзером своей группы по id. Переписал метод гет в круде группы, чтобы подтягивались данные relations. В модели юзера исправил отношения с группами. Изменил на лист. Добавил тест запрета доступа юзера к ручке groups/{group_id}. Добавил тест получения юзером своей группы через ручку groups/me/{group_id}, в этом же тесте запрет получения группы в которой не состоит и 404 если группа не существует.
Ручка гет всех ачивментс поменял депенденсис на суперюзера Добавил тесты запрета получения всех ачивментс юзером и неавторизованным
Добавил ручку получения юзером своих ачивментс Переписал get_users_obj для ачивмент
добавил ручку /me/{achievement_id} переписал круд get добавил тест на ручку /me/{achievement_id} рефакторинг теста речки /me
Добавил ручку апдейт Добавил схему для апдейта Добавил тест апдейта суперюзером
получение количества объектов вынесено в отделбную утилиту
dependencies=[Depends(current_user)] | ||
) | ||
async def get_self_achievements( | ||
user: User = Depends(current_user), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Думаю здесь тоже потребуется пагинация
) | ||
if achievement is None: | ||
raise HTTPException( | ||
status_code=404, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
404 заменить на fastapi status
) | ||
if user.id not in [_.id for _ in achievement.profiles]: | ||
raise HTTPException( | ||
status_code=403, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fastapi status
if user.id not in [_.id for _ in achievement.profiles]: | ||
raise HTTPException( | ||
status_code=403, | ||
detail='У выс нет этого achievement.' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Небольшая опечатка, заменить на 'вас'
session: AsyncSession = Depends(get_async_session) | ||
): | ||
"""Апдейт ачивмент.""" | ||
_achievement = await achievement_crud.get(achievement_id, session) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Надо при апдейте добавить check_obj_exists для проверки, есть ли объект в бд
self, | ||
db_session: AsyncSession, | ||
auth_superuser: TestClient | ||
): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Докстринг пропущен, лучше чтобы он уже везде здесь был
db_session: AsyncSession, | ||
auth_superuser: TestClient | ||
): | ||
"""Тест апдейта ачивмент суперюзером.""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Может добавить проверку, если ачивмента нет в бд?
Добавил ручки и тесты