Sync from SUSE:SLFO:Main python-pywbem revision 9b22138b84b9070aeae07e0648609741

This commit is contained in:
Adrian Schröter 2024-10-11 10:08:15 +02:00
parent ec198bb677
commit 09b5279f67
5 changed files with 331 additions and 37 deletions

View File

@ -1,3 +1,250 @@
-------------------------------------------------------------------
Thu Sep 26 06:02:23 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Add patch support-new-testfixtures.patch:
* Support testfixtures >= 8.3.0.
-------------------------------------------------------------------
Mon May 13 03:49:48 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Update to 1.7.2:
* Bug fixes:
+ Fix issue where pywbemlistener that fails startup can cause thread
exception.
* Incompatible changes:
+ Dropped support for Python 3.5.
+ In order to make life easier for people that package pywbem into Linux
distros, vendorized the nocasedict and nocaselist packages.
+ Update to support urllib3 dependent package version 2.0+ for Python
version 3.7+.
* Bug fixes:
+ Fixed a doc build issue with Sphinx 6.x and addressed some of the
Sphinx warnings during doc build.
+ Test: Fixed issues resulting from removal of support for
pytest.warns(None) in pytest version 8.
+ Fixed new Pylint issue for unused variable 'exp_result'.
+ Test: Fixed issue in test_recorder.py where format of OrderDict repl
output changed with python 3.12
* Enhancements:
+ Update handling of request exceptions in CIM_http.py to account for
changes to the urllib3 exceptions API that occurred in urllib3 version
2.0.0 and keep the capability to handle the urllib3 exceptions API
prior to versiion 2.0.
+ Add end2end tests for operation timeout.
+ Document the issue and possible corrections for the pywbem listener
possibly losing indications.
* Cleanup:
+ Clarified the use of the host parameter on the WBEMListener class.
+ Bring example pegasusindicationtest.py up to date and extend to be used
with WBEM server in a container.
+ Fix issue in pywbem_mock._base_provider where __repr__ had invalid
parameter
+ Extend support to Python version 3.12.
+ Moved the version constraints for the 'idna' package into the pywbem
installation dependencies since it is an indirect dependency.
+ Changed the format of the README and README_PYPI files from RST to
Markdown.
- Switch to autosetup macro.
- Stop skipping tests on Python 3.12.
- No longer {Build,}Require urllib3 < 2.
-------------------------------------------------------------------
Thu Jan 18 21:15:49 UTC 2024 - Ben Greiner <code@bnavigator.de>
- Skip tests failing on python312
* changed repr of OrderedDict gh#pywbem/pywbem#3097
* unexpected DeprecationWarnings
-------------------------------------------------------------------
Wed Oct 25 09:55:41 UTC 2023 - Ben Greiner <code@bnavigator.de>
- Update to 1.6.2
## Incompatible changes:
* The 'pywbem.ValueMapping' class will now raise a
'pywbem.ModelError' for any missing or extra items in the
'Values' qualifier, compared to the 'ValueMap' qualifier.
Previously, 'IndexError' was raised. (issue #2991)
## Bug fixes:
* Fixed coveralls issues with KeyError and HTTP 422 Unprocessable
Entity.
* Circumvented the removal of Python 2.7 from the Github Actions
plugin setup-python, by using the Docker container
python:2.7.18-buster instead.
* Fixed missing dependencies in minimum-constraints.txt.
* Fixed safety issues as of 8/21.
## Enhancements:
* The 'pywbem.ValueMapping' class now allows controlling what
should happen when the 'Values' qualifier has missing or extra
items compared to the 'ValueMap' qualifier, by means of a new
'values_default' parameter of the respective factory methods.
If 'values_default' is None (default), a 'pywbem.ModelError' is
raised for missing or extra 'Values' items. If it specifies a
string value, missing items in the 'Values' qualifier are
filled up with that value, and extra items in the 'Values'
qualifier are truncated. (issue #2991)
## Cleanup:
* Replaced the safety_ignore_opts in Makefile that is used as the
basis for ignoring safety issues with the use of a
.safety_policy_file defined by the safety utility.
* Add a number of new ignores for additions to the safety issues
lise May 2003
- pywbem 1.6.1
## Bug fixes:
* Fixed a doc build issue with Sphinx 6.x (issue #2983) and
addressed some of the Sphinx warnings during doc build.
- pywbem 1.6.0
## Bug fixes:
* Fix issue where we could get HTTP retries upon HTTP read
timeouts from the server. Changed to not allow urllib3 to do
retries on post operations (the CIM/XML operations all use post
and duplicates of some operations (invoke, update) could cause
data integrity issues). (see issue #2951)
## Enhancements:
* Support for Python 3.11. (issue #2904)
## Cleanup:
* Ignore new safety issues for wheel, safety, and py packages and
update values in minimum-requirements.txt.
* Modify Makefile so safety check does not cause fatal github
test failure. (see issue #2970)
* Update the version of the OpenPegasus server Docker image used
in tests to the docker image
kschopmeyer/openpegasus-server:0.1.2 which used OpenPegasus
2.14.3 located in the github OpenPegasus repository. This image
is much smaller (110 mb) but the same set of models and
providers as the previous image.
* Modifications and pylint ignore statements for new pylint test
for dict form dict(a=1) which is slower than {'a':1} and other
new tests in pylint 2.16.0
- pywbem 1.5.0
## Incompatible changes:
* Exceeding the 'WBEMConnection' timeout now results in raising
'pywbem.TimeoutError' in some cases where previously
'pywbem.ConnectionError' was raised. (issue #2853)
* Changed the file permissions of setup.py to no longer be
executable, in order to encourage transition to use pip install
instead of executing setup.py install, which was deprecated by
setuptools.
* The removal of internal symbols from the 'pywbem_mock' Python
namespace may cause name errors in your code, if you were using
them. (related to issue #2888)
* The pywbem_mock default instance writer
(pywbem_mock/_instancewriteprovider.py) added checks for
creation/modification of instances to validate that the
reference properties of associations define existing instances
if the property values exist. Previously they validated only
the correct value type. (see issue #2908, extension to
bidirectional inter-namespace associations)
## Bug fixes:
* Fix issue where the DeepInheritance parameter not passed to the
mocker OpenEnumerateInstances method so the result is that the
mocker always uses the default (DeepInheritance=True). (see
issue #2839)
* Test: Mitigated incorrect version of testfixtures package on
Python 3.5 by pinning it to <6.4.0 on Python 3.5. (issue #2855)
* Documented that the pywbem MOF compiler does not support the
"EmbeddedObject" qualifier with a class definition. (issue
#2340)
* Docs: Changes in autodocsumm and Sphinx versions to pick up
final fix for issue #2697.
* Re-enabled pylint on Python 3.5 (issue #2674)
* Increased pylint to >=2.10 on Python >=3.6 to pick up fixes in
similarity checker and enabled similarity checker again on
pylint >=2.10 (issues #2672, #2673)
* Excluded setuptools 61.0.0 because it breaks installation via
"setup.py install" (issue #2871)
* Resolved new issues reported by Pylint 2.13 (issue #2870)
* Fixed that the added setup.py commands (test, leaktest,
installtest) were not displayed. They are now displayed at
verbosity level 1 (using '-v').
* Previously, the sending of CIM request messages was retried in
case no response was received within the timeout. This could
potentially have resulted in executing operations multipe
times. That is an issue for non-idempotent operations such as
instance creation/deletion or method invocation. Fixed that by
retrying now only during connection setup, but not for the
sending of CIM request messages. (issue #2853)
* Changed the default timeout of 'WBEMConnection' from 'None' to
30 seconds. This prevents waiting for operation completion
forever, by default. (issue #2853)
* Pinned "certifi" to <2020.6.20 on Python 2.7 because the
install test using "setup.py install" started failing because
it installed a version of certifi on Python 2.7 that properly
declares that it requires Python >=3.6.
* Added a note to the install section of the documentation that
installation via setup.py install has been deprecated by
setuptools.
* Removed internal symbols from 'pywbem_mock' Python namespace,
and added the 'config' submodule to the 'pywbem_mock' Python
namespace. (related to issue #2888)
* Fixed invalid references in the documentation. As part of that,
added class 'MOFWBEMConnection' to the 'pywbem' namespace,
moved class 'IterQueryInstancesReturn' from the scope of method
'pywbem.IterQueryInstances' to the 'pywbem' namespace. (issue
#2888).
* Fixed the name of the cythonized distribution archive.
* Fixed new formatting issues raised by flake8 5.0.
* Fixed issue in pywbem_mock/_wbemconnection_mock.py
add_namespaces where namespaces that are added with
add_namespace() after an interop provider is defined do not
show up in the list of namespaces. It now uses
server.create_namespace() if the interop namespace and
namespace provider exist. (see issue #2865)
* Fixed a RecursionError exception raised by flake8 on Python 3.6
and 3.7. (issue #2922)
* Fixed issue in pywbem_mock instancewrite providers where
Create/Modify of an instance with reference properties fails if
host set in reference property (i.e. CIMInstanceName). Now
issues a warning and ignores the host value since pywbem_mock
does not handle cross-host associations. (see issue #2920)
## Enhancements:
* Added support for the new 'CIM_WBEMServerNamespace' class used
in the DMTF WBEM Server Profile. In addition, the
WBEMServer.create_namespace() method now uses the same class
name for the new namespace that is already used for existing
namespaces. (issue #2845)
* Docs: Clarified that the timeout parameter in 'WBEMConnection'
is for completing a CIM operation to a server or a CIM
indication delivery to a listener. (issue #2853)
* Improved the handling of exceptions raised by the "requests"
and "urllib3" packages in pywbem, so that more meaningful
messages are used. Exceeding the 'WBEMConnection' timeout now
results in raising 'pywbem.TimeoutError' in some cases where
previously 'pywbem.ConnectionError' was raised. (issue #2853)
* Extend pywbem_mock creation of instances of associations to
provide for bidirectional inter-namespace associations.
Previously cross-namespace associations created in pywbem_mock
were only visible in the namespace in which they were created.
(see issue #2908)
## Cleanup:
* Removed support for Python 3.4. It had been deprecated since
pywbem 1.0.0. (issue #2829)
* Modified compiler and pywbem_mock to allow creating instances
from abstract classes because SNIA ignored DMTF rule making
this illegal and many MOF compilers also ignored it. Pywbem now
issue a warning from the MOF compiler if an instance of an
abstract class is compiled but complete the compile and another
warning from pywbem_mock.CreateInstance if the instance is for
an abstract class. (see issue #2825)
* Fix issues in manual test run_cimoperations.py that resulted
from changes in the pywbem APIs. Since this was manual test it
was not regularly used. Changes included removing tests for
extra parameters which now cause failure of api.
* Clarify why the iterEnumerateInstances and
IterEnumerateInstancePaths always return the host name in the
response. (see issue #2841)
* Changed build process for distribution archives to use the
build package.
* Document a limitation in the IterQueryInstances request method
(it delivers instances for Open/Pull after the request to the
server is complete). (see issue #1801)
* Added security issues 50748, 50571, 50664, 50663, 50892, 50885,
50886 to Makefile ignore list of new security issue August and
September 2022.
* Fixed issue with mock namespace provider that would acreate the
same namespace twice under some conditions (i.e. same name
property but different path on CreateInstance. (see issue
#2918)
-------------------------------------------------------------------
Thu Jun 23 10:37:07 UTC 2022 - Ben Greiner <code@bnavigator.de>

View File

@ -1,7 +1,7 @@
#
# spec file for package python-pywbem
#
# Copyright (c) 2020 SUSE LLC
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -16,48 +16,44 @@
#
%{?!python_module:%define python_module() python3-%{**}}
%define skip_python2 1
# cythonized pywbem produces yacc parser errors
%bcond_with cythonize
Name: python-pywbem
Version: 1.4.1
Version: 1.7.2
Release: 0
Summary: Python module for making CIM operation calls using the WBEM protocol
License: LGPL-2.1-or-later
Group: System/Management
URL: https://pywbem.github.io/
Source0: https://github.com/pywbem/pywbem/archive/%{version}.tar.gz#/pywbem-%{version}.tar.gz
# PATCH-FIX-UPSTREAM Based on gh#pywbem/pywbem#3217
Patch0: support-new-testfixtures.patch
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools >= 38.4.1}
BuildRequires: %{python_module wheel}
%if %{with cythonize}
BuildRequires: %{python_module Cython}
BuildRequires: %{python_module devel}
%endif
BuildRequires: %{python_module FormEncode >= 2.0.0}
BuildRequires: %{python_module PyYAML > 5.3.1}
BuildRequires: %{python_module certifi >= 2019.11.28}
BuildRequires: %{python_module httpretty}
BuildRequires: %{python_module lxml >= 4.6.4}
BuildRequires: %{python_module nocasedict >= 1.0.1}
BuildRequires: %{python_module nocaselist >= 1.0.3}
BuildRequires: %{python_module ply >= 3.10}
BuildRequires: %{python_module pytest >= 6.2.5}
BuildRequires: %{python_module pytz}
BuildRequires: %{python_module requests >= 2.25.0}
BuildRequires: %{python_module requests-mock}
BuildRequires: %{python_module setuptools >= 38.4.1}
BuildRequires: %{python_module six >= 1.16.0}
BuildRequires: %{python_module testfixtures}
BuildRequires: %{python_module urllib3 >= 1.26.5}
BuildRequires: %{python_module yamlloader >= 0.5.5}
BuildRequires: %{python_module wheel}
BuildRequires: %{python_module pip}
%if %{with cythonize}
BuildRequires: %{python_module Cython}
BuildRequires: %{python_module devel}
%else
BuildArch: noarch
%endif
BuildRequires: fdupes
BuildRequires: libxml2-tools
BuildRequires: python-rpm-macros
Requires: python-PyYAML >= 5.3.1
Requires: python-nocasedict >= 1.0.1
Requires: python-nocaselist >= 1.0.3
Requires: python-certifi >= 2019.11.28
Requires: python-ply >= 3.10
Requires: python-requests >= 2.25.0
Requires: python-six >= 1.16.0
@ -66,6 +62,9 @@ Requires: python-yamlloader >= 0.5.5
Requires(post): update-alternatives
Requires(postun): update-alternatives
Recommends: python-pywebmtools
%if ! %{with cythonize}
BuildArch: noarch
%endif
%python_subpackages
%description
@ -73,20 +72,10 @@ PyWBEM is a Python module for making CIM operation calls using the WBEM
protocol to query and update managed objects.
%prep
%setup -q -n pywbem-%{version}
%autopatch -p1
%autosetup -p1 -n pywbem-%{version}
%build
%if %{with cythonize}
%{python_expand # build cythonized wheel
$python setup.py bdist_wheel --cythonized
mv dist/pywbem-%{version}-cp%{$python_version_nodots}*.whl build/
}
%else
# build one noarch wheel for all flavor installs
python3 setup.py bdist_wheel
mv dist/pywbem-%{version}-*py3-none-any.whl .
%endif
%pyproject_wheel %{?_with_cythonize:--config-settings "--build-option=--cythonized" .}
%install
%pyproject_install
@ -95,8 +84,11 @@ rm %{buildroot}%{_bindir}/*.bat
%python_clone -a %{buildroot}%{_bindir}/mof_compiler
%check
%{pytest -W default -W ignore::PendingDeprecationWarning -W ignore::ResourceWarning \
tests/unittest tests/functiontest}
%if %{with cythonize}
%pytest_arch -k "not (skipnothingbydefault ${$python_donttest})" tests/unittest tests/functiontest
%else
%pytest -k "not (skipnothingbydefault ${$python_donttest})" tests/unittest tests/functiontest
%endif
%post
%python_install_alternative mof_compiler
@ -105,17 +97,17 @@ rm %{buildroot}%{_bindir}/*.bat
%python_uninstall_alternative mof_compiler
%files %{python_files}
%doc README.rst
%doc README.md
%license LICENSE.txt
%python_alternative %{_bindir}/mof_compiler
%if %{with cythonize}
%{python_sitearch}/pywbem
%{python_sitearch}/pywbem_mock
%{python_sitearch}/pywbem-%{version}*-info
%{python_sitearch}/pywbem-%{version}.dist-info
%else
%{python_sitelib}/pywbem
%{python_sitelib}/pywbem_mock
%{python_sitelib}/pywbem-%{version}*-info
%{python_sitelib}/pywbem-%{version}.dist-info
%endif
%changelog

BIN
pywbem-1.4.1.tar.gz (Stored with Git LFS)

Binary file not shown.

BIN
pywbem-1.7.2.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,55 @@
From f6acfc45af0c8b5b592890a3ff222708902f2ae7 Mon Sep 17 00:00:00 2001
From: Andreas Maier <andreas.r.maier@gmx.de>
Date: Mon, 19 Aug 2024 18:29:10 +0200
Subject: [PATCH] Test: In test_recorder.py avoid a new AssertionError by
testfixtures 8.3.0
Details:
* The setup_method() in BaseLogOperationRecorderTests had called
logging.shutdown() which triggered a new AssertionError raised by
testfixtures 8.3.0 that complains about LogCapture handlers being closed
but still installed.
Uninstalling the LogCapture handlers via LogCapture.uninstall_all()
introduced the new problem that logging was not performed correctly
anymore.
The solution seems to be to not call logging.shutdown() in setup_method(),
which is also understandable given that it is only supposed to be used
before exiting the program.
Note that we still call it in teardown_method().
Fixed steps to start new version; removed types from _version.py
Signed-off-by: Andreas Maier <andreas.r.maier@gmx.de>
---
docs/changes.rst | 4 ++--
test-requirements.txt | 7 +------
tests/unittest/pywbem/test_recorder.py | 9 ++++-----
3 files changed, 7 insertions(+), 13 deletions(-)
ddiff --git a/tests/unittest/pywbem/test_recorder.py b/tests/unittest/pywbem/test_recorder.py
index be618fe15..f7eb1797a 100755
--- a/tests/unittest/pywbem/test_recorder.py
+++ b/tests/unittest/pywbem/test_recorder.py
@@ -1620,14 +1620,13 @@ def setup_method(self):
"""
Setup that is run before each test method.
"""
- # Shut down any existing logger and reset WBEMConnection and
- # reset WBEMConnection class attributes
- # pylint: disable=protected-access
- WBEMConnection._reset_logging_config()
- logging.shutdown()
+ # Reset WBEMConnection logging.
# NOTE We do not clean up handlers or logger names already defined.
# That should not affect the tests.
+ # pylint: disable=protected-access
+ WBEMConnection._reset_logging_config()
+
def recorder_setup(self, detail_level=None):
"""
Setup the recorder for a defined max output size