Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-happybase for 
openSUSE:Factory checked in at 2026-04-08 17:15:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-happybase (Old)
 and      /work/SRC/openSUSE:Factory/.python-happybase.new.21863 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-happybase"

Wed Apr  8 17:15:53 2026 rev:19 rq:1345078 version:1.3.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-happybase/python-happybase.changes        
2025-05-02 15:01:28.419180084 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-happybase.new.21863/python-happybase.changes 
    2026-04-08 17:16:16.905280953 +0200
@@ -1,0 +2,9 @@
+Tue Apr  7 21:53:55 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 1.3.0:
+  * Switch to pytest (pr 238)
+  * Use importlib_resources package because pkg_resources is
+    deprecated in Python 3.12 (pr 261)
+- drop use_pytest.patch (upstream)
+
+-------------------------------------------------------------------

Old:
----
  1.2.0.tar.gz
  use_pytest.patch

New:
----
  1.3.0.tar.gz

----------(Old B)----------
  Old:    deprecated in Python 3.12 (pr 261)
- drop use_pytest.patch (upstream)
----------(Old E)----------

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

Other differences:
------------------
++++++ python-happybase.spec ++++++
--- /var/tmp/diff_new_pack.FHpPHT/_old  2026-04-08 17:16:18.389341969 +0200
+++ /var/tmp/diff_new_pack.FHpPHT/_new  2026-04-08 17:16:18.405342626 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-happybase
 #
-# 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
@@ -17,14 +17,13 @@
 
 
 Name:           python-happybase
-Version:        1.2.0
+Version:        1.3.0
 Release:        0
 Summary:        A Python library to interact with Apache HBase
 License:        MIT
 URL:            https://github.com/wbolster/happybase
 Source:         https://github.com/wbolster/happybase/archive/%{version}.tar.gz
-# https://github.com/python-happybase/happybase/pull/238
-Patch0:         use_pytest.patch
+BuildRequires:  %{python_module importlib-resources}
 BuildRequires:  %{python_module pip}
 BuildRequires:  %{python_module pytest}
 BuildRequires:  %{python_module setuptools}
@@ -34,6 +33,7 @@
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
 BuildRequires:  python3-Sphinx
+Requires:       python-importlib-resources
 Requires:       python-six
 Requires:       python-thriftpy2 >= 0.4
 BuildArch:      noarch
@@ -65,8 +65,8 @@
 rm -r docs/build/html/.[a-z]*
 
 %check
-# the api tests need running thrift server
-%pytest tests/test_util.py
+rm -v pytest.ini tests/test_api.py
+%pytest
 
 %files %{python_files}
 %license LICENSE.rst

++++++ 1.2.0.tar.gz -> 1.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/happybase-1.2.0/Makefile new/happybase-1.3.0/Makefile
--- old/happybase-1.2.0/Makefile        2019-05-14 16:16:06.000000000 +0200
+++ new/happybase-1.3.0/Makefile        2025-09-26 11:28:01.000000000 +0200
@@ -10,7 +10,7 @@
 
 test:
        -find coverage/ -mindepth 1 -delete
-       python $$(which nosetests) $${TESTS}
+       pytest $${TESTS}
 
 clean:
        find . -name '*.py[co]' -delete
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/happybase-1.2.0/NEWS.rst new/happybase-1.3.0/NEWS.rst
--- old/happybase-1.2.0/NEWS.rst        2019-05-14 16:16:06.000000000 +0200
+++ new/happybase-1.3.0/NEWS.rst        2025-09-26 11:28:01.000000000 +0200
@@ -4,6 +4,18 @@
 .. py:currentmodule:: happybase
 
 
+HappyBase 1.3.0
+---------------
+
+Release date: 2025-09-26
+
+* Switch to pytest
+  (`pr 238 <https://github.com/wbolster/happybase/pull/238>`_)
+* Use ``importlib_resources`` package because ``pkg_resources`` is
+  deprecated in Python 3.12
+  (`pr 261 <https://github.com/wbolster/happybase/pull/261>`_)
+
+
 HappyBase 1.2.0
 ---------------
 
