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)