Closed drowsycoder closed 1 year ago
url = '/catalog/'
response = Client().get(url)
Не страшно, если url будет сразу в запросе Если не умещается на одной строке, можно использовать скобки с сишном стиле
С test_catalog_endpoint() всё норм, а вот остьное надо допилить
randint
нам не нужен, достаточно просто жёстко заданных, но взвешенно выбранных значений
Причём, нужно проверить больше (примерный список привёл в самом issue)
Слишком много функций Попробуй сгруппировать всё, потому что тестироваться будет примерно одинаково, с одним набором тестовых урлов Просто: 1) разные пути (надо перебрать); 2) путям будут соответствовать разные статусы в зависимсоти от их корректности или некорректности (входные данные можно, например, сгруппировать по статусам OK и NOT_FOUND и - это уже даже с учётом первого допника - перебирать по разным эндпоинтам)
Понимаю, что хотел оптимизировать тесты, собрав в одну функцию, но это плохой путь Если эндпоинты обрабатываются разными вьюхами, то и тесты на них должны располагаться в отдельных функциях
А как же проверки из списка выше? На число с ведущим нулём, числобуквенные строки, обычные строки, спецсимволы и т.п.
Что-то можно упростить для той же читаемости (здесь и тавтология, и лишняя переменная):
url = '/'
client = Client()
response = client.get(url)
Тем более, что нам пока не платят за количество строк кода :-D Разделять такое избыточно
cache.clear()
Цель? Избыточно
randint
убрал, а QUANTITY_CATALOGS
оставил
4.
cache.clear()
Без него ничего не работает. Нужно очистить кеш, чтобы счетчик обнулился.
Вроде всё сделал, только у меня работает адрес: http://127.0.0.1:8000/catalog/001/
Но в pk приходит 1
Я ведь не должен с этим что-то сделать? Вроде ведь нет, т.к. это встроенная штука?
С количеством тестов ок, разве что списки, которые используются в конкретных функциях, стоит в них и поместить Понимаю, что может казаться ухудшением читаемости, но здесь в приоритете логика
Тот момент, когда можно залезть чуть в проверку допника ещё на этапе проверки основного задания
Проверок эндпоинтов для приложения
catalog
мало Для основной проверки и проверки регулярки (которую посмотрю в рамках допника) можно продублировать один и тот же набор проверяемых случаев Давай проверим 0, 1, 01, 010, 10, 100, отрицательный ноль, отрицательное число, десятичную дробь, смесь из цифр и букв (когда цифры вначале, в середине, в конце, по краям), строки с некоторыми спецсимволами (типа $, %, ^..., но не теми, что для параметризации урла используются или для установки якоря)На перспективу сдачи допников подумать, что можно улучшить в тестах
Почитать про сабтест в свободное время: https://www.caktusgroup.com/blog/2017/05/29/subtests-are-best/ https://docs.python.org/3/library/unittest.html#distinguishing-test-iterations-using-subtests
Или про @parameterized можно
Тестируем на корректное, тестируем на некорректное. Группируем, оптимизируем Возможно, останется только что-то типа набора