@@ -12,7 +24,7 @@
 * Switch from ``thriftpy`` to its successor ``thriftpy2``,
   which supports Python 3.7.
   (`issue #221 <https://github.com/wbolster/happybase/issues/221>`_,
-  `pr 222 <https://github.com/wbolster/happybase/pull/222>`_,
+  `pr 222 <https://github.com/wbolster/happybase/pull/222>`_)
 
 
 HappyBase 1.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/happybase-1.2.0/doc/index.rst 
new/happybase-1.3.0/doc/index.rst
--- old/happybase-1.2.0/doc/index.rst   2019-05-14 16:16:06.000000000 +0200
+++ new/happybase-1.3.0/doc/index.rst   2025-09-26 11:28:01.000000000 +0200
@@ -7,12 +7,12 @@
 **HappyBase** is a developer-friendly Python__ library to interact with `Apache
 HBase`__. HappyBase is designed for use in standard HBase setups, and offers
 application developers a Pythonic API to interact with HBase. Below the 
surface,
-HappyBase uses the `Python Thrift library`__ to connect to HBase using its
+HappyBase uses the `Python ThriftPy2 library`__ to connect to HBase using its
 Thrift__ gateway, which is included in the standard HBase 0.9x releases.
 
 __ http://python.org/
 __ http://hbase.apache.org/
-__ http://pypi.python.org/pypi/thrift
+__ http://pypi.python.org/pypi/thriftpy2
 __ http://thrift.apache.org/
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/happybase-1.2.0/happybase/__init__.py 
new/happybase-1.3.0/happybase/__init__.py
--- old/happybase-1.2.0/happybase/__init__.py   2019-05-14 16:16:06.000000000 
+0200
+++ new/happybase-1.3.0/happybase/__init__.py   2025-09-26 11:28:01.000000000 
+0200
@@ -3,10 +3,11 @@
 HBase.
 """
 
-import pkg_resources as _pkg_resources
+import importlib_resources as _importlib_resources
 import thriftpy2 as _thriftpy
+
 _thriftpy.load(
-    _pkg_resources.resource_filename('happybase', 'Hbase.thrift'),
+    str(_importlib_resources.files('happybase') / 'Hbase.thrift'),
     'Hbase_thrift')
 
 from ._version import __version__  # noqa
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/happybase-1.2.0/happybase/_version.py 
new/happybase-1.3.0/happybase/_version.py
--- old/happybase-1.2.0/happybase/_version.py   2019-05-14 16:16:06.000000000 
+0200
+++ new/happybase-1.3.0/happybase/_version.py   2025-09-26 11:28:01.000000000 
+0200
@@ -5,4 +5,4 @@
 setup.py.
 """
 
-__version__ = '1.2.0'
+__version__ = '1.3.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/happybase-1.2.0/happybase/connection.py 
new/happybase-1.3.0/happybase/connection.py
--- old/happybase-1.2.0/happybase/connection.py 2019-05-14 16:16:06.000000000 
+0200
+++ new/happybase-1.3.0/happybase/connection.py 2025-09-26 11:28:01.000000000 
+0200
@@ -43,7 +43,7 @@
     The `host` and `port` arguments specify the host name and TCP port
     of the HBase Thrift server to connect to. If omitted or ``None``,
     a connection to the default port on ``localhost`` is made. If
-    specifed, the `timeout` argument specifies the socket timeout in
+    specified, the `timeout` argument specifies the socket timeout in
     milliseconds.
 
     If `autoconnect` is `True` (the default) the connection is made
@@ -176,7 +176,7 @@
         self.transport.open()
 
     def close(self):
-        """Close the underyling transport to the HBase instance.
+        """Close the underlying transport to the HBase instance.
 
         This method closes the underlying Thrift transport (TCP connection).
         """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/happybase-1.2.0/happybase/table.py 
new/happybase-1.3.0/happybase/table.py
--- old/happybase-1.2.0/happybase/table.py      2019-05-14 16:16:06.000000000 
+0200
+++ new/happybase-1.3.0/happybase/table.py      2025-09-26 11:28:01.000000000 
+0200
@@ -136,7 +136,7 @@
         """Retrieve multiple rows of data.
 
         This method retrieves the rows with the row keys specified in the
