Size: a a a

testing_in_python

2020 June 30

T

Tishka17 in testing_in_python
под разными юзерами гоняй
источник

T

Tishka17 in testing_in_python
ладно, не важно.
источник

T

Tishka17 in testing_in_python
Видимо до запуска тестов надо сгенерировать
источник

СС

Сказочный Сникерс... in testing_in_python
Владислав Петров
Подскажите, нужно сгенерировать токен для юзера на несколько потоков тестов. Юзер один на все тесты. Как это сделать, что не генерился токен на каждый поток?
pytest xdist
pytest_configure
источник

S

Sergei in testing_in_python
может там не пайтест 🙂
источник

ВП

Владислав Петров... in testing_in_python
Sergei
может там не пайтест 🙂
изменил вопрос)
источник

СС

Сказочный Сникерс... in testing_in_python
def pytest_configure(config):
   # executes on each worker and master
   db = getmysqlconn()
   config.db = db

   if not hasattr(config, “slaveinput”):
       # do some setup only once per run on master
       



def pytest_unconfigure(config):
   # executes on each worker and master
   config.db.connection.close()

   if not hasattr(config, “slaveinput”):
       # do some teardown only once per run on master
источник

b

betzy in testing_in_python
слейв, мастер...
источник

Н

Нурсултан in testing_in_python
betzy
слейв, мастер...
источник

b

betzy in testing_in_python
источник

ВП

Владислав Петров... in testing_in_python
Сказочный Сникерс
def pytest_configure(config):
   # executes on each worker and master
   db = getmysqlconn()
   config.db = db

   if not hasattr(config, “slaveinput”):
       # do some setup only once per run on master
       



def pytest_unconfigure(config):
   # executes on each worker and master
   config.db.connection.close()

   if not hasattr(config, “slaveinput”):
       # do some teardown only once per run on master
спасибо! таким образом я получаю токен один раз
куда мне лучше его сохранить чтобы видели все потоки?
в данный момент сохраняется в переменную класса ConfigVars, и потоки его не видят
источник

b

betzy in testing_in_python
потоки и не увидят
источник

AR

Alexey Razinkov in testing_in_python
Сказочный Сникерс
def pytest_configure(config):
   # executes on each worker and master
   db = getmysqlconn()
   config.db = db

   if not hasattr(config, “slaveinput”):
       # do some setup only once per run on master
       



def pytest_unconfigure(config):
   # executes on each worker and master
   config.db.connection.close()

   if not hasattr(config, “slaveinput”):
       # do some teardown only once per run on master
db = getmysqlconn()
выполнится 1 раз перед тестами или в каждом потоке ?
источник

b

betzy in testing_in_python
можешь сетить его в базу и ходить с каждого потока в базу и забирать там токен
источник

СС

Сказочный Сникерс... in testing_in_python
Владислав Петров
спасибо! таким образом я получаю токен один раз
куда мне лучше его сохранить чтобы видели все потоки?
в данный момент сохраняется в переменную класса ConfigVars, и потоки его не видят
В конфиг как в примере
источник

СС

Сказочный Сникерс... in testing_in_python
Будет доступен из request.config
источник

СС

Сказочный Сникерс... in testing_in_python
А, тебе надо то что создалось на мастере прокинуть в воркер?
источник

СС

Сказочный Сникерс... in testing_in_python
Тогда хук pytest_configurenode
источник

СС

Сказочный Сникерс... in testing_in_python
Alexey Razinkov
db = getmysqlconn()
выполнится 1 раз перед тестами или в каждом потоке ?
В каждом. А вот иф уже рулит надо только на мастере или толькл на воркере
источник

СС

Сказочный Сникерс... in testing_in_python
Сказочный Сникерс
Тогда хук pytest_configurenode
Учти что не каждый объект получится в нем засеттить ибо каждый объект будет сериализован и потом десериализован, так как межпроцессорное взаимодействие
источник