Python: как piggyback на существующих тестах при разработке пакетов сторонних производителей

Мой 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)

У меня возникли проблемы с разработкой способа piggyback этих тестов в моих собственных сторонних тестах, я не могу расширить его удаленно, так как установка пакета не включает тестовые файлы. Я попытался скопировать конкретный test_pagination.pyфайл, но получил много ошибок.

1 ответ

  1. Исправьте, что вы не сможете включить тесты из pip installпакета. Вам нужно будет клонировать те биты тестового набора, которые вы хотите реплицировать локально.

    Я попытался скопировать конкретное test_pagination.py файл, но получает много ошибок.

    Я бы предложил начать с малого. Возьмите один тестовый случай, который нужно скопировать. Скопируйте только этот, а также любой импорт, на который он полагается.

    В более общем случае вы, вероятно, должны просто попытаться исключительно протестировать биты, которые добавляет ваш пакет, а не повторно тестировать поведение Rest framework. Например, для вашего «переключения между стилями разбиения на страницы», не стремитесь проверить саму разбиение на страницы, а скорее поведение переключения.

    Надеюсь, это поможет. Если у вас есть какие-либо проблемы с разрешением конкретных ошибок при написании тестового набора, пожалуйста, кричите в списке рассылки Rest framework.