Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
def _create_user():
username = ''.join(random.sample(string.lowercase, 8))
email = username + '@gmail.com'
password = username.upper()
user = User.objects.create_user(**locals())
user.data = {'username': username, 'password': password}
return user
# и потом в коде
user = _create_user()
response = self.client.post(settings.LOGIN_URL, user.data)
...
class AuthTest(WebTest):
fixtures = ['users.json']
def test_login(self)
form = self.app.get(reverse('auth_login')).form
form['username'] = 'foo'
form['password'] = 'bar'
response = form.submit().follow()
self.assertEqual(response.context['user'].username, 'foo')
Я сам с трудом понимаю какие там имена у полей формы.
DATABASES = {
'default': {
#...
},
# база для тестирования приложения
'slave': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
'TEST_MIRROR': 'default',
# если не добавить эту строку, тесты не будут выполняться
# бд, содержащаяся в памяти, не поддерживает транзакции
'SUPPORTS_TRANSACTIONS': 'False',
},
}
Пускалка (на языке оригинала — test runner) найдет юнит- и доктесты
Doctests will no longer be automatically discovered. To integrate doctests in your test suite, follow the recommendations in the Python documentation
Тестирование проектов Django