Hello community,

here is the log from the commit of package python-pyudev for openSUSE:Factory 
checked in at 2020-10-29 09:47:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyudev (Old)
 and      /work/SRC/openSUSE:Factory/.python-pyudev.new.3463 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pyudev"

Thu Oct 29 09:47:14 2020 rev:22 rq:840460 version:0.22.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyudev/python-pyudev.changes      
2020-03-08 22:21:41.099986669 +0100
+++ /work/SRC/openSUSE:Factory/.python-pyudev.new.3463/python-pyudev.changes    
2020-10-29 09:47:17.616111230 +0100
@@ -1,0 +2,7 @@
+Thu Oct  8 23:03:04 UTC 2020 - Matej Cepl <mc...@suse.com>
+
+- Add pytest_register_mark.patch to make the test suite at least
+  syntactically correct and skip over tests we cannot run because
+  of missing /dev gh#pyudev/pyudev#404.
+
+-------------------------------------------------------------------

New:
----
  pytest_register_mark.patch

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

Other differences:
------------------
++++++ python-pyudev.spec ++++++
--- /var/tmp/diff_new_pack.xBpUNG/_old  2020-10-29 09:47:18.256111835 +0100
+++ /var/tmp/diff_new_pack.xBpUNG/_new  2020-10-29 09:47:18.256111835 +0100
@@ -17,7 +17,6 @@
 
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%bcond_with     test
 Name:           python-pyudev
 Version:        0.22.0
 Release:        0
@@ -26,22 +25,27 @@
 Group:          Development/Libraries/Python
 URL:            http://pyudev.readthedocs.org/
 Source0:        
https://files.pythonhosted.org/packages/source/p/pyudev/pyudev-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM pytest_register_mark.patch gh#pyudev/pyudev#404 
mc...@suse.com
+# Add missing mark registration and register and use another mark
+Patch0:         pytest_register_mark.patch
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  %{python_module six}
 BuildRequires:  fdupes
 BuildRequires:  pkgconfig
 BuildRequires:  python-rpm-macros
 BuildRequires:  pkgconfig(libudev)
+BuildRequires:  pkgconfig(udev)
 Requires:       libudev1
 Requires:       python-six
 BuildArch:      noarch
-%if %{with test}
+BuildRequires:  %{python_module Sphinx}
 BuildRequires:  %{python_module docutils}
 BuildRequires:  %{python_module hypothesis}
 BuildRequires:  %{python_module mock}
+BuildRequires:  %{python_module pylint}
 BuildRequires:  %{python_module pytest}
 BuildRequires:  %{python_module six}
-%endif
+BuildRequires:  %{python_module yapf}
 %ifpython2
 # pyudev was last used in KDE:Unstable:Playground (pyudev-0.8)
 Provides:       pyudev = %{version}
@@ -54,7 +58,8 @@
 in modern linux systems.
 
 %prep
-%setup -q -n pyudev-%{version}
+%autosetup -p1 -n pyudev-%{version}
+
 # Disable intersphinx and issuetracker, we don't want to access the web during 
doc build:
 sed -i -e "s|'sphinx.ext.intersphinx',\\?||" -e 
"s|'sphinxcontrib.issuetracker',\\?||" doc/conf.py
 
@@ -65,10 +70,9 @@
 %python_install
 %python_expand %fdupes %{buildroot}%{$python_sitelib}
 
-%if %{with test}
 %check
-%python_expand nosetests-%{$python_bin_suffix}
-%endif
+# We don't have real /dev in osc build chroot gh#pyudev/pyudev#404
+%pytest -k 'not real_udev'
 
 %files %{python_files}
 %license COPYING

++++++ pytest_register_mark.patch ++++++
---
 pytest.ini                               |    5 ++++-
 tests/_device_tests/_attributes_tests.py |    1 +
 tests/_device_tests/_device_tests.py     |    1 +
 tests/_device_tests/_devices_tests.py    |    3 +++
 tests/test_enumerate.py                  |    8 +++++---
 tests/test_util.py                       |    2 ++
 6 files changed, 16 insertions(+), 4 deletions(-)

--- a/pytest.ini
+++ b/pytest.ini
@@ -1,3 +1,6 @@
-[tool:pytest]
+[pytest]
 # do not search for tests in build directory
 norecursedirs = .* _* build
