From 38ea9d5902736ab8ca6c1667fef5b0f7dc033067 Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Sun, 13 Aug 2023 15:54:58 +0200 Subject: [PATCH] Simplified pipe test case, fixes tests on Windows --- test/test_util_pipe.py | 33 +++++++++------------------------ 1 file changed, 9 insertions(+), 24 deletions(-) diff --git a/test/test_util_pipe.py b/test/test_util_pipe.py index 2747a35fb..81e6e9fb9 100644 --- a/test/test_util_pipe.py +++ b/test/test_util_pipe.py @@ -3,6 +3,7 @@ # Picard, the next-generation MusicBrainz tagger # # Copyright (C) 2022 skelly37 +# Copyright (C) 2023 Philipp Wolfer # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -34,16 +35,6 @@ def pipe_listener(pipe_handler): return message -def pipe_writer(pipe_handler, to_send): - if not to_send: - return False - - while not pipe_handler.send_to_pipe(to_send): - pass - - return True - - class TestPipe(PicardTestCase): # some random name that is different on each run NAME = str(uuid.uuid4()) @@ -68,27 +59,21 @@ class TestPipe(PicardTestCase): "https://musicbrainz.org/recording/7cd3782d-86dc-4dd1-8d9b-e37f9cbe6b94", ) - pipe_listener_handler = pipe.Pipe(self.NAME, self.VERSION) - if pipe_listener_handler.path_was_forced: - pipe_writer_handler = pipe.Pipe(self.NAME, self.VERSION, args=None, forced_path=pipe_listener_handler.path) - else: - pipe_writer_handler = pipe.Pipe(self.NAME, self.VERSION) - - __pool = concurrent.futures.ThreadPoolExecutor() for message in to_send: - plistener = __pool.submit(pipe_listener, pipe_listener_handler) - pwriter = __pool.submit(pipe_writer, pipe_writer_handler, message) + __pool = concurrent.futures.ThreadPoolExecutor() + pipe_handler = pipe.Pipe(self.NAME, self.VERSION) + plistener = __pool.submit(pipe_listener, pipe_handler) res = "" # handle the write/read processes try: + pipe_handler.send_to_pipe(message) res = plistener.result(timeout=6) except concurrent.futures._base.TimeoutError: - pipe_writer_handler.send_to_pipe(pipe_writer_handler.MESSAGE_TO_IGNORE) - try: - pwriter.result(timeout=0.01) - except concurrent.futures._base.TimeoutError: - pipe_listener_handler.read_from_pipe() + pass + finally: + pipe_handler.stop() + __pool.shutdown() self.assertEqual(res, message, "Data is sent and read correctly")