Comments 19
Спасибо! Я думаю, это отличное дополнение к Selenium.
Спасибо, много полезной инфы для меня.
Спасибо за свежий взгляд на 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'Регистрация'), например), т.е. то, на что на самом деле жмет пользователь (есть и другие возможности).
вот это круто
вот это круто
что-то битбакет плющит последние пару дней. где еще можно скачать твою ветку вебтеста?
Sign up to leave a comment.
Пишем функциональные/интеграционные тесты для проекта на django