pytest for Map Reduce
31 Oct 2021conftest.py
…
@pytest.fixture
def tmp_dir():
root_path = os.getcwd()
letters = string.ascii_lowercase
tmp_name = "".join(choice(letters) for _ in range(8))
return os.path.join(root_path, tmp_name)@pytest.fixture
def make_test_files(tmp_dir):
print(f"\ntest_files at {tmp_dir}")
os.makedirs(tmp_dir, exist_ok=True)
letters = string.ascii_lowercase
total_count = 0
for i in range(10):
with open(os.path.join(tmp_dir, "{:02d}.txt".format(i)), "w") as wf:
for j in range(randint(100, 200)):
line: str = "".join(choice(letters) for k in range(160)) + "\n"
total_count += 1
wf.write(line)
return total_count@pytest.fixture
def test_files_ready(request, make_test_files, tmp_dir):
total_count = make_test_files
def teardown_remove_temp():
print(f"\nremove {tmp_dir}")
remove_dir(tmp_dir)
request.addfinalizer(teardown_remove_temp)
return total_count@pytest.fixture
def elapsed_time():
start = datetime.now()
yield
elapsed = datetime.now() - start
print(f"\nruntime={elapsed.total_seconds():.3f}sec")