Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-queuelib for openSUSE:Factory 
checked in at 2026-03-23 17:12:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-queuelib (Old)
 and      /work/SRC/openSUSE:Factory/.python-queuelib.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-queuelib"

Mon Mar 23 17:12:10 2026 rev:8 rq:1341870 version:1.9.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-queuelib/python-queuelib.changes  
2025-05-30 17:26:27.058045983 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-queuelib.new.8177/python-queuelib.changes    
    2026-03-23 17:12:43.904088173 +0100
@@ -1,0 +2,8 @@
+Sun Mar 22 16:53:01 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 1.9.0:
+  * Added support for Python 3.14
+  * Removed support for Python 3.9 and PyPy 3.10
+  * Improved linting and CI configuration
+
+-------------------------------------------------------------------

Old:
----
  queuelib-1.8.0.tar.gz

New:
----
  queuelib-1.9.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-queuelib.spec ++++++
--- /var/tmp/diff_new_pack.41wYvG/_old  2026-03-23 17:12:44.700121327 +0100
+++ /var/tmp/diff_new_pack.41wYvG/_new  2026-03-23 17:12:44.700121327 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-queuelib
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,15 +18,14 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-queuelib
-Version:        1.8.0
+Version:        1.9.0
 Release:        0
 Summary:        Collection of Persistent (Disk-Based) Queues
-License:        BSD-2-Clause
+License:        BSD-3-Clause
 URL:            https://github.com/scrapy/queuelib
 Source:         
https://files.pythonhosted.org/packages/source/q/queuelib/queuelib-%{version}.tar.gz
 BuildRequires:  %{python_module hatchling}
 BuildRequires:  %{python_module pip}
-BuildRequires:  %{python_module setuptools}
 BuildRequires:  %{python_module wheel}
 BuildRequires:  %{pythons}
 BuildRequires:  fdupes
@@ -55,7 +54,7 @@
 %python_expand %fdupes %{buildroot}%{$python_sitelib}
 
 %check
-%pyunittest discover -v
+%pytest
 
 %files %{python_files}
 %doc README.rst NEWS

++++++ queuelib-1.8.0.tar.gz -> queuelib-1.9.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/queuelib-1.8.0/LICENSE new/queuelib-1.9.0/LICENSE
--- old/queuelib-1.8.0/LICENSE  2020-02-02 01:00:00.000000000 +0100
+++ new/queuelib-1.9.0/LICENSE  2020-02-02 01:00:00.000000000 +0100
@@ -4,10 +4,10 @@
 Redistribution and use in source and binary forms, with or without 
modification,
 are permitted provided that the following conditions are met:
 
-    1. Redistributions of source code must retain the above copyright notice, 
+    1. Redistributions of source code must retain the above copyright notice,
        this list of conditions and the following disclaimer.
-    
-    2. Redistributions in binary form must reproduce the above copyright 
+
+    2. Redistributions in binary form must reproduce the above copyright
        notice, this list of conditions and the following disclaimer in the
        documentation and/or other materials provided with the distribution.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/queuelib-1.8.0/NEWS new/queuelib-1.9.0/NEWS
--- old/queuelib-1.8.0/NEWS     2020-02-02 01:00:00.000000000 +0100
+++ new/queuelib-1.9.0/NEWS     2020-02-02 01:00:00.000000000 +0100
@@ -1,9 +1,17 @@
 Queuelib release notes
 ======================
 
+Version 1.9.0
+-------------
+(released on 2026-01-29)
+
+* Added support for Python 3.14
+* Removed support for Python 3.9 and PyPy 3.10
+* Improved linting and CI configuration
+
 Version 1.8.0
 -------------
-(released on March 31st, 2025)
+(released on 2025-03-31)
 
 * Added support for Python 3.13 and PyPy 3.11
 * Removed support for Python 3.8
@@ -15,7 +23,7 @@
 
 Version 1.7.0
 -------------
-(released on May 4th, 2024)
+(released on 2024-05-04)
 
 No functionality changes with respect to 1.6.2
 
@@ -28,7 +36,7 @@
 
 Version 1.6.2
 -------------
-(released on August 26th, 2021)
+(released on 2021-08-26)
 
 No functionality changes with respect to 1.6.1
 
@@ -40,7 +48,7 @@
 
 Version 1.6.1
 -------------
-(released on April 21st, 2021)
+(released on 2021-04-21)
 
 No code changes with respect to 1.6
 
@@ -50,7 +58,7 @@
 
 Version 1.6
 -----------
-(released on April 21st, 2021)
+(released on 2021-04-21)
 
 * Add peek support
 * Remove py2 support
@@ -59,6 +67,6 @@
 
 Version 1.0
 -----------
-(released on April 23rd, 2013)
+(released on 2013-04-23)
 
 First release of Queuelib.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/queuelib-1.8.0/PKG-INFO new/queuelib-1.9.0/PKG-INFO
--- old/queuelib-1.8.0/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
+++ new/queuelib-1.9.0/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
@@ -1,13 +1,12 @@
 Metadata-Version: 2.4
 Name: queuelib
