Django selenium - StaticLiveServerTestCase - данные инициализированы setUpClass: данные доступны в первом вызванном методе, но не во втором вызванном методе
У меня проблема при инициализации данных в setUpClass со StaticLiveServerTestCase.
Я определил метод create_test_data() где я создаю все мои объекты (пользователь и т.д...).
Затем я определил метод класса с setUpClass (где вызывается create_test_data()) и 2 метода для 2 различных тестов.
Мой первый тест прошел, но не прошел второй. Похоже, что в то время как инициализированные данные доступны для первого метода/теста1, они больше не доступны для второго метода/теста2.
Тест пройден, если они выполняются раздельно.
Я пробовал использовать метод setUp и метод класса SetUpTestData, но ни то, ни другое не работает лучше.
test.py
def create_test_data():
# objects created
class L_access_menu_creation_patient_TestCase(StaticLiveServerTestCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.selenium = WebDriver()
cls.selenium.implicitly_wait(1)
cls.selenium.maximize_window()
cls.date_saisie = timezone.now()
cls.selenium.get(cls.live_server_url)
create_test_data()
# test1
def test_menu_create_available_admin(self):
username_input = self.selenium.find_element_by_name("username")
username_input.send_keys('admin')
password_input = self.selenium.find_element_by_name("password")
password_input.send_keys('admin')
# click sur le bouton 'connexion' pour valider login/mdp
self.selenium.find_element_by_xpath('/html/body/form/button').click()
# vérifier que le menu est affiché
self.assertTrue(self.selenium.find_element_by_id('createmenu').is_enabled())
# click sur le bouton 'deconnexion'
self.selenium.find_element_by_id('dropdownMenuButton').click()
self.selenium.find_element_by_xpath('/html/body/nav/div/div/a[3]').click()
# test2
def test_menu_create_available_test1(self):
# add permission to user test1
self.test1 = User.objects.get(username='test1')
content_type = ContentType.objects.get_for_model(Patient)
permission = Permission.objects.get(
codename='add_patient',
content_type=content_type,
)
self.test1.user_permissions.add(permission)
# same test as above for admin user
возникла ошибка: django.contrib.auth.models.User.DoesNotExist: User matching query does not exist.