-        `rows` argument, which should be should be a list (or tuple) of row
+        `rows` argument, which should be a list (or tuple) of row
         keys. The return value is a list of `(row_key, row_dict)` tuples.
 
         The `columns`, `timestamp` and `include_timestamp` arguments behave
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/happybase-1.2.0/pytest.ini 
new/happybase-1.3.0/pytest.ini
--- old/happybase-1.2.0/pytest.ini      1970-01-01 01:00:00.000000000 +0100
+++ new/happybase-1.3.0/pytest.ini      2025-09-26 11:28:01.000000000 +0200
@@ -0,0 +1 @@
+pytest --cov=happybase --cov-report html tests/
Binary files old/happybase-1.2.0/python-hbase-logos.png and 
new/happybase-1.3.0/python-hbase-logos.png differ
Binary files old/happybase-1.2.0/python-hbase-logos.xcf and 
new/happybase-1.3.0/python-hbase-logos.xcf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/happybase-1.2.0/requirements.txt 
new/happybase-1.3.0/requirements.txt
--- old/happybase-1.2.0/requirements.txt        2019-05-14 16:16:06.000000000 
+0200
+++ new/happybase-1.3.0/requirements.txt        2025-09-26 11:28:01.000000000 
+0200
@@ -1,2 +1,3 @@
 six
 thriftpy2>=0.4
+importlib-resources
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/happybase-1.2.0/setup.cfg 
new/happybase-1.3.0/setup.cfg
--- old/happybase-1.2.0/setup.cfg       2019-05-14 16:16:06.000000000 +0200
+++ new/happybase-1.3.0/setup.cfg       2025-09-26 11:28:01.000000000 +0200
@@ -1,16 +1,6 @@
-[nosetests]
-stop = 1
-verbosity = 2
-with-coverage = 1
-cover-erase = 1
-cover-package=happybase.connection,happybase.table,happybase.batch,happybase.pool,happybase.util,tests
-cover-tests = 1
-cover-html = 1
-cover-html-dir = coverage/
-
 [build_sphinx]
 source-dir = doc/
 build-dir = doc/build/
 
 [wheel]
-universal = 1
\ No newline at end of file
+universal = 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/happybase-1.2.0/tests/test_api.py 
new/happybase-1.3.0/tests/test_api.py
--- old/happybase-1.2.0/tests/test_api.py       2019-05-14 16:16:06.000000000 
+0200
+++ new/happybase-1.3.0/tests/test_api.py       2025-09-26 11:28:01.000000000 
+0200
@@ -10,19 +10,6 @@
 import six
 from six.moves import range
 
-from nose.tools import (
-    assert_dict_equal,
-    assert_equal,
-    assert_false,
-    assert_in,
-    assert_is_instance,
-    assert_is_not_none,
-    assert_list_equal,
-    assert_not_in,
-    assert_raises,
-    assert_true,
-)
-
 from happybase import Connection, ConnectionPool, NoConnectionsAvailable
 
 HAPPYBASE_HOST = os.environ.get('HAPPYBASE_HOST')
@@ -60,7 +47,7 @@
     global connection, table
     connection = Connection(**connection_kwargs)
 