-Version: 1.8.0
+Version: 1.9.0
 Summary: Collection of persistent (disk-based) and non-persistent 
(memory-based) queues
 Project-URL: Homepage, https://github.com/scrapy/queuelib
 Project-URL: Source, https://github.com/scrapy/queuelib
 Project-URL: Issues, https://github.com/scrapy/queuelib/issues
 Project-URL: Docs, https://github.com/scrapy/queuelib/blob/master/README.rst
-Project-URL: ReleaseNotes, https://github.com/scrapy/queuelib/blob/master/NEWS
-Project-URL: Changelog, https://github.com/scrapy/queuelib/commits/master/
+Project-URL: Release notes, https://github.com/scrapy/queuelib/blob/master/NEWS
 Author-email: Scrapy project <[email protected]>
 License-Expression: BSD-3-Clause
 License-File: LICENSE
@@ -15,14 +14,14 @@
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
 Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: Implementation :: PyPy
-Requires-Python: >=3.9
+Requires-Python: >=3.10
 Description-Content-Type: text/x-rst
 
 ========
@@ -51,7 +50,7 @@
 
 .. note:: Queuelib collections are not thread-safe.
 
-Queuelib supports Python 3.9+ and has no dependencies.
+Queuelib supports Python 3.10+ and has no dependencies.
 
 .. _queues: https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)
 .. _round-robin: https://en.wikipedia.org/wiki/Round-robin_scheduling
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/queuelib-1.8.0/README.rst 
new/queuelib-1.9.0/README.rst
--- old/queuelib-1.8.0/README.rst       2020-02-02 01:00:00.000000000 +0100
+++ new/queuelib-1.9.0/README.rst       2020-02-02 01:00:00.000000000 +0100
@@ -24,7 +24,7 @@
 
 .. note:: Queuelib collections are not thread-safe.
 
-Queuelib supports Python 3.9+ and has no dependencies.
+Queuelib supports Python 3.10+ and has no dependencies.
 
 .. _queues: https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)
 .. _round-robin: https://en.wikipedia.org/wiki/Round-robin_scheduling
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/queuelib-1.8.0/pyproject.toml 
new/queuelib-1.9.0/pyproject.toml
--- old/queuelib-1.8.0/pyproject.toml   2020-02-02 01:00:00.000000000 +0100
+++ new/queuelib-1.9.0/pyproject.toml   2020-02-02 01:00:00.000000000 +0100
@@ -14,15 +14,15 @@
     "Operating System :: OS Independent",
     "Programming Language :: Python",
     "Programming Language :: Python :: 3",
-    "Programming Language :: Python :: 3.9",
     "Programming Language :: Python :: 3.10",
     "Programming Language :: Python :: 3.11",
     "Programming Language :: Python :: 3.12",
     "Programming Language :: Python :: 3.13",
+    "Programming Language :: Python :: 3.14",
     "Programming Language :: Python :: Implementation :: CPython",
     "Programming Language :: Python :: Implementation :: PyPy",
 ]
-requires-python = ">=3.9"
+requires-python = ">=3.10"
 dynamic = ["version"]
 
 [project.urls]
@@ -30,8 +30,7 @@
 Source = "https://github.com/scrapy/queuelib";
 Issues = "https://github.com/scrapy/queuelib/issues";
 Docs = "https://github.com/scrapy/queuelib/blob/master/README.rst";
-ReleaseNotes = "https://github.com/scrapy/queuelib/blob/master/NEWS";
-Changelog = "https://github.com/scrapy/queuelib/commits/master/";
+"Release notes" = "https://github.com/scrapy/queuelib/blob/master/NEWS";
 
 [tool.hatch.version]
 path = "queuelib/__init__.py"
@@ -43,7 +42,7 @@
 ]
 
 [tool.bumpversion]
-current_version = "1.8.0"
+current_version = "1.9.0"
 commit = true
 tag = true
 tag_name = "v{new_version}"
@@ -51,16 +50,20 @@
 [[tool.bumpversion.files]]
 filename = "queuelib/__init__.py"
 
+[[tool.bumpversion.files]]
+filename = "NEWS"
+search = "^\\(unreleased\\)$"
+replace = "(released on {now:%Y-%m-%d})"
+regex = true
+
 [tool.coverage.run]
 branch = true
 omit = [
     "queuelib/tests/*",
 ]
 
-[tool.coverage.report]
-exclude_also = [
-    "if TYPE_CHECKING:",
-]
+[tool.mypy]
+strict = true
 
 [[tool.mypy.overrides]]
 module = "queuelib.tests.*"
@@ -88,10 +91,16 @@
 
 [tool.ruff.lint]
 extend-select = [
+    # flake8-builtins
+    "A",
+    # flake8-async
+    "ASYNC",
     # flake8-bugbear
     "B",
     # flake8-comprehensions
     "C4",
+    # flake8-commas
+    "COM",
     # pydocstyle
     "D",
     # flake8-future-annotations
@@ -114,6 +123,8 @@
     "PIE",
     # pylint
     "PL",
+    # flake8-pytest-style
+    "PT",
     # flake8-use-pathlib
     "PTH",
     # flake8-pyi
@@ -144,6 +155,8 @@
     "YTT",
 ]
 ignore = [
+    # Trailing comma missing
+    "COM812",
     # Missing docstring in public module
     "D100",
     # Missing docstring in public class
@@ -198,5 +211,8 @@
     "S101",
 ]
 
