Skip to content

Instantly share code, notes, and snippets.

@paveltyavin
Last active August 29, 2015 14:17
Show Gist options
  • Save paveltyavin/87dedc93ecb565bc6d75 to your computer and use it in GitHub Desktop.
Save paveltyavin/87dedc93ecb565bc6d75 to your computer and use it in GitHub Desktop.
# coding=utf-8
from django.test import LiveServerTestCase
from selenium import webdriver
from selenium.common.exceptions import WebDriverException
from django.contrib.auth import get_user_model
User = get_user_model()
class AdminTestCase(LiveServerTestCase):
def setUp(self):
User.objects.create_superuser(
username='admin',
password='admin',
email='[email protected]'
)
try:
self.selenium = webdriver.PhantomJS()
except WebDriverException:
self.selenium = webdriver.Firefox()
self.selenium.maximize_window()
super(AdminTestCase, self).setUp()
def tearDown(self):
self.selenium.quit()
super(AdminTestCase, self).tearDown()
def test_create_user(self):
# Высчитываем кол-во текущих пользователей
count_1 = User.objects.all().count()
self.selenium.get(
'%s%s' % (self.live_server_url, "/admin/")
)
# Заполняем админскую форму для логина
username = self.selenium.find_element_by_id("id_username")
username.send_keys("admin")
password = self.selenium.find_element_by_id("id_password")
password.send_keys("admin")
# находим кнопку submit
element = self.selenium.find_element_by_xpath('//button[@type="submit"]')
self.assertNotEqual(element, None)
# кликаем
element.click()
self.selenium.get(
'%s%s' % (self.live_server_url, "/admin/app/user/add/")
)
# заполняем поля для нового пользователя
self.selenium.find_element_by_id("id_username").send_keys("test")
self.selenium.find_element_by_id("id_password1").send_keys("test")
self.selenium.find_element_by_id("id_password2").send_keys("test")
# Сабмитим форму
self.selenium.find_element_by_id("user_form").submit()
count_2 = User.objects.all().count()
# Кол-во пользователей должно увеличиться на 1
self.assertEqual(count_1, count_2 - 1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment