#python #django
#python #django
Вопрос:
Мой PR в django-rest-framework для добавления в «гибридную разбивку на страницы» был отклонен по причине того, что лучше быть в стороннем пакете.
Итак, я пошел дальше и создал структуру пакета, но застрял в создании теста, если вы посмотрите на измененные файлы PR, мои новые тесты просто расширяют существующие тесты и изменены для использования моего нового класса разбивки на страницы.
class TestCombinedPaginationPageNumber(TestPageNumberPagination):
def setup(self):
class ExamplePagination(pagination.HybridPagination):
page_size = 5
self.pagination = ExamplePagination()
self.queryset = range(1, 101)
class TestCombinedPaginationLimitOffset(TestLimitOffset):
def setup(self):
class ExamplePagination(pagination.HybridPagination):
default_limit = 10
max_limit = 15
self.pagination = ExamplePagination()
self.queryset = range(1, 101)
У меня возникли проблемы с разработкой способа компоновки этих тестов в моих собственных сторонних тестах, я не могу расширить его удаленно, поскольку установка пакета не включает тестовые файлы. Я попытался скопировать конкретный test_pagination.py
файл, но получил много ошибок.
Ответ №1:
Исправьте, что вы не сможете включить тесты из pip install
пакета. Вам нужно будет клонировать любые фрагменты тестового примера, которые вы хотите реплицировать локально.
Я попытался скопировать конкретный test_pagination.py-файл, но выдает много ошибок.
Я бы предложил начать с малого. Возьмите один тестовый пример, который вы хотите воспроизвести. Скопируйте только этот, а также любой импорт, на который он опирается.
В более общем плане вам, вероятно, следует просто попытаться протестировать только те биты, которые добавляет ваш пакет, а не повторно тестировать поведение REST framework. Например, для вашего «переключения между стилями разбивки на страницы» не стремитесь проверять саму разбивку на страницы, а скорее поведение переключения.
Надеюсь, это поможет. Если у вас возникли какие-либо проблемы с устранением конкретных ошибок при написании тестового примера, пожалуйста, сообщите об этом в списке рассылки REST framework.