From f5a71e421d1a3ed2b6f70956b710642650611666 Mon Sep 17 00:00:00 2001 From: Philip Lundrigan Date: Mon, 14 Nov 2016 12:30:11 -0700 Subject: [PATCH 1/3] Add support for Python 2 --- persistent_queue/__init__.py | 3 ++- tests/test_persistent_queue.py | 31 ++++++++++++++----------------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/persistent_queue/__init__.py b/persistent_queue/__init__.py index d37a7ed..24bff75 100644 --- a/persistent_queue/__init__.py +++ b/persistent_queue/__init__.py @@ -155,7 +155,8 @@ def flush(self): # the danger zone. _LOGGER.debug("Replacing old file with new file") - os.replace(temp_filename, os.path.join(self.path, self.filename)) + os.remove(os.path.join(self.path, self.filename)) + os.rename(temp_filename, os.path.join(self.path, self.filename)) self.file = self._open_file() _LOGGER.debug("Finished flushing the queue") diff --git a/tests/test_persistent_queue.py b/tests/test_persistent_queue.py index 1090702..1ebfc97 100644 --- a/tests/test_persistent_queue.py +++ b/tests/test_persistent_queue.py @@ -90,19 +90,18 @@ def test_pop(self): self.assertEqual(len(self.queue), 1) def test_pop_blocking(self): - done = False + done = [False] def func(): - nonlocal done time.sleep(1) - done = True + done[0] = True self.queue.push(5) t = threading.Thread(target=func) t.start() - self.assertFalse(done) + self.assertFalse(done[0]) data = self.queue.pop(blocking=True) - self.assertTrue(done) + self.assertTrue(done[0]) self.assertEqual(data, 5) self.assertEqual(len(self.queue), 0) @@ -133,40 +132,38 @@ def test_peek(self): self.assertEqual(self.queue.peek(0), []) def test_peek_blocking(self): - done = False + done = [False] def func(): - nonlocal done time.sleep(1) - done = True + done[0] = True self.queue.push(5) t = threading.Thread(target=func) t.start() - self.assertFalse(done) + self.assertFalse(done[0]) data = self.queue.peek(blocking=True) - self.assertTrue(done) + self.assertTrue(done[0]) self.assertEqual(data, 5) self.assertEqual(len(self.queue), 1) def test_peek_blocking_list(self): - done_pushing = False - done_peeking = False + done_pushing = [False] + done_peeking = [False] def func(): - nonlocal done_pushing for i in range(5): time.sleep(.1) self.queue.push(i) - self.assertFalse(done_peeking) - done_pushing = True + self.assertFalse(done_peeking[0]) + done_pushing[0] = True t = threading.Thread(target=func) t.start() data = self.queue.peek(5, blocking=True) - done_peeking = True - self.assertTrue(done_pushing) + done_peeking[0] = True + self.assertTrue(done_pushing[0]) self.assertEqual(data, [0, 1, 2, 3, 4]) self.assertEqual(len(self.queue), 5) From d109c569b5ca6e5c1ae23b7cd942f5ac786fa110 Mon Sep 17 00:00:00 2001 From: Philip Lundrigan Date: Mon, 14 Nov 2016 12:34:03 -0700 Subject: [PATCH 2/3] Update setup and tests for Python 2 --- .travis.yml | 1 + setup.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0b1e90a..018e7d1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,7 @@ sudo: false language: python cache: pip python: + - "2.7" - "3.4" - "3.5" install: diff --git a/setup.py b/setup.py index 9158162..f3e3244 100644 --- a/setup.py +++ b/setup.py @@ -25,8 +25,9 @@ "License :: OSI Approved :: MIT License", "Development Status :: 5 - Production/Stable", "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries :: Python Modules", From c3c55322afc83c64ac23a48525ebba09edcc64ac Mon Sep 17 00:00:00 2001 From: Philip Lundrigan Date: Tue, 15 Nov 2016 15:38:54 -0700 Subject: [PATCH 3/3] Add more versions of python to test --- .travis.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 018e7d1..a21176f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,15 @@ sudo: false language: python cache: pip -python: - - "2.7" - - "3.4" - - "3.5" +matrix: + fast_finish: true + include: + - python: "2.7" + - python: "3.4" + - python: "3.5" + - python: "3.6-dev" + allow_failures: + - python: "3.6-dev" install: - "pip install -r requirements_test.txt" script: