Comments 19
Спасибо! Я думаю, это отличное дополнение к Selenium.
Спасибо, много полезной инфы для меня.
UFO just landed and posted this here
Спасибо за свежий взгляд на Django тестирование.
Моя статья про coverage, но со стандартным клиентом,
alarin.blogspot.com/2009/06/django-coverage.html
Моя статья про coverage, но со стандартным клиентом,
alarin.blogspot.com/2009/06/django-coverage.html
django-coverage — тоже, кстати, на coverage.py работает — и отчеты можно стандартные получать, указав COVERAGE_CUSTOM_REPORTS = False. django-coverage состоит из генератора этих кастомных отчетов (опционального) и клеевого кода для джанги, чтобы этот клеевой код не писать каждый раз, для простоты настройки вообщем.
Очень здорово, не знал о существовании это либы. Спасибо!
Интересный фреймворк.
Я пользуюсь несколько иной связкой: nosetests+tddspry(фреймворк подобный вашему, но построенный на основе twill). И кстати впервые слышу о проблемах с юникодом в twill. У нас отлично работает и сабмит форм, и поиск по отданых страницах.
Я пользуюсь несколько иной связкой: nosetests+tddspry(фреймворк подобный вашему, но построенный на основе twill). И кстати впервые слышу о проблемах с юникодом в twill. У нас отлично работает и сабмит форм, и поиск по отданых страницах.
Лох не парсер, а я. Прошу прощения за незакрытый тег.
Это интересно! У меня никак не работает вот это:
twill.follow(u'Форум')
и даже вот это:
twill.follow(u'Форум'.encode('utf8'))
twill подключен через wsgi_intercept, кодировка страниц — utf8. Если это все можно заставить работать и лох не твилл, то я бы убрал из статьи про нерабочий уникод, не хочется распространять несправедливые слухи.
twill.follow(u'Форум')
и даже вот это:
twill.follow(u'Форум'.encode('utf8'))
twill подключен через wsgi_intercept, кодировка страниц — utf8. Если это все можно заставить работать и лох не твилл, то я бы убрал из статьи про нерабочий уникод, не хочется распространять несправедливые слухи.
Сейчас по быстрому попробовал в шелле
Чуть позже попробую в тестах, поскольку мы обычно пользуемся конструкцией go('django_view_name', [args]).
>> [meako@meako_inspiron meako]$ twill-sh -= Welcome to twill! =- current page: *empty page* >> go "http://habr.ru" ==> at http://habrahabr.ru/ current page: http://habrahabr.ru/ >> follow "Люди" ==> at http://habrahabr.ru/people/ current page: http://habrahabr.ru/people/ >>
Чуть позже попробую в тестах, поскольку мы обычно пользуемся конструкцией go('django_view_name', [args]).
Попробовал в обыкновенном питоньем шелле:) Вышло довольно смешно:
Как вы поняли, передавать нужно строку а не юникодовый обьект.
>>> twill.commands.go("http://habr.ru") ==> at http://habrahabr.ru/ 'http://habrahabr.ru/' >>> twill.commands.follow("Люди") ==> at http://habrahabr.ru/people/ 'http://habrahabr.ru/people/' >>> twill.commands.follow(u"Люди") Traceback (most recent call last): File "<input>", line 1, in <module> File "/usr/lib/python2.6/site-packages/twill-0.9-py2.6.egg/twill/commands.py", line 202, in follow raise TwillAssertionError("no links match to '%s'" % (what,)) TwillAssertionError: <unprintable TwillAssertionError object>
Как вы поняли, передавать нужно строку а не юникодовый обьект.
Возможно, что-то в клеевом коде из django-test-utils все ломает, не знаю.
twill пробовал и с pypi, и из репозитория на гуглокоде (там пробовали доделать, но так и бросили опять год назад). Интересно, что последний mechanize сам по себе, без twill, ссылки печатает правильно.
#coding: utf-8 from django_webtest import WebTest from test_utils.utils import twill_runner as twill class TestTest(WebTest): fixtures = ['cities.city.json', 'users.json'] def testTwill(self): twill.setup() try: twill.go('/login/') twill.code(200) # все ок twill.showlinks() # печатает какую-то перекодированную несколько раз белиберду twill.follow('Регистрация') # валится с no links match to Регистрация finally: twill.teardown() def testWeb(self): page = self.app.get('/login/') page.click(u'Регистрация') # работает
twill пробовал и с pypi, и из репозитория на гуглокоде (там пробовали доделать, но так и бросили опять год назад). Интересно, что последний mechanize сам по себе, без twill, ссылки печатает правильно.
Да, еще момент — у вас общение идет по http, я проверял работу через wsgi, может еще в этом косяк.
У tddspry wsgi-intercept который мокает http соединение.
В двух словах:
Хотя, я посмотрел, автор tddspry недавно обновил код, и там уже по другому. Нужно будет разбираться:)
В двух словах:
from twill import add_wsgi_intercept, commands def setup(self): super(BaseHttpTestCase, self).setup() app = AdminMediaHandler(WSGIHandler()) add_wsgi_intercept(self.IP, self.PORT, lambda: app)
Хотя, я посмотрел, автор tddspry недавно обновил код, и там уже по другому. Нужно будет разбираться:)
>по ссылкам мы ходим, указывая их имя (.click(u'Регистрация'), например), т.е. то, на что на самом деле жмет пользователь (есть и другие возможности).
вот это круто
вот это круто
что-то битбакет плющит последние пару дней. где еще можно скачать твою ветку вебтеста?
Only those users with full accounts are able to leave comments. Log in, please.
Пишем функциональные/интеграционные тесты для проекта на django