+markers =
+    conversion
+    real_udev
--- a/tests/_device_tests/_attributes_tests.py
+++ b/tests/_device_tests/_attributes_tests.py
@@ -124,6 +124,7 @@ class TestAttributes(object):
                 with pytest.raises(ValueError):
                     device.attributes.asbool(key)
 
+    @pytest.mark.real_udev
     @_UDEV_TEST(167, "test_available_attributes")
     @given(strategies.sampled_from(_DEVICES))
     @settings(max_examples=5)
--- a/tests/_device_tests/_devices_tests.py
+++ b/tests/_device_tests/_devices_tests.py
@@ -127,6 +127,7 @@ class TestDevices(object):
         assert error.subsystem == 'no_such_subsystem'
         assert error.sys_name == 'foobar'
 
+    @pytest.mark.real_udev
     @failed_health_check_wrapper
     @given(
         _CONTEXT_STRATEGY,
@@ -142,6 +143,7 @@ class TestDevices(object):
            Devices.from_device_number(a_context, typ, a_device.device_number)
         assert a_device == device
 
+    @pytest.mark.real_udev
     @failed_health_check_wrapper
     @given(
         _CONTEXT_STRATEGY,
@@ -177,6 +179,7 @@ class TestDevices(object):
         with pytest.raises(DeviceNotFoundByNumberError):
             Devices.from_device_number(_CONTEXT, 'foobar', 100)
 
+    @pytest.mark.real_udev
     @failed_health_check_wrapper
     @given(
         _CONTEXT_STRATEGY,
--- a/tests/test_util.py
+++ b/tests/test_util.py
@@ -124,6 +124,7 @@ def raise_valueerror():
 _CHAR_DEVICES = list(_CONTEXT.list_devices(subsystem="tty"))
 
 
+@pytest.mark.real_udev
 @pytest.mark.skipif(len(_CHAR_DEVICES) == 0, reason='no tty devices')
 @given(strategies.sampled_from(_CHAR_DEVICES))
 @settings(max_examples=5)
@@ -137,6 +138,7 @@ def test_get_device_type_character_devic
 _BLOCK_DEVICES = list(_CONTEXT.list_devices(subsystem="block"))
 
 
+@pytest.mark.real_udev
 @pytest.mark.skipif(len(_BLOCK_DEVICES) == 0, reason='no block devices')
 @given(strategies.sampled_from(_BLOCK_DEVICES))
 @settings(max_examples=5)
--- a/tests/test_enumerate.py
+++ b/tests/test_enumerate.py
@@ -19,6 +19,7 @@ from __future__ import (print_function,
                         absolute_import)
 
 import mock
+import pytest
 
 from hypothesis import given
 from hypothesis import settings
@@ -98,7 +99,7 @@ class TestEnumerator(object):
 
     @failed_health_check_wrapper
     @given(_CONTEXT_STRATEGY, _SUBSYSTEM_STRATEGY)
-    @settings(max_examples=1)
+    @settings(max_examples=1, deadline=None)
     def test_match_subsystem_nomatch(self, context, subsystem):
         """
         Subsystem no match gets no subsystem with subsystem.
@@ -151,7 +152,7 @@ class TestEnumerator(object):
 
     @failed_health_check_wrapper
     @given(_CONTEXT_STRATEGY, _MATCH_PROPERTY_STRATEGY)
-    @settings(max_examples=25)
+    @settings(max_examples=25, deadline=None)
     def test_match_property_string(self, context, pair):
         """
         Match property only gets devices with that property.
@@ -233,6 +234,7 @@ class TestEnumeratorMatchCombinations(ob
     Test combinations of matches.
     """
 
+    @pytest.mark.real_udev
     @given(_CONTEXT_STRATEGY,
            strategies.lists(
                elements=_MATCH_PROPERTY_STRATEGY,
@@ -262,7 +264,7 @@ class TestEnumeratorMatchCombinations(ob
 
     @given(_CONTEXT_STRATEGY, _SUBSYSTEM_STRATEGY, _SYSNAME_STRATEGY,
            _MATCH_PROPERTY_STRATEGY)
-    @settings(max_examples=10)
+    @settings(max_examples=10, deadline=None)
     def test_match(self, context, subsystem, sysname, ppair):
         """
         Test that matches from different categories are a conjunction.

Reply via email to