-    assert_is_not_none(connection)
+    assert connection is not None
 
     maybe_delete_table()
     cfs = {
@@ -71,7 +58,7 @@
     connection.create_table(TEST_TABLE_NAME, families=cfs)
 
     table = connection.table(TEST_TABLE_NAME)
-    assert_is_not_none(table)
+    assert table is not None
 
 
 def teardown_module():
@@ -92,11 +79,11 @@
 
 
 def test_enabling():
-    assert_true(connection.is_table_enabled(TEST_TABLE_NAME))
+    assert connection.is_table_enabled(TEST_TABLE_NAME)
     connection.disable_table(TEST_TABLE_NAME)
-    assert_false(connection.is_table_enabled(TEST_TABLE_NAME))
+    assert not connection.is_table_enabled(TEST_TABLE_NAME)
     connection.enable_table(TEST_TABLE_NAME)
-    assert_true(connection.is_table_enabled(TEST_TABLE_NAME))
+    assert connection.is_table_enabled(TEST_TABLE_NAME)
 
 
 def test_compaction():
@@ -105,14 +92,14 @@
 
 
 def test_prefix():
-    assert_equal(TABLE_PREFIX + b'_', connection._table_name(''))
-    assert_equal(TABLE_PREFIX + b'_foo', connection._table_name('foo'))
+    assert TABLE_PREFIX + b'_' == connection._table_name('')
+    assert TABLE_PREFIX + b'_foo' == connection._table_name('foo')
 
-    assert_equal(connection.table('foobar').name, TABLE_PREFIX + b'_foobar')
-    assert_equal(connection.table('foobar', use_prefix=False).name, b'foobar')
+    assert connection.table('foobar').name == TABLE_PREFIX + b'_foobar'
+    assert connection.table('foobar', use_prefix=False).name == b'foobar'
 
     c = Connection(autoconnect=False)
-    assert_equal(b'foo', c._table_name('foo'))
+    assert b'foo' == c._table_name('foo')
 
     with assert_raises(TypeError):
         Connection(autoconnect=False, table_prefix=123)
@@ -130,13 +117,13 @@
 
 def test_table_listing():
     names = connection.tables()
-    assert_is_instance(names, list)
-    assert_in(TEST_TABLE_NAME, names)
+    assert isinstance(names, list)
+    assert TEST_TABLE_NAME in names
 
 
 def test_table_regions():
     regions = table.regions()
-    assert_is_instance(regions, list)
+    assert isinstance(regions, list)
 
 
 def test_invalid_table_create():
@@ -151,11 +138,11 @@
 def test_families():
     families = table.families()
     for name, fdesc in six.iteritems(families):
-        assert_is_instance(name, bytes)
-        assert_is_instance(fdesc, dict)
-        assert_in('name', fdesc)
-        assert_is_instance(fdesc['name'], six.binary_type)
-        assert_in('max_versions', fdesc)
+        assert isinstance(name, bytes)
+        assert isinstance(fdesc, dict)
+        assert 'name' in fdesc
+        assert isinstance(fdesc['name'], six.binary_type)
+        assert 'max_versions' in fdesc
 
 
 def test_put():
@@ -168,23 +155,23 @@
     row = b'row-with-counter'
     column = 'cf1:counter'
 
-    assert_equal(0, table.counter_get(row, column))
+    assert 0 == table.counter_get(row, column)
 
-    assert_equal(10, table.counter_inc(row, column, 10))
-    assert_equal(10, table.counter_get(row, column))
+    assert 10 == table.counter_inc(row, column, 10)
+    assert 10 == table.counter_get(row, column)
 
     table.counter_set(row, column, 0)
-    assert_equal(1, table.counter_inc(row, column))
-    assert_equal(4, table.counter_inc(row, column, 3))
-    assert_equal(4, table.counter_get(row, column))
+    assert 1 == table.counter_inc(row, column)
+    assert 4 == table.counter_inc(row, column, 3)
+    assert 4 == table.counter_get(row, column)
 
     table.counter_set(row, column, 3)
-    assert_equal(3, table.counter_get(row, column))
-    assert_equal(8, table.counter_inc(row, column, 5))
-    assert_equal(6, table.counter_inc(row, column, -2))
-    assert_equal(5, table.counter_dec(row, column))
-    assert_equal(3, table.counter_dec(row, column, 2))
-    assert_equal(10, table.counter_dec(row, column, -7))
+    assert 3 == table.counter_get(row, column)
+    assert 8 == table.counter_inc(row, column, 5)
+    assert 6 == table.counter_inc(row, column, -2)
+    assert 5 == table.counter_dec(row, column)
+    assert 3 == table.counter_dec(row, column, 2)
+    assert 10 == table.counter_dec(row, column, -7)
 
 
 def test_batch():
@@ -229,13 +216,13 @@
         with table.batch(transaction=True) as b:
             b.put(b'fooz', {b'cf1:bar': b'baz'})
             raise ValueError
-    assert_dict_equal({}, table.row(b'fooz', [b'cf1:bar']))
+    assert {} == table.row(b'fooz', [b'cf1:bar'])
 
     with assert_raises(ValueError):
         with table.batch(transaction=False) as b:
             b.put(b'fooz', {b'cf1:bar': b'baz'})
             raise ValueError
-    assert_dict_equal({b'cf1:bar': b'baz'}, table.row(b'fooz', [b'cf1:bar']))
+    assert {b'cf1:bar': b'baz'} == table.row(b'fooz', [b'cf1:bar'])
 
     with table.batch(batch_size=5) as b:
         for i in range(10):
@@ -246,12 +233,12 @@
         for i in range(95):
             b.put(('row-batch2-%03d' % i).encode('ascii'),
                   {b'cf1:': str(i).encode('ascii')})
-    assert_equal(95, len(list(table.scan(row_prefix=b'row-batch2-'))))
+    assert 95 == len(list(table.scan(row_prefix=b'row-batch2-')))
 
     with table.batch(batch_size=20) as b:
         for i in range(95):
             b.delete(('row-batch2-%03d' % i).encode('ascii'))
-    assert_equal(0, len(list(table.scan(row_prefix=b'row-batch2-'))))
+    assert 0 == len(list(table.scan(row_prefix=b'row-batch2-')))
 
 
 def test_row():
@@ -275,26 +262,26 @@
            b'cf1:col2': b'v2',
            b'cf2:col1': b'v3',
            b'cf2:col2': b'v4'}