+[tool.ruff.lint.isort]
+split-on-trailing-comma = false
+
 [tool.ruff.lint.pydocstyle]
 convention = "pep257"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/queuelib-1.8.0/queuelib/__init__.py 
new/queuelib-1.9.0/queuelib/__init__.py
--- old/queuelib-1.8.0/queuelib/__init__.py     2020-02-02 01:00:00.000000000 
+0100
+++ new/queuelib-1.9.0/queuelib/__init__.py     2020-02-02 01:00:00.000000000 
+0100
@@ -1,4 +1,4 @@
-__version__ = "1.8.0"
+__version__ = "1.9.0"
 
 from queuelib.pqueue import PriorityQueue
 from queuelib.queue import FifoDiskQueue, LifoDiskQueue
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/queuelib-1.8.0/queuelib/pqueue.py 
new/queuelib-1.9.0/queuelib/pqueue.py
--- old/queuelib-1.8.0/queuelib/pqueue.py       2020-02-02 01:00:00.000000000 
+0100
+++ new/queuelib-1.9.0/queuelib/pqueue.py       2020-02-02 01:00:00.000000000 
+0100
@@ -1,9 +1,9 @@
 from __future__ import annotations
 
-from typing import TYPE_CHECKING, Any, Callable
+from typing import TYPE_CHECKING, Any
 
 if TYPE_CHECKING:
-    from collections.abc import Iterable
+    from collections.abc import Callable, Iterable
 
     from queuelib.queue import BaseQueue
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/queuelib-1.8.0/queuelib/queue.py 
new/queuelib-1.9.0/queuelib/queue.py
--- old/queuelib-1.8.0/queuelib/queue.py        2020-02-02 01:00:00.000000000 
+0100
+++ new/queuelib-1.9.0/queuelib/queue.py        2020-02-02 01:00:00.000000000 
+0100
@@ -167,12 +167,12 @@
             self._cleanup()
 
     def __len__(self) -> int:
-        return cast(int, self.info["size"])
+        return cast("int", self.info["size"])
 
     def _loadinfo(self, chunksize: int) -> dict[str, Any]:
         infopath = self._infopath()
         if infopath.exists():
