Привет, парни.
Есть некий класс с двумя тестами внутри. Первый тест модифицирует переменную, которую нужно расшарить с другими тестами. К сожалению __init__ нельзя пихать в классы, т.к. pytest ругается. Как это сделать правильно и с наименьшей болью?
cat foo.py
import pytest
class TestFoo:
data = None
def test_one(self):
print('data=', self.data)
self.data = 10
print('data=', self.data)
def test_two(self):
print('data=', self.data)
выхлоп:
pytest foo.py -v -s
============================================================================================================= test session starts =============================================================================================================
platform linux -- Python 3.7.3, pytest-5.0.1, py-1.5.3, pluggy-0.12.0 -- /usr/bin/python3.7
cachedir: .pytest_cache
metadata: {'Python': '3.7.3', 'Platform': 'Linux-5.1.5-x86_64-with-glibc2.2.5', 'Packages': {'pytest': '5.0.1', 'py': '1.5.3', 'pluggy': '0.12.0'}, 'Plugins': {'metadata': '1.8.0', 'html': '1.20.0', 'hypothesis': '3.66.6', 'expect': '1.1.0'}}
rootdir: /tmp
plugins: metadata-1.8.0, html-1.20.0, hypothesis-3.66.6, expect-1.1.0
collected 2 items
foo.py::TestFoo::test_one data= None
data= 10
PASSED
foo.py::TestFoo::test_two data= None
PASSED
========================================================================================================== 2 passed in 0.01 seconds ===========================================================================================================