-    assert_dict_equal(exp, row(row_key))
+    assert exp == row(row_key)
 
     exp = {b'cf1:col1': b'v1new',
            b'cf1:col2': b'v2'}
-    assert_dict_equal(exp, row(row_key, [b'cf1']))
+    assert exp == row(row_key, [b'cf1'])
 
     exp = {b'cf1:col1': b'v1new',
            b'cf2:col2': b'v4'}
-    assert_dict_equal(exp, row(row_key, [b'cf1:col1', b'cf2:col2']))
+    assert exp == row(row_key, [b'cf1:col1', b'cf2:col2'])
 
     exp = {b'cf1:col1': b'v1old',
            b'cf2:col2': b'v4'}
-    assert_dict_equal(exp, row(row_key, timestamp=2345))
+    assert exp == row(row_key, timestamp=2345)
 
-    assert_dict_equal({}, row(row_key, timestamp=123))
+    assert {} == row(row_key, timestamp=123)
 
     res = row(row_key, include_timestamp=True)
-    assert_equal(len(res), 4)
-    assert_equal(b'v1new', res[b'cf1:col1'][0])
-    assert_is_instance(res[b'cf1:col1'][1], int)
+    assert len(res) == 4
+    assert b'v1new' == res[b'cf1:col1'][0]
+    assert isinstance(res[b'cf1:col1'][1], int)
 
 
 def test_rows():
@@ -314,17 +301,17 @@
     for row_key in row_keys:
         table.put(row_key, data_new)
 
-    assert_dict_equal({}, table.rows([]))
+    assert {} == table.rows([])
 
     rows = dict(table.rows(row_keys))
     for row_key in row_keys:
-        assert_in(row_key, rows)
-        assert_dict_equal(data_new, rows[row_key])
+        assert row_key in rows
+        assert data_new == rows[row_key]
 
     rows = dict(table.rows(row_keys, timestamp=5000))
     for row_key in row_keys:
-        assert_in(row_key, rows)
-        assert_dict_equal(data_old, rows[row_key])
+        assert row_key in rows
+        assert data_old == rows[row_key]
 
 
 def test_cells():