-            info = cast(dict[str, Any], json.loads(infopath.read_text()))
+            info = cast("dict[str, Any]", json.loads(infopath.read_text()))
         else:
             info = {
                 "chunksize": chunksize,
@@ -279,13 +279,13 @@
         with self._db as conn:
             for id_, item in conn.execute(self._sql_pop):
                 conn.execute(self._sql_del, (id_,))
-                return cast(bytes, item)
+                return cast("bytes", item)
         return None
 
     def peek(self) -> bytes | None:
         with self._db as conn:
             for _, item in conn.execute(self._sql_pop):
-                return cast(bytes, item)
+                return cast("bytes", item)
         return None
 
     def close(self) -> None:
@@ -296,7 +296,7 @@
 
     def __len__(self) -> int:
         with self._db as conn:
-            return cast(int, next(conn.execute(self._sql_size))[0])
+            return cast("int", next(conn.execute(self._sql_size))[0])
 
 
 class LifoSQLiteQueue(FifoSQLiteQueue):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/queuelib-1.8.0/queuelib/rrqueue.py 
new/queuelib-1.9.0/queuelib/rrqueue.py
--- old/queuelib-1.8.0/queuelib/rrqueue.py      2020-02-02 01:00:00.000000000 
+0100
+++ new/queuelib-1.9.0/queuelib/rrqueue.py      2020-02-02 01:00:00.000000000 
+0100
@@ -1,10 +1,10 @@
 from __future__ import annotations
 
 from collections import deque
-from typing import TYPE_CHECKING, Any, Callable
+from typing import TYPE_CHECKING, Any
 
 if TYPE_CHECKING:
-    from collections.abc import Hashable, Iterable
+    from collections.abc import Callable, Hashable, Iterable
 
     from queuelib.queue import BaseQueue
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/queuelib-1.8.0/queuelib/tests/test_pqueue.py 
new/queuelib-1.9.0/queuelib/tests/test_pqueue.py
--- old/queuelib-1.8.0/queuelib/tests/test_pqueue.py    2020-02-02 
01:00:00.000000000 +0100
+++ new/queuelib-1.9.0/queuelib/tests/test_pqueue.py    2020-02-02 
01:00:00.000000000 +0100
@@ -1,5 +1,7 @@
 from pathlib import Path
 
+import pytest
+
 from queuelib.pqueue import PriorityQueue
 from queuelib.queue import (
     FifoDiskQueue,
@@ -22,19 +24,19 @@
 
     def test_len_nonzero(self):
         assert not self.q
-        self.assertEqual(len(self.q), 0)
+        assert len(self.q) == 0
         self.q.push(b"a", 3)
         assert self.q
         self.q.push(b"b", 1)
         self.q.push(b"c", 2)
         self.q.push(b"d", 1)
-        self.assertEqual(len(self.q), 4)
+        assert len(self.q) == 4
         self.q.pop()
         self.q.pop()
         self.q.pop()
         self.q.pop()
         assert not self.q
-        self.assertEqual(len(self.q), 0)
+        assert len(self.q) == 0
 
     def test_close(self):
         self.q.push(b"a", 3)
@@ -42,7 +44,7 @@
         self.q.push(b"c", 2)
         self.q.push(b"d", 1)
         iqueues = self.q.queues.values()
-        self.assertEqual(sorted(self.q.close()), [1, 2, 3])
+        assert sorted(self.q.close()) == [1, 2, 3]
         assert all(q.closed for q in iqueues)
 
     def test_close_return_active(self):
@@ -50,82 +52,82 @@
         self.q.push(b"c", 2)
         self.q.push(b"a", 3)
         self.q.pop()
-        self.assertEqual(sorted(self.q.close()), [2, 3])
+        assert sorted(self.q.close()) == [2, 3]
 
     def test_popped_internal_queues_closed(self):
         self.q.push(b"a", 3)
         self.q.push(b"b", 1)
         self.q.push(b"c", 2)
         p1queue = self.q.queues[1]
-        self.assertEqual(self.q.pop(), b"b")
+        assert self.q.pop() == b"b"
         self.q.close()
         assert p1queue.closed
 
 
 class FifoTestMixin:
     def test_push_pop_peek_noprio(self):
-        self.assertEqual(self.q.peek(), None)
+        assert self.q.peek() is None
         self.q.push(b"a")
         self.q.push(b"b")
         self.q.push(b"c")
-        self.assertEqual(self.q.peek(), b"a")
-        self.assertEqual(self.q.pop(), b"a")
-        self.assertEqual(self.q.peek(), b"b")
-        self.assertEqual(self.q.pop(), b"b")
-        self.assertEqual(self.q.peek(), b"c")
-        self.assertEqual(self.q.pop(), b"c")
-        self.assertEqual(self.q.peek(), None)
-        self.assertEqual(self.q.pop(), None)
+        assert self.q.peek() == b"a"
+        assert self.q.pop() == b"a"
+        assert self.q.peek() == b"b"
+        assert self.q.pop() == b"b"
+        assert self.q.peek() == b"c"
+        assert self.q.pop() == b"c"
+        assert self.q.peek() is None
+        assert self.q.pop() is None
 
     def test_push_pop_peek_prio(self):
-        self.assertEqual(self.q.peek(), None)
+        assert self.q.peek() is None
         self.q.push(b"a", 3)
         self.q.push(b"b", 1)
         self.q.push(b"c", 2)
         self.q.push(b"d", 1)
-        self.assertEqual(self.q.peek(), b"b")
-        self.assertEqual(self.q.pop(), b"b")
-        self.assertEqual(self.q.peek(), b"d")
-        self.assertEqual(self.q.pop(), b"d")
-        self.assertEqual(self.q.peek(), b"c")
-        self.assertEqual(self.q.pop(), b"c")
-        self.assertEqual(self.q.peek(), b"a")
-        self.assertEqual(self.q.pop(), b"a")
-        self.assertEqual(self.q.peek(), None)
-        self.assertEqual(self.q.pop(), None)
+        assert self.q.peek() == b"b"
+        assert self.q.pop() == b"b"
+        assert self.q.peek() == b"d"
+        assert self.q.pop() == b"d"
+        assert self.q.peek() == b"c"
+        assert self.q.pop() == b"c"
+        assert self.q.peek() == b"a"
+        assert self.q.pop() == b"a"
+        assert self.q.peek() is None
+        assert self.q.pop() is None
 
 
 class LifoTestMixin:
     def test_push_pop_peek_noprio(self):
-        self.assertEqual(self.q.peek(), None)
+        assert self.q.peek() is None
         self.q.push(b"a")
         self.q.push(b"b")
         self.q.push(b"c")
-        self.assertEqual(self.q.peek(), b"c")
-        self.assertEqual(self.q.pop(), b"c")
-        self.assertEqual(self.q.peek(), b"b")
-        self.assertEqual(self.q.pop(), b"b")
-        self.assertEqual(self.q.peek(), b"a")
-        self.assertEqual(self.q.pop(), b"a")
-        self.assertEqual(self.q.peek(), None)
-        self.assertEqual(self.q.pop(), None)
+        assert self.q.peek() == b"c"
+        assert self.q.pop() == b"c"
+        assert self.q.peek() == b"b"
+        assert self.q.pop() == b"b"
+        assert self.q.peek() == b"a"
+        assert self.q.pop() == b"a"
+        assert self.q.peek() is None
+        assert self.q.pop() is None
 
     def test_push_pop_peek_prio(self):
-        self.assertEqual(self.q.peek(), None)
+        assert self.q.peek() is None
         self.q.push(b"a", 3)
         self.q.push(b"b", 1)
         self.q.push(b"c", 2)
         self.q.push(b"d", 1)
-        self.assertEqual(self.q.peek(), b"d")
-        self.assertEqual(self.q.pop(), b"d")
-        self.assertEqual(self.q.peek(), b"b")
-        self.assertEqual(self.q.pop(), b"b")
-        self.assertEqual(self.q.peek(), b"c")
-        self.assertEqual(self.q.pop(), b"c")
-        self.assertEqual(self.q.peek(), b"a")
-        self.assertEqual(self.q.pop(), b"a")
-        self.assertEqual(self.q.peek(), None)
-        self.assertEqual(self.q.pop(), None)
+        assert self.q.peek() == b"d"
+        assert self.q.pop() == b"d"
+        assert self.q.peek() == b"b"
+        assert self.q.pop() == b"b"
+        assert self.q.peek() == b"c"
+        assert self.q.pop() == b"c"
+        assert self.q.peek() == b"a"
+        assert self.q.pop() == b"a"
+        assert self.q.peek() is None
+        assert self.q.pop() is None
 
 
 class FifoMemoryPriorityQueueTest(PQueueTestMixin, FifoTestMixin, 
QueuelibTestCase):
@@ -140,27 +142,30 @@
 
 class DiskTestMixin:
     def test_nonserializable_object_one(self):
-        self.assertRaises(TypeError, self.q.push, lambda x: x, 0)
-        self.assertEqual(self.q.close(), [])
+        with pytest.raises(TypeError):
+            self.q.push(lambda x: x, 0)
+        assert self.q.close() == []
 
     def test_nonserializable_object_many_close(self):
         self.q.push(b"a", 3)
         self.q.push(b"b", 1)
-        self.assertRaises(TypeError, self.q.push, lambda x: x, 0)
+        with pytest.raises(TypeError):
+            self.q.push(lambda x: x, 0)
         self.q.push(b"c", 2)
-        self.assertEqual(self.q.pop(), b"b")
-        self.assertEqual(sorted(self.q.close()), [2, 3])
+        assert self.q.pop() == b"b"
+        assert sorted(self.q.close()) == [2, 3]
 
     def test_nonserializable_object_many_pop(self):
         self.q.push(b"a", 3)
         self.q.push(b"b", 1)
-        self.assertRaises(TypeError, self.q.push, lambda x: x, 0)
+        with pytest.raises(TypeError):
+            self.q.push(lambda x: x, 0)
         self.q.push(b"c", 2)
-        self.assertEqual(self.q.pop(), b"b")
-        self.assertEqual(self.q.pop(), b"c")
-        self.assertEqual(self.q.pop(), b"a")
-        self.assertEqual(self.q.pop(), None)
-        self.assertEqual(self.q.close(), [])
+        assert self.q.pop() == b"b"
+        assert self.q.pop() == b"c"
+        assert self.q.pop() == b"a"
+        assert self.q.pop() is None
+        assert self.q.close() == []
 
     def test_reopen_with_prio(self):
         q1 = PriorityQueue(self.qfactory)
@@ -169,10 +174,10 @@
         q1.push(b"c", 2)
         active = q1.close()
         q2 = PriorityQueue(self.qfactory, startprios=active)
-        self.assertEqual(q2.pop(), b"b")
-        self.assertEqual(q2.pop(), b"c")
-        self.assertEqual(q2.pop(), b"a")
-        self.assertEqual(q2.close(), [])
+        assert q2.pop() == b"b"
+        assert q2.pop() == b"c"
+        assert q2.pop() == b"a"
+        assert not q2.close()
 
 
 class FifoDiskPriorityQueueTest(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/queuelib-1.8.0/queuelib/tests/test_queue.py 
new/queuelib-1.9.0/queuelib/tests/test_queue.py
--- old/queuelib-1.8.0/queuelib/tests/test_queue.py     2020-02-02 
01:00:00.000000000 +0100
+++ new/queuelib-1.9.0/queuelib/tests/test_queue.py     2020-02-02 
01:00:00.000000000 +0100
@@ -41,13 +41,13 @@
 class InterfaceTest(QueuelibTestCase):
     def test_queue(self):
         queue = BaseQueue()
-        with self.assertRaises(NotImplementedError):
+        with pytest.raises(NotImplementedError):
             queue.push(b"")
-        with self.assertRaises(NotImplementedError):
+        with pytest.raises(NotImplementedError):
             queue.peek()
-        with self.assertRaises(NotImplementedError):
+        with pytest.raises(NotImplementedError):
             queue.pop()
-        with self.assertRaises(NotImplementedError):
+        with pytest.raises(NotImplementedError):
             len(queue)
         queue.close()
 
@@ -107,25 +107,25 @@
 
     def test_len(self):
         q = self.queue()
-        self.assertEqual(len(q), 0)
+        assert len(q) == 0
         q.push(b"a")
-        self.assertEqual(len(q), 1)
+        assert len(q) == 1
         q.push(b"b")
         q.push(b"c")
-        self.assertEqual(len(q), 3)
+        assert len(q) == 3
         q.pop()
         q.pop()
         q.pop()
-        self.assertEqual(len(q), 0)
+        assert len(q) == 0
         q.close()
 
     def test_peek_one_element(self):
         q = self.queue()
-        self.assertIsNone(q.peek())
+        assert q.peek() is None
         q.push(b"a")
-        self.assertEqual(q.peek(), b"a")
-        self.assertEqual(q.pop(), b"a")
-        self.assertIsNone(q.peek())
+        assert q.peek() == b"a"
+        assert q.pop() == b"a"
+        assert q.peek() is None
         q.close()
 
 
@@ -136,10 +136,10 @@
         q.push(b"a")
         q.push(b"b")
         q.push(b"c")
-        self.assertEqual(q.pop(), b"a")
-        self.assertEqual(q.pop(), b"b")
-        self.assertEqual(q.pop(), b"c")
-        self.assertEqual(q.pop(), None)
+        assert q.pop() == b"a"
+        assert q.pop() == b"b"
+        assert q.pop() == b"c"
+        assert q.pop() is None
         q.close()
 
     def test_push_pop2(self):
@@ -149,30 +149,30 @@
         q.push(b"b")
         q.push(b"c")
         q.push(b"d")
-        self.assertEqual(q.pop(), b"a")
-        self.assertEqual(q.pop(), b"b")
+        assert q.pop() == b"a"
+        assert q.pop() == b"b"
         q.push(b"e")
-        self.assertEqual(q.pop(), b"c")
-        self.assertEqual(q.pop(), b"d")
-        self.assertEqual(q.pop(), b"e")
+        assert q.pop() == b"c"
+        assert q.pop() == b"d"
+        assert q.pop() == b"e"
         q.close()
 
     def test_peek_fifo(self):
         q = self.queue()
-        self.assertIsNone(q.peek())
+        assert q.peek() is None
         q.push(b"a")
         q.push(b"b")
         q.push(b"c")
-        self.assertEqual(q.peek(), b"a")
-        self.assertEqual(q.peek(), b"a")
-        self.assertEqual(q.pop(), b"a")
-        self.assertEqual(q.peek(), b"b")
-        self.assertEqual(q.peek(), b"b")
-        self.assertEqual(q.pop(), b"b")
-        self.assertEqual(q.peek(), b"c")
-        self.assertEqual(q.peek(), b"c")
-        self.assertEqual(q.pop(), b"c")
-        self.assertIsNone(q.peek())
+        assert q.peek() == b"a"
+        assert q.peek() == b"a"
+        assert q.pop() == b"a"
+        assert q.peek() == b"b"
+        assert q.peek() == b"b"
+        assert q.pop() == b"b"
+        assert q.peek() == b"c"
+        assert q.peek() == b"c"
+        assert q.pop() == b"c"
+        assert q.peek() is None
         q.close()
 
 
@@ -183,10 +183,10 @@
         q.push(b"a")
         q.push(b"b")
         q.push(b"c")
-        self.assertEqual(q.pop(), b"c")
-        self.assertEqual(q.pop(), b"b")
-        self.assertEqual(q.pop(), b"a")
-        self.assertEqual(q.pop(), None)
+        assert q.pop() == b"c"
+        assert q.pop() == b"b"
+        assert q.pop() == b"a"
+        assert q.pop() is None
         q.close()
 
     def test_push_pop2(self):
@@ -196,30 +196,30 @@
         q.push(b"b")
         q.push(b"c")
         q.push(b"d")
-        self.assertEqual(q.pop(), b"d")
-        self.assertEqual(q.pop(), b"c")
+        assert q.pop() == b"d"
+        assert q.pop() == b"c"
         q.push(b"e")
-        self.assertEqual(q.pop(), b"e")
-        self.assertEqual(q.pop(), b"b")
-        self.assertEqual(q.pop(), b"a")
+        assert q.pop() == b"e"
+        assert q.pop() == b"b"
+        assert q.pop() == b"a"
         q.close()
 
     def test_peek_lifo(self):
         q = self.queue()
-        self.assertIsNone(q.peek())
+        assert q.peek() is None
         q.push(b"a")
         q.push(b"b")
         q.push(b"c")
-        self.assertEqual(q.peek(), b"c")
-        self.assertEqual(q.peek(), b"c")
-        self.assertEqual(q.pop(), b"c")
-        self.assertEqual(q.peek(), b"b")
-        self.assertEqual(q.peek(), b"b")
-        self.assertEqual(q.pop(), b"b")
-        self.assertEqual(q.peek(), b"a")
-        self.assertEqual(q.peek(), b"a")
-        self.assertEqual(q.pop(), b"a")
-        self.assertIsNone(q.peek())
+        assert q.peek() == b"c"
+        assert q.peek() == b"c"
+        assert q.pop() == b"c"
+        assert q.peek() == b"b"
+        assert q.peek() == b"b"
+        assert q.pop() == b"b"
+        assert q.peek() == b"a"
+        assert q.peek() == b"a"
+        assert q.pop() == b"a"
+        assert q.peek() is None
         q.close()
 
 
@@ -231,10 +231,14 @@
     )
     def test_non_bytes_raises_typeerror(self):
         q = self.queue()
-        self.assertRaises(TypeError, q.push, 0)
-        self.assertRaises(TypeError, q.push, "")
-        self.assertRaises(TypeError, q.push, None)
-        self.assertRaises(TypeError, q.push, lambda x: x)
+        with pytest.raises(TypeError):
+            q.push(0)
+        with pytest.raises(TypeError):
+            q.push("")
+        with pytest.raises(TypeError):
+            q.push(None)
+        with pytest.raises(TypeError):
+            q.push(lambda x: x)
         q.close()
 
     def test_text_in_windows(self):
@@ -244,7 +248,7 @@
         q.close()
         q = self.queue()
         e2 = q.pop()
-        self.assertEqual(e1, e2)
+        assert e1 == e2
         q.close()
 
     def test_close_open(self):
@@ -260,7 +264,7 @@
         del q
 
         q = self.queue()
-        self.assertEqual(len(q), 2)
+        assert len(q) == 2
         q.push(b"e")
         q.pop()
         q.pop()
@@ -269,7 +273,7 @@
 
         q = self.queue()
         assert q.pop() is not None
-        self.assertEqual(len(q), 0)
+        assert len(q) == 0
         q.close()
 
     def test_cleanup(self):
@@ -321,12 +325,12 @@
             q.push(x)
 
         chunks = list(self.qpath.glob("q*"))
-        self.assertEqual(len(chunks), 5 // self.chunksize + 1)
+        assert len(chunks) == 5 // self.chunksize + 1
         for _ in values:
             q.pop()
 
         chunks = list(self.qpath.glob("q*"))
-        self.assertEqual(len(chunks), 1)
+        assert len(chunks) == 1
         q.close()
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/queuelib-1.8.0/queuelib/tests/test_rrqueue.py 
new/queuelib-1.9.0/queuelib/tests/test_rrqueue.py
--- old/queuelib-1.8.0/queuelib/tests/test_rrqueue.py   2020-02-02 
01:00:00.000000000 +0100
+++ new/queuelib-1.9.0/queuelib/tests/test_rrqueue.py   2020-02-02 
01:00:00.000000000 +0100
@@ -1,5 +1,7 @@
 from pathlib import Path
 
+import pytest
+
 from queuelib.queue import (
     FifoDiskQueue,
     FifoMemoryQueue,
@@ -22,19 +24,19 @@
 
     def test_len_nonzero(self):
         assert not self.q
-        self.assertEqual(len(self.q), 0)
+        assert len(self.q) == 0
         self.q.push(b"a", "3")
         assert self.q
         self.q.push(b"b", "1")
         self.q.push(b"c", "2")
         self.q.push(b"d", "1")
-        self.assertEqual(len(self.q), 4)
+        assert len(self.q) == 4
         self.q.pop()
         self.q.pop()
         self.q.pop()
         self.q.pop()
         assert not self.q
-        self.assertEqual(len(self.q), 0)
+        assert len(self.q) == 0
 
     def test_close(self):
         self.q.push(b"a", "3")
@@ -42,7 +44,7 @@
         self.q.push(b"c", "2")
         self.q.push(b"d", "1")
         iqueues = self.q.queues.values()
-        self.assertEqual(sorted(self.q.close()), ["1", "2", "3"])
+        assert sorted(self.q.close()) == ["1", "2", "3"]
         assert all(q.closed for q in iqueues)
 
     def test_close_return_active(self):
@@ -50,45 +52,45 @@
         self.q.push(b"c", "2")
         self.q.push(b"a", "3")
         self.q.pop()
-        self.assertEqual(sorted(self.q.close()), ["2", "3"])
+        assert sorted(self.q.close()) == ["2", "3"]
 
 
 class FifoTestMixin:
     def test_push_pop_peek_key(self):
-        self.assertEqual(self.q.peek(), None)
+        assert self.q.peek() is None
         self.q.push(b"a", "1")
         self.q.push(b"b", "1")
         self.q.push(b"c", "2")
         self.q.push(b"d", "2")
-        self.assertEqual(self.q.peek(), b"a")
-        self.assertEqual(self.q.pop(), b"a")
-        self.assertEqual(self.q.peek(), b"c")
-        self.assertEqual(self.q.pop(), b"c")
-        self.assertEqual(self.q.peek(), b"b")
-        self.assertEqual(self.q.pop(), b"b")
-        self.assertEqual(self.q.peek(), b"d")
-        self.assertEqual(self.q.pop(), b"d")
-        self.assertEqual(self.q.peek(), None)
-        self.assertEqual(self.q.pop(), None)
+        assert self.q.peek() == b"a"
+        assert self.q.pop() == b"a"
+        assert self.q.peek() == b"c"
+        assert self.q.pop() == b"c"
+        assert self.q.peek() == b"b"
+        assert self.q.pop() == b"b"
+        assert self.q.peek() == b"d"
+        assert self.q.pop() == b"d"
+        assert self.q.peek() is None
+        assert self.q.pop() is None
 
 
 class LifoTestMixin:
     def test_push_pop_peek_key(self):
-        self.assertEqual(self.q.peek(), None)
+        assert self.q.peek() is None
         self.q.push(b"a", "1")
         self.q.push(b"b", "1")
         self.q.push(b"c", "2")
         self.q.push(b"d", "2")
-        self.assertEqual(self.q.peek(), b"b")
-        self.assertEqual(self.q.pop(), b"b")
-        self.assertEqual(self.q.peek(), b"d")
-        self.assertEqual(self.q.pop(), b"d")
-        self.assertEqual(self.q.peek(), b"a")
-        self.assertEqual(self.q.pop(), b"a")
-        self.assertEqual(self.q.peek(), b"c")
-        self.assertEqual(self.q.pop(), b"c")
-        self.assertEqual(self.q.peek(), None)
-        self.assertEqual(self.q.pop(), None)
+        assert self.q.peek() == b"b"
+        assert self.q.pop() == b"b"
+        assert self.q.peek() == b"d"
+        assert self.q.pop() == b"d"
+        assert self.q.peek() == b"a"
+        assert self.q.pop() == b"a"
+        assert self.q.peek() == b"c"
+        assert self.q.pop() == b"c"
+        assert self.q.peek() is None
+        assert self.q.pop() is None
 
 
 class FifoMemoryRRQueueTest(RRQueueTestMixin, FifoTestMixin, QueuelibTestCase):
@@ -103,27 +105,30 @@
 
 class DiskTestMixin:
     def test_nonserializable_object_one(self):
-        self.assertRaises(TypeError, self.q.push, lambda x: x, "0")
-        self.assertEqual(self.q.close(), [])
+        with pytest.raises(TypeError):
+            self.q.push(lambda x: x, "0")
+        assert self.q.close() == []
 
     def test_nonserializable_object_many_close(self):
         self.q.push(b"a", "3")
         self.q.push(b"b", "1")
-        self.assertRaises(TypeError, self.q.push, lambda x: x, "0")
+        with pytest.raises(TypeError):
+            self.q.push(lambda x: x, "0")
         self.q.push(b"c", "2")
-        self.assertEqual(self.q.pop(), b"a")
-        self.assertEqual(sorted(self.q.close()), ["1", "2"])
+        assert self.q.pop() == b"a"
+        assert sorted(self.q.close()) == ["1", "2"]
 
     def test_nonserializable_object_many_pop(self):
         self.q.push(b"a", "3")
         self.q.push(b"b", "1")
-        self.assertRaises(TypeError, self.q.push, lambda x: x, "0")
+        with pytest.raises(TypeError):
+            self.q.push(lambda x: x, "0")
         self.q.push(b"c", "2")
-        self.assertEqual(self.q.pop(), b"a")
-        self.assertEqual(self.q.pop(), b"b")
-        self.assertEqual(self.q.pop(), b"c")
-        self.assertEqual(self.q.pop(), None)
-        self.assertEqual(self.q.close(), [])
+        assert self.q.pop() == b"a"
+        assert self.q.pop() == b"b"
+        assert self.q.pop() == b"c"
+        assert self.q.pop() is None
+        assert self.q.close() == []
 
 
 class FifoDiskRRQueueTest(
@@ -169,22 +174,22 @@
     def test_push_pop_peek_key(self):
         self.q.push(b"c", "1")
         self.q.push(b"d", "2")
-        self.assertEqual(self.q.peek(), b"d")
-        self.assertEqual(self.q.pop(), b"d")
-        self.assertEqual(self.q.peek(), b"c")
-        self.assertEqual(self.q.pop(), b"c")
-        self.assertEqual(self.q.peek(), None)
-        self.assertEqual(self.q.pop(), None)
+        assert self.q.peek() == b"d"
+        assert self.q.pop() == b"d"
+        assert self.q.peek() == b"c"
+        assert self.q.pop() == b"c"
+        assert self.q.peek() is None
+        assert self.q.pop() is None
 
     def test_push_pop_peek_key_reversed(self):
         self.q.push(b"d", "2")
         self.q.push(b"c", "1")
-        self.assertEqual(self.q.peek(), b"d")
-        self.assertEqual(self.q.pop(), b"d")
-        self.assertEqual(self.q.peek(), b"c")
-        self.assertEqual(self.q.pop(), b"c")
-        self.assertEqual(self.q.peek(), None)
-        self.assertEqual(self.q.pop(), None)
+        assert self.q.peek() == b"d"
+        assert self.q.pop() == b"d"
+        assert self.q.peek() == b"c"
+        assert self.q.pop() == b"c"
+        assert self.q.peek() is None
+        assert self.q.pop() is None
 
 
 class FifoMemoryRRQueueStartDomainsTest(RRQueueStartDomainsTestMixin, 
QueuelibTestCase):

Reply via email to