Примеры использования Doctests в Django Agile / BDD
Я заинтересован в том, чтобы узнать, как проводить Док-тесты и юнит-тесты более гибким способом. Я нашел несколько уроков, которые кажутся разумными, но это всего лишь миниатюры. Что я действительно хотел бы увидеть, так это исходный код некоторых проектов Django, которые были разработаны в стиле BDD.
То, что мне неясно, это то, как вы обрабатываете объекты запросов и т. Д. У меня есть ситуация, когда я развернул свое приложение, и у меня совершенно другое поведение в производственной среде, которое я делал в разработке или даже из оболочки Python в рабочей среде. сервер. Я надеюсь, что некоторые Doctests помогут мне диагностировать это, а также откроют дверь для более гибкого процесса написания тестов в первую очередь.
В частности, вот код, который я пытаюсь проверить:
def match_pictures_with_products( queryset, number_of_images = 3):
products = []
i = 0
for product in queryset:
if i < ( number_of_images ):
image = product.imagemain_set.all()[:1]
product.photo_url = image[0].photo.url
products.append(product)
i += 1
return products
def index(request):
"""returns the top 10 most clicked products"""
products = Product.objects.all()[:10]
products = match_pictures_with_products( products, 10) .
return render_to_response('products/product_list.html', {'products': products})
Как мне создать Doctest, который гарантирует, что индекс возвращает 10 объектов?
Запросы Product, похоже, работают нормально из оболочки на рабочем сервере. Фактический сервер не возвращает никаких продуктов вообще.