Size: a a a

testing_in_python

2021 April 05

AR

Alex Radchenko in testing_in_python
Коллеги небольшой вопрос.
Есть задача перед каждым тестовым классом создавать окружение (Юзеров с параметрами + определенные действия) какоим образом это лучше оранизовать?
источник

EB

Evgenii B in testing_in_python
1. Завести классовую фикстуру
2. Положить в неё код работающий с хранилищем приложения. Например , orm обертка над mysql
3. В session фикстуру перед началом всех тестов делать очистку базы
источник

EB

Evgenii B in testing_in_python
Не очень понятно из твоего вопроса, что не нашлось в Гугл. Кажется как будто у тебя есть подозрения что что-то не получится, но ты их не озвучиваешь. Сделай как-нибудь, оцени своё решение с точки зрения лёгкости поддержки / внесения изменений / нагрузки на базу/приложение
источник

СС

Сказочный Сникерс... in testing_in_python
нагрузки на базу)))
источник

AR

Alex Radchenko in testing_in_python
Evgenii B
1. Завести классовую фикстуру
2. Положить в неё код работающий с хранилищем приложения. Например , orm обертка над mysql
3. В session фикстуру перед началом всех тестов делать очистку базы
У основной вопрос в параметиризации этой фикстуры. Не понимаю как это всё организовать. Условно говоря хочется иметь общую фикстуру в которую передавать параметр допустим {"users":{"u1":['role1'],"u2":['role2'] }}
источник

СС

Сказочный Сникерс... in testing_in_python
пусть фикстура вызывает метод. метод определяется в классе теста под этот тест. и в self сохраняет что оно там насоздавало
источник

СС

Сказочный Сникерс... in testing_in_python
фикстура тоже в классе конечно же
источник

СС

Сказочный Сникерс... in testing_in_python
class Base:
     
     @pytest.fixture(scope='function', autouse=True)
     def setup():
            if hasattr(self, 'prepare'):
                   self.prepare()


class Test(Base):

   def prepare(self):
         self.user = db.create_user()

   def test(self):
         self.driver.login(self.user)
источник

AR

Alex Radchenko in testing_in_python
Сказочный Сникерс
class Base:
     
     @pytest.fixture(scope='function', autouse=True)
     def setup():
            if hasattr(self, 'prepare'):
                   self.prepare()


class Test(Base):

   def prepare(self):
         self.user = db.create_user()

   def test(self):
         self.driver.login(self.user)
Спасибо попробую.
источник

СС

Сказочный Сникерс... in testing_in_python
или еще проще


class Base:
     
     def prepare(self):
           pass

     @pytest.fixture(scope='function', autouse=True)
     def setup():
            self.prepare()


class Test(Base):

   def prepare(self):
         self.user = db.create_user()

   def test(self):
         self.driver.login(self.user)
источник

СС

Сказочный Сникерс... in testing_in_python
все тесты наследуются от базового и готовят себе окружение. так генерация данных отделена от тестов
источник

СС

Сказочный Сникерс... in testing_in_python
можно ще билдер отдельный написать под каждую группу тестов, а в prepare этим билдером пользоваться
источник

NR

Nikolay Romeiko in testing_in_python
Сказочный Сникерс
можно ще билдер отдельный написать под каждую группу тестов, а в prepare этим билдером пользоваться
а если у меня есть класс с тестами и в этом же тест_файле фикстура вне класса, которую использую только в этом наборе тестов? это плохой подход?
источник

IS

Idi Suda in testing_in_python
Nikolay Romeiko
а если у меня есть класс с тестами и в этом же тест_файле фикстура вне класса, которую использую только в этом наборе тестов? это плохой подход?
Нормальный
источник

NR

Nikolay Romeiko in testing_in_python
Idi Suda
Нормальный
спасибо
источник
2021 April 06

НБ

Никита Боярин... in testing_in_python
Дамы и господа, скажите пожалуйста, в чем моя проблема? Судя по всему в несовпадении Хрома и ХД,  но на сайте конкретно своей версии (88.0.4324.182) не находил. Было у кого похожее?
источник

СС

Сказочный Сникерс... in testing_in_python
Никита Боярин
Дамы и господа, скажите пожалуйста, в чем моя проблема? Судя по всему в несовпадении Хрома и ХД,  но на сайте конкретно своей версии (88.0.4324.182) не находил. Было у кого похожее?
какая версия ХД в итоге то?
источник

НБ

Никита Боярин... in testing_in_python
Сказочный Сникерс
какая версия ХД в итоге то?
88.0.4324.96/
источник

СС

Сказочный Сникерс... in testing_in_python
ХД в PATH?

chromedriver --version
источник

НБ

Никита Боярин... in testing_in_python
да
ChromeDriver 88.0.4324.96 (
источник