47 lines
2.0 KiB
Python
47 lines
2.0 KiB
Python
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
|
|
from selenium.webdriver.firefox.webdriver import WebDriver
|
|
from selenium.webdriver.common.keys import Keys
|
|
from django.core import mail
|
|
from django.contrib.auth.models import User
|
|
from registration.models import Activation
|
|
from django.urls import reverse
|
|
import time
|
|
|
|
class MySeleniumTests(StaticLiveServerTestCase):
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
cls.selenium = WebDriver()
|
|
cls.selenium.implicitly_wait(10)
|
|
cls.selenium.maximize_window()
|
|
|
|
@classmethod
|
|
def tearDownClass(cls):
|
|
cls.selenium.quit()
|
|
super().tearDownClass()
|
|
|
|
def test_login(self):
|
|
self.selenium.get('%s%s' % (self.live_server_url, '/registration/'))
|
|
elem = self.selenium.find_element_by_name("username")
|
|
elem.send_keys("test_user")
|
|
elem = self.selenium.find_element_by_name("email")
|
|
elem.send_keys("test_user@test.ru")
|
|
elem = self.selenium.find_element_by_name("password1")
|
|
elem.send_keys("qwerty123")
|
|
elem = self.selenium.find_element_by_name("password2")
|
|
elem.send_keys("qwerty123", Keys.RETURN)
|
|
time.sleep(1)
|
|
user = User.objects.get(username="test_user")
|
|
self.assertEqual(str(user), "test_user")
|
|
key = Activation.objects.all()[0]
|
|
act_url = key.get_absolute_url()
|
|
# print(mail.outbox[0].body)
|
|
self.assertEqual(len(mail.outbox), 1)
|
|
self.assertEqual(mail.outbox[0].subject, "Deplodock. Завершение регистрации.")
|
|
self.assertEqual(mail.outbox[0].to[0], "test_user@test.ru")
|
|
self.assertRegexpMatches(mail.outbox[0].body, key.activation_key)
|
|
self.selenium.get('%s%s' % (self.live_server_url, act_url))
|
|
text = self.selenium.find_element_by_tag_name("body").text
|
|
self.assertEqual(text, "%s, ваш аккаунт активирован. Перейти в личный кабинет" % user)
|