5dcb7e8dbd
* The existing patch unintentionally skips a lot of the testsuite. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-apache-libcloud?expand=0&rev=137
40 lines
1.7 KiB
Diff
40 lines
1.7 KiB
Diff
From 44e923662205f2a2413fadb23715dc2934bff625 Mon Sep 17 00:00:00 2001
|
|
From: Steve Kowalik <steven@wedontsleep.org>
|
|
Date: Tue, 3 Sep 2024 14:30:51 +1000
|
|
Subject: [PATCH] Only call super() during MockHttp if required
|
|
|
|
With pytest 8.2 and above, any class that contains classes is collected,
|
|
which means they are instantiated, which MockHttp's superclasses do not
|
|
accept, since they require keyword arguments. To work around this, only
|
|
call the superclass's __init__ method if we are passed kwargs.
|
|
---
|
|
libcloud/test/__init__.py | 8 ++++++--
|
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/libcloud/test/__init__.py b/libcloud/test/__init__.py
|
|
index d45c82c84d..1cc595f685 100644
|
|
--- a/libcloud/test/__init__.py
|
|
+++ b/libcloud/test/__init__.py
|
|
@@ -87,7 +87,7 @@ def read(self, chunk_size=None):
|
|
return StringIO.read(self)
|
|
|
|
|
|
-class MockHttp(LibcloudConnection):
|
|
+class MockHttp(LibcloudConnection, unittest.TestCase):
|
|
"""
|
|
A mock HTTP client/server suitable for testing purposes. This replaces
|
|
`HTTPConnection` by implementing its API and returning a mock response.
|
|
@@ -108,7 +108,11 @@ def __init__(self, *args, **kwargs):
|
|
# within a response
|
|
if isinstance(self, unittest.TestCase):
|
|
unittest.TestCase.__init__(self, "__init__")
|
|
- super().__init__(*args, **kwargs)
|
|
+ # When this class is collected, it is instantiated with no arguments,
|
|
+ # which breaks any superclasses that expect arguments, so only
|
|
+ # do so if we were passed any keyword arguments.
|
|
+ if kwargs:
|
|
+ super().__init__(*args, **kwargs)
|
|
|
|
def _get_request(self, method, url, body=None, headers=None):
|
|
# Find a method we can use for this request
|