@@ -344,18 +331,18 @@
         table.cells(row_key, col, versions=0)
 
     results = table.cells(row_key, col, versions=1)
-    assert_equal(len(results), 1)
-    assert_equal(b'new', results[0])
+    assert len(results) == 1
+    assert b'new' == results[0]
 
     results = table.cells(row_key, col)
-    assert_equal(len(results), 2)
-    assert_equal(b'new', results[0])
-    assert_equal(b'old', results[1])
+    assert len(results) == 2
+    assert b'new' == results[0]
+    assert b'old' == results[1]
 
     results = table.cells(row_key, col, timestamp=2345, include_timestamp=True)
-    assert_equal(len(results), 1)
-    assert_equal(b'old', results[0][0])
-    assert_equal(1234, results[0][1])
+    assert len(results) == 1
+    assert b'old' == results[0][0]
+    assert 1234 == results[0][1]
 
 
 def test_scan():
@@ -389,36 +376,36 @@
 
     scanner = table.scan(row_start=b'row-scan-a00012',
                          row_stop=b'row-scan-a00022')
-    assert_equal(10, calc_len(scanner))
+    assert 10 == calc_len(scanner)
 
     scanner = table.scan(row_start=b'xyz')
-    assert_equal(0, calc_len(scanner))
+    assert 0 == calc_len(scanner)
 
     scanner = table.scan(row_start=b'xyz', row_stop=b'zyx')
-    assert_equal(0, calc_len(scanner))
+    assert 0 == calc_len(scanner)
 
     scanner = table.scan(row_start=b'row-scan-', row_stop=b'row-scan-a999',
                          columns=[b'cf1:col1', b'cf2:col2'])
     row_key, row = next(scanner)
-    assert_equal(row_key, b'row-scan-a00000')
-    assert_dict_equal(row, {b'cf1:col1': b'v1',
-                            b'cf2:col2': b'v2'})
-    assert_equal(2000 - 1, calc_len(scanner))
+    assert row_key == b'row-scan-a00000'
+    assert row == {b'cf1:col1': b'v1',
+                            b'cf2:col2': b'v2'}
+    assert 2000 - 1 == calc_len(scanner)
 
     scanner = table.scan(row_prefix=b'row-scan-a', batch_size=499, limit=1000)
-    assert_equal(1000, calc_len(scanner))
+    assert 1000 == calc_len(scanner)
 
     scanner = table.scan(row_prefix=b'row-scan-b', batch_size=1, limit=10)
-    assert_equal(10, calc_len(scanner))
+    assert 10 == calc_len(scanner)
 
     scanner = table.scan(row_prefix=b'row-scan-b', batch_size=5, limit=10)
-    assert_equal(10, calc_len(scanner))
+    assert 10 == calc_len(scanner)
 
     scanner = table.scan(timestamp=123)
-    assert_equal(0, calc_len(scanner))
+    assert 0 == calc_len(scanner)
 
     scanner = table.scan(row_prefix=b'row', timestamp=123)
-    assert_equal(0, calc_len(scanner))
+    assert 0 == calc_len(scanner)
 
     scanner = table.scan(batch_size=20)
     next(scanner)
@@ -440,9 +427,9 @@
 
     scan = table.scan(row_start=input_key, sorted_columns=True)
     key, row = next(scan)
-    assert_equal(key, input_key)
-    assert_list_equal(
-        sorted(input_row.items()),
+    assert key == input_key
+    assert (
+        sorted(input_row.items()) ==
         list(row.items()))
 
 
@@ -460,18 +447,18 @@
                    b'cf1:col2': b'v2'})
 
     scan = table.scan(row_prefix=b'row-scan-reverse', reverse=True)
-    assert_equal(2000, len(list(scan)))
+    assert 2000 == len(list(scan))
 
     scan = table.scan(limit=10, reverse=True)
-    assert_equal(10, len(list(scan)))
+    assert 10 == len(list(scan))
 
     scan = table.scan(row_start=b'row-scan-reverse-1999',
                       row_stop=b'row-scan-reverse-0000', reverse=True)
     key, data = next(scan)
-    assert_equal(b'row-scan-reverse-1999', key)
+    assert b'row-scan-reverse-1999' == key
 
     key, data = list(scan)[-1]
-    assert_equal(b'row-scan-reverse-0001', key)
+    assert b'row-scan-reverse-0001' == key
 
 
 def test_scan_filter_and_batch_size():
@@ -490,22 +477,22 @@
     table.put(row_key, data)
 
     table.delete(row_key, [b'cf1:col2'], timestamp=2345)
-    assert_equal(1, len(table.cells(row_key, b'cf1:col2', versions=2)))
-    assert_dict_equal(data, table.row(row_key))
+    assert 1 == len(table.cells(row_key, b'cf1:col2', versions=2))
+    assert data == table.row(row_key)
 
     table.delete(row_key, [b'cf1:col1'])
     res = table.row(row_key)
-    assert_not_in(b'cf1:col1', res)
-    assert_in(b'cf1:col2', res)
-    assert_in(b'cf1:col3', res)
+    assert b'cf1:col1' not in res
+    assert b'cf1:col2' in res
+    assert b'cf1:col3' in res
 
     table.delete(row_key, timestamp=12345)
     res = table.row(row_key)
-    assert_in(b'cf1:col2', res)
-    assert_in(b'cf1:col3', res)
+    assert b'cf1:col2' in res
+    assert b'cf1:col3' in res
 
     table.delete(row_key)
-    assert_dict_equal({}, table.row(row_key))
+    assert {} == table.row(row_key)
 
 
 def test_connection_pool_construction():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/happybase-1.2.0/tests/test_util.py 
new/happybase-1.3.0/tests/test_util.py
--- old/happybase-1.2.0/tests/test_util.py      2019-05-14 16:16:06.000000000 
+0200
+++ new/happybase-1.3.0/tests/test_util.py      2025-09-26 11:28:01.000000000 
+0200
@@ -4,8 +4,6 @@
 
 from codecs import decode, encode
 
-from nose.tools import assert_equal, assert_less
-
 import happybase.util as util
 
 
@@ -14,13 +12,13 @@
 
         x1 = util.camel_case_to_pep8(lower_cc)
         x2 = util.camel_case_to_pep8(upper_cc)
-        assert_equal(correct, x1)
-        assert_equal(correct, x2)
+        assert correct == x1
+        assert correct == x2
 
         y1 = util.pep8_to_camel_case(x1, True)
         y2 = util.pep8_to_camel_case(x2, False)
-        assert_equal(upper_cc, y1)
-        assert_equal(lower_cc, y2)
+        assert upper_cc == y1
+        assert lower_cc == y2
 
     examples = [('foo', 'Foo', 'foo'),
                 ('fooBar', 'FooBar', 'foo_bar'),
@@ -28,7 +26,7 @@
                 ('fOO', 'FOO', 'f_o_o')]
 
     for a, b, c in examples:
-        yield check, a, b, c
+        check(a, b, c)
 
 
 def test_bytes_increment():
@@ -36,8 +34,8 @@
         s = decode(s_hex, 'hex')
         v = util.bytes_increment(s)
         v_hex = encode(v, 'hex')
-        assert_equal(expected, v_hex)
-        assert_less(s, v)
+        assert expected == v_hex
+        assert s < v
 
     test_values = [
         (b'00', b'01'),
@@ -53,4 +51,4 @@
     assert util.bytes_increment(b'\xff\xff\xff') is None
 
     for s, expected in test_values:
-        yield check, s, expected
+        check(s, expected)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/happybase-1.2.0/tox.ini new/happybase-1.3.0/tox.ini
--- old/happybase-1.2.0/tox.ini 2019-05-14 16:16:06.000000000 +0200
+++ new/happybase-1.3.0/tox.ini 2025-09-26 11:28:01.000000000 +0200
@@ -3,6 +3,7 @@
 
 [testenv]
 deps=
-    nose
+    pytest
+    pytest-cov
     coverage
-commands=nosetests
+commands=pytest

Reply via email to