Python: Как выполнить контурную привязку к существующим тестам при разработке сторонних пакетов

#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.