From d365038383842b9cbde21fd28c0dc64236596e5e Mon Sep 17 00:00:00 2001 From: Stefan Berglund <686610+boffman@users.noreply.github.com> Date: Wed, 23 Oct 2024 14:22:19 +0200 Subject: [PATCH] Closing open files in finally --- .../testdata/variables/test_csv_writer.py | 53 ++++++++++--------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/tests/unit/test_grizzly/testdata/variables/test_csv_writer.py b/tests/unit/test_grizzly/testdata/variables/test_csv_writer.py index 982b5336..dc7fec39 100644 --- a/tests/unit/test_grizzly/testdata/variables/test_csv_writer.py +++ b/tests/unit/test_grizzly/testdata/variables/test_csv_writer.py @@ -1,11 +1,12 @@ """Unit tests for grizzly.testdata.variable.csv_writer.""" from __future__ import annotations +from contextlib import suppress from typing import TYPE_CHECKING import pytest -from grizzly.testdata.variables.csv_writer import AtomicCsvWriter, atomiccsvwriter__base_type__, atomiccsvwriter_message_handler +from grizzly.testdata.variables.csv_writer import AtomicCsvWriter, atomiccsvwriter__base_type__, atomiccsvwriter_message_handler, open_files from grizzly.types.locust import Message if TYPE_CHECKING: # pragma: no cover @@ -39,37 +40,41 @@ def test_atomiccsvwriter__base_type__(grizzly_fixture: GrizzlyFixture) -> None: def test_atomiccsvwriter_message_handler(grizzly_fixture: GrizzlyFixture) -> None: - parent = grizzly_fixture() + try: + parent = grizzly_fixture() - destination_file = grizzly_fixture.test_context / 'requests' / 'foobar.csv' + destination_file = grizzly_fixture.test_context / 'requests' / 'foobar.csv' - assert not destination_file.exists() + assert not destination_file.exists() - message = Message('atomiccsvwriter', data={ - 'destination': 'foobar.csv', - 'row': { - 'foo': 'hello', - 'bar': 'world!', - }, - }, node_id=None) + message = Message('atomiccsvwriter', data={ + 'destination': 'foobar.csv', + 'row': { + 'foo': 'hello', + 'bar': 'world!', + }, + }, node_id=None) - atomiccsvwriter_message_handler(parent.user.environment, message) + atomiccsvwriter_message_handler(parent.user.environment, message) - assert destination_file.exists() - assert destination_file.read_text() == 'foo,bar\nhello,world!\n' + assert destination_file.exists() + assert destination_file.read_text() == 'foo,bar\nhello,world!\n' - message = Message('atomiccsvwriter', data={ - 'destination': 'foobar.csv', - 'row': { - 'foo': 'bar', - 'bar': 'foo', - }, - }, node_id=None) + message = Message('atomiccsvwriter', data={ + 'destination': 'foobar.csv', + 'row': { + 'foo': 'bar', + 'bar': 'foo', + }, + }, node_id=None) - atomiccsvwriter_message_handler(parent.user.environment, message) - - assert destination_file.read_text() == 'foo,bar\nhello,world!\nbar,foo\n' + atomiccsvwriter_message_handler(parent.user.environment, message) + assert destination_file.read_text() == 'foo,bar\nhello,world!\nbar,foo\n' + finally: + for open_file in open_files.values(): + with suppress(Exception): + open_file.close() class TestAtomicCsvWriter: def test___init__(self, grizzly_fixture: GrizzlyFixture, cleanup: AtomicVariableCleanupFixture) -> None: