Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-xcffib for openSUSE:Factory checked in at 2021-07-16 22:12:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-xcffib (Old) and /work/SRC/openSUSE:Factory/.python-xcffib.new.2632 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-xcffib" Fri Jul 16 22:12:46 2021 rev:10 rq:906657 version:0.11.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-xcffib/python-xcffib.changes 2020-10-29 09:22:16.462685920 +0100 +++ /work/SRC/openSUSE:Factory/.python-xcffib.new.2632/python-xcffib.changes 2021-07-16 22:13:19.378583950 +0200 @@ -1,0 +2,15 @@ +Fri Jul 16 11:27:23 UTC 2021 - Matej Cepl <mc...@suse.com> + +- Replace use of nose2 by pytest. There is no need to do anything + else. + +------------------------------------------------------------------- +Thu Jul 8 13:19:04 UTC 2021 - Mark??ta Machov?? <mmach...@suse.com> + +- Update to 0.11.1 + * connection: don't automatically disconnect() on connection error + * drop support for python 3.5 + * tests: switch to nose2 + * travis: test python 3.9 + +------------------------------------------------------------------- Old: ---- xcffib-0.10.1.tar.gz New: ---- xcffib-0.11.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-xcffib.spec ++++++ --- /var/tmp/diff_new_pack.8rrrC4/_old 2021-07-16 22:13:19.858580558 +0200 +++ /var/tmp/diff_new_pack.8rrrC4/_new 2021-07-16 22:13:19.862580530 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-xcffib # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-xcffib -Version: 0.10.1 +Version: 0.11.1 Release: 0 Summary: A drop in replacement for xpyb, an XCB python binding License: Apache-2.0 @@ -27,7 +27,7 @@ URL: https://github.com/tych0/xcffib Source: https://files.pythonhosted.org/packages/source/x/xcffib/xcffib-%{version}.tar.gz BuildRequires: %{python_module cffi >= 1.1.0} -BuildRequires: %{python_module nose} +BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module six} BuildRequires: fdupes @@ -55,7 +55,7 @@ %python_expand %fdupes %{buildroot}%{$python_sitelib} %check -%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} xvfb-run nosetests-%{$python_bin_suffix} -v +%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} xvfb-run pytest-%{$python_bin_suffix} -v %files %{python_files} %license LICENSE ++++++ xcffib-0.10.1.tar.gz -> xcffib-0.11.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xcffib-0.10.1/PKG-INFO new/xcffib-0.11.1/PKG-INFO --- old/xcffib-0.10.1/PKG-INFO 2020-07-22 04:06:39.721261300 +0200 +++ new/xcffib-0.11.1/PKG-INFO 2020-11-29 16:55:27.120034700 +0100 @@ -1,23 +1,21 @@ Metadata-Version: 1.1 Name: xcffib -Version: 0.10.1 +Version: 0.11.1 Summary: A drop in replacement for xpyb, an XCB python binding Home-page: http://github.com/tych0/xcffib Author: Tycho Andersen -Author-email: ty...@tycho.ws +Author-email: tycho@tycho.pizza License: Apache License 2.0 Description: UNKNOWN Keywords: xcb xpyb cffi x11 x windows Platform: UNKNOWN -Classifier: Development Status :: 4 - Beta +Classifier: Development Status :: 5 - Production/Stable Classifier: License :: OSI Approved :: Apache Software License -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Software Development :: Libraries diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xcffib-0.10.1/README.md new/xcffib-0.11.1/README.md --- old/xcffib-0.10.1/README.md 2020-05-25 06:43:26.000000000 +0200 +++ new/xcffib-0.11.1/README.md 2020-11-18 03:22:53.000000000 +0100 @@ -1,4 +1,4 @@ -# xcffib [](https://travis-ci.org/tych0/xcffib) +# xcffib [](https://github.com/tych0/xcffib/actions) `xcffib` is intended to be a (mostly) drop-in replacement for `xpyb`. `xpyb` has an inactive upstream, several memory leaks, is python2 only and doesn't @@ -19,9 +19,9 @@ ## Development dependencies -You should be able to install all the language deps from hackage or pip. The -[.travis.yaml](https://github.com/tych0/xcffib/blob/master/.travis.yml) has an -example of how to install the dependencies on Ubuntu flavors. +You should be able to install all the language deps from hackage or pip. +[.github/workflows/ci.yaml](https://github.com/tych0/xcffib/blob/master/.github/workflows/ci.yaml) +has an example of how to install the dependencies on Ubuntu flavors. ## Hacking diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xcffib-0.10.1/setup.py new/xcffib-0.11.1/setup.py --- old/xcffib-0.10.1/setup.py 2020-07-22 04:06:39.000000000 +0200 +++ new/xcffib-0.11.1/setup.py 2020-11-29 16:55:26.000000000 +0100 @@ -50,17 +50,11 @@ else: requires_cffi = "cffi>=1.1.0" -# PyPy < 2.6 hack, can be dropped when PyPy3 2.6 is released -if requires_cffi.startswith("cffi==0."): - cffi_args = dict( - ext_package="xcffib" - ) -else: - cffi_args = dict( - cffi_modules=["xcffib/ffi_build.py:ffi"] - ) +cffi_args = dict( + cffi_modules=["xcffib/ffi_build.py:ffi"] +) -version = "0.10.1" +version = "0.11.1" dependencies = ['six', requires_cffi] setup( @@ -71,7 +65,7 @@ license="Apache License 2.0", url="http://github.com/tych0/xcffib", author="Tycho Andersen", - author_email="ty...@tycho.ws", + author_email="tycho@tycho.pizza", install_requires=dependencies, setup_requires=dependencies, packages=['xcffib'], @@ -82,15 +76,13 @@ 'install': binding_install }, classifiers=[ - 'Development Status :: 4 - Beta', + 'Development Status :: 5 - Production/Stable', 'License :: OSI Approved :: Apache Software License', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', 'Topic :: Software Development :: Libraries' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xcffib-0.10.1/test/test_connection.py new/xcffib-0.11.1/test/test_connection.py --- old/xcffib-0.10.1/test/test_connection.py 2019-12-29 01:30:22.000000000 +0100 +++ new/xcffib-0.11.1/test/test_connection.py 2020-11-18 03:07:13.000000000 +0100 @@ -22,9 +22,6 @@ from xcffib.testing import XvfbTest from .testing import XcffibTest -from nose.tools import raises -from nose import SkipTest - import struct class TestConnection(XcffibTest): @@ -37,10 +34,14 @@ self.xproto = None XvfbTest.tearDown(self) - @raises(xcffib.ConnectionException) def test_invalid_display(self): - self.conn = xcffib.Connection('notvalid') - self.conn.invalid() + try: + self.conn = xcffib.Connection('notvalid') + self.conn.invalid() + except xcffib.ConnectionException: + pass + else: + raise Exception("no connection exception!") def test_get_setup(self): setup = self.conn.get_setup() @@ -58,31 +59,12 @@ assert screen.height_in_pixels == self.height assert screen.root_depth == self.depth - def test_seq_increases(self): - # If this test starts failing because the sequence numbers don't mach, - # that's probably because you added a new test that imports a new X - # extension. When that happens, every new connection automatically does - # a QueryExtention for each new ext that has been imported, so the - # squence numbers go up by one. - # - # i.e: - # xproto setup query = seqno 0 - # xtest setup query = seqno 1 - raise SkipTest - assert self.xproto.GetInputFocus().sequence == 2 - assert self.xproto.GetInputFocus().sequence == 3 - def test_discard_sequence(self): cookie = self.xproto.GetInputFocus() cookie.discard_reply() # this hangs if you leave it in, because the reply really was discarded # assert cookie.reply() - @raises(xcffib.ConnectionException) - def test_invalid(self): - conn = xcffib.Connection('notadisplay') - conn.invalid() - def test_list_extensions(self): reply = self.conn.core.ListExtensions().reply() exts = [ext.name.to_string() for ext in reply.names] @@ -100,9 +82,13 @@ assert reply.width == 1 assert reply.height == 1 - @raises(xcffib.XcffibException) def test_wait_for_nonexistent_request(self): - self.conn.wait_for_reply(10) + try: + self.conn.wait_for_reply(10) + except xcffib.XcffibException: + pass + else: + raise Exception("xcffib exception expected") def test_no_windows(self): # Make sure there aren't any windows in the root window. This mostly @@ -120,18 +106,26 @@ assert len(reply.children) == 1 assert reply.children[0] == wid - @raises(AssertionError) def test_checking_unchecked_fails(self): - wid = self.conn.generate_id() - self.create_window(wid) - self.xproto.QueryTreeUnchecked(self.default_screen.root).check() + try: + wid = self.conn.generate_id() + self.create_window(wid) + self.xproto.QueryTreeUnchecked(self.default_screen.root).check() + except AssertionError: + pass + else: + raise Exception("expected assertion error") - @raises(AssertionError) def test_checking_default_checked_fails(self): - wid = self.conn.generate_id() - self.create_window(wid) - cookie = self.xproto.QueryTree(self.default_screen.root) - cookie.check() + try: + wid = self.conn.generate_id() + self.create_window(wid) + cookie = self.xproto.QueryTree(self.default_screen.root) + cookie.check() + except AssertionError: + pass + else: + raise Exception("expected assertion error") def test_checking_foreced_checked_succeeds(self): wid = self.conn.generate_id() @@ -145,10 +139,14 @@ e = self.conn.wait_for_event() assert isinstance(e, xcffib.xproto.CreateNotifyEvent) - @raises(xcffib.xproto.WindowError) def test_query_invalid_wid_generates_error(self): - # query a bad WINDOW - self.xproto.QueryTree(0xf00).reply() + try: + # query a bad WINDOW + self.xproto.QueryTree(0xf00).reply() + except xcffib.xproto.WindowError: + pass + else: + raise Exception("expected WindowError") def test_OpenFont(self): fid = self.conn.generate_id() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xcffib-0.10.1/xcffib/__init__.py new/xcffib-0.11.1/xcffib/__init__.py --- old/xcffib-0.10.1/xcffib/__init__.py 2020-07-22 04:06:39.000000000 +0200 +++ new/xcffib-0.11.1/xcffib/__init__.py 2020-11-29 16:55:26.000000000 +0100 @@ -38,7 +38,7 @@ lib = ffi.dlopen(soname) __xcb_proto_version__ = "1.14" -__version__ = "0.10.1" +__version__ = "0.11.1" X_PROTOCOL = lib.X_PROTOCOL X_PROTOCOL_REVISION = lib.X_PROTOCOL_REVISION @@ -637,8 +637,9 @@ return lib.xcb_generate_id(self._conn) def disconnect(self): - self.invalid() - return lib.xcb_disconnect(self._conn) + if self._conn is not None: + lib.xcb_disconnect(self._conn) + self._conn = None def _process_error(self, c_error): self.invalid() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xcffib-0.10.1/xcffib/wrappers.py new/xcffib-0.11.1/xcffib/wrappers.py --- old/xcffib-0.10.1/xcffib/wrappers.py 1970-01-01 01:00:00.000000000 +0100 +++ new/xcffib-0.11.1/xcffib/wrappers.py 2020-11-29 16:55:26.000000000 +0100 @@ -0,0 +1,37 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +def IDWrapper(freer): + """ + Classes create with IDWrapper return an ID and then free it upon exit of the + context. + """ + class Wrapper: + def __init__(self, conn): + self.conn = conn + self.id = None + + def __enter__(self): + self.id = self.conn.generate_id() + return self.id + + def __exit__(self, exception_type, exception_value, traceback): + getattr(self.conn.core, freer)(self.id) + + return Wrapper + + +PixmapID = IDWrapper("FreePixmap") +GContextID = IDWrapper("FreeGC") +ColormapID = IDWrapper("FreeColormap") +CursorID = IDWrapper("FreeCursor") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xcffib-0.10.1/xcffib.egg-info/PKG-INFO new/xcffib-0.11.1/xcffib.egg-info/PKG-INFO --- old/xcffib-0.10.1/xcffib.egg-info/PKG-INFO 2020-07-22 04:06:39.000000000 +0200 +++ new/xcffib-0.11.1/xcffib.egg-info/PKG-INFO 2020-11-29 16:55:27.000000000 +0100 @@ -1,23 +1,21 @@ Metadata-Version: 1.1 Name: xcffib -Version: 0.10.1 +Version: 0.11.1 Summary: A drop in replacement for xpyb, an XCB python binding Home-page: http://github.com/tych0/xcffib Author: Tycho Andersen -Author-email: ty...@tycho.ws +Author-email: tycho@tycho.pizza License: Apache License 2.0 Description: UNKNOWN Keywords: xcb xpyb cffi x11 x windows Platform: UNKNOWN -Classifier: Development Status :: 4 - Beta +Classifier: Development Status :: 5 - Production/Stable Classifier: License :: OSI Approved :: Apache Software License -Classifier: Programming Language :: Python :: 2 -Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 +Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: Implementation :: CPython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Topic :: Software Development :: Libraries diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xcffib-0.10.1/xcffib.egg-info/SOURCES.txt new/xcffib-0.11.1/xcffib.egg-info/SOURCES.txt --- old/xcffib-0.10.1/xcffib.egg-info/SOURCES.txt 2020-07-22 04:06:39.000000000 +0200 +++ new/xcffib-0.11.1/xcffib.egg-info/SOURCES.txt 2020-11-29 16:55:27.000000000 +0100 @@ -29,6 +29,7 @@ xcffib/shm.py xcffib/sync.py xcffib/testing.py +xcffib/wrappers.py xcffib/xc_misc.py xcffib/xevie.py xcffib/xf86dri.py