From 42db5b41dc898acaef5bc35ffaacb5da15b94d5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Chaves?= Date: Tue, 22 Oct 2019 18:31:19 +0200 Subject: [PATCH 1/2] Add a .gitiginore file --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ef5bca6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/.coverage +/.tox/ From 5d22e982373f9c8d9d9bfcdc7881bd1517fd7edb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Chaves?= Date: Tue, 22 Oct 2019 18:31:52 +0200 Subject: [PATCH 2/2] Cover how queue directories are not deleted when they have unexpected content --- queuelib/tests/test_queue.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/queuelib/tests/test_queue.py b/queuelib/tests/test_queue.py index 68fe9a7..b131473 100644 --- a/queuelib/tests/test_queue.py +++ b/queuelib/tests/test_queue.py @@ -1,6 +1,7 @@ import os import glob import pytest +from shutil import rmtree from queuelib.queue import ( FifoMemoryQueue, LifoMemoryQueue, FifoDiskQueue, LifoDiskQueue, @@ -166,6 +167,27 @@ def test_cleanup(self): assert not os.path.exists(self.qpath) +class DirectoryTestMixin(object): + + def test_cleanup_unclean(self): + """Test queue dir is not removed if it contains unexpected content""" + q = self.queue() + values = [b'0', b'1', b'2', b'3', b'4'] + assert os.path.exists(self.qpath) + for x in values: + q.push(x) + + unexpected_file_path = os.path.join(self.qpath, 'unexpected') + open(unexpected_file_path, 'a').close() + + for x in values: + q.pop() + q.close() + assert os.path.exists(self.qpath) + assert os.path.exists(unexpected_file_path) + rmtree(self.qpath) + + class FifoMemoryQueueTest(FifoTestMixin, QueuelibTestCase): def queue(self): @@ -178,7 +200,7 @@ def queue(self): return LifoMemoryQueue() -class FifoDiskQueueTest(FifoTestMixin, PersistentTestMixin, QueuelibTestCase): +class FifoDiskQueueTest(FifoTestMixin, DirectoryTestMixin, PersistentTestMixin, QueuelibTestCase): def queue(self): return FifoDiskQueue(self.qpath, chunksize=self.chunksize)