Accepting request 1224339 from devel:languages:python

- Add patch support-python313.patch:
  * Support time.time_ns changes in Python 3.13+.

OBS-URL: https://build.opensuse.org/request/show/1224339
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-python-json-logger?expand=0&rev=12
This commit is contained in:
Ana Guerrero 2024-11-17 15:39:42 +00:00 committed by Git OBS Bridge
commit ee72216e48
3 changed files with 91 additions and 0 deletions

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Fri Nov 15 01:44:06 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Add patch support-python313.patch:
* Support time.time_ns changes in Python 3.13+.
-------------------------------------------------------------------
Thu Feb 1 01:18:35 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>

View File

@ -26,6 +26,8 @@ URL: https://github.com/madzak/python-json-logger
Source: https://files.pythonhosted.org/packages/source/p/python-json-logger/python-json-logger-%{version}.tar.gz
# PATCH-FIX-UPSTREAM gh#madzak/python-json-logger#183
Patch0: support-python312.patch
# PATCH-FIX-UPSTREAM gh#madzak/python-json-logger#192
Patch1: support-python313.patch
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}

83
support-python313.patch Normal file
View File

@ -0,0 +1,83 @@
From a03831c0101e44643216ce1ffde93f549cf3b35a Mon Sep 17 00:00:00 2001
From: Karolina Surma <33810531+befeleme@users.noreply.github.com>
Date: Mon, 10 Jun 2024 12:59:47 +0200
Subject: [PATCH 1/3] Make tests work with Python 3.13
Attribute `created` of LogRecord is `time.time_ns` since Python 3.13: https://docs.python.org/3.13/library/logging.html#logrecord-attributes
---
tests/test_jsonlogger.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/test_jsonlogger.py b/tests/test_jsonlogger.py
index af369d2..0711d49 100644
--- a/tests/test_jsonlogger.py
+++ b/tests/test_jsonlogger.py
@@ -175,7 +175,7 @@ def test_json_default_encoder(self):
self.assertEqual(log_json.get("otherdatetimeagain"),
"1900-01-01T00:00:00")
- @unittest.mock.patch('time.time', return_value=1500000000.0)
+ @unittest.mock.patch('time.time_ns', return_value=1500000000000000000.0)
def test_json_default_encoder_with_timestamp(self, time_mock):
fr = jsonlogger.JsonFormatter(timestamp=True)
self.log_handler.setFormatter(fr)
From 08d7344f0750237d8e4b0fdf8407402874fec1ea Mon Sep 17 00:00:00 2001
From: Karolina Surma <33810531+befeleme@users.noreply.github.com>
Date: Mon, 10 Jun 2024 13:35:51 +0200
Subject: [PATCH 2/3] Add the backwards compatibility for the patched method
This will work with Python < 3.13.
---
tests/test_jsonlogger.py | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/tests/test_jsonlogger.py b/tests/test_jsonlogger.py
index 0711d49..b316751 100644
--- a/tests/test_jsonlogger.py
+++ b/tests/test_jsonlogger.py
@@ -175,14 +175,18 @@ def test_json_default_encoder(self):
self.assertEqual(log_json.get("otherdatetimeagain"),
"1900-01-01T00:00:00")
+ @unittest.mock.patch('time.time', return_value=1500000000.0)
@unittest.mock.patch('time.time_ns', return_value=1500000000000000000.0)
- def test_json_default_encoder_with_timestamp(self, time_mock):
+ def test_json_default_encoder_with_timestamp(self, time_ns_mock, time_mock):
fr = jsonlogger.JsonFormatter(timestamp=True)
self.log_handler.setFormatter(fr)
self.log.info("Hello")
-
- self.assertTrue(time_mock.called)
+
+ if sys.version_info < (3, 13):
+ self.assertTrue(time_mock.called)
+ else:
+ self.assertTrue(time_ns_mock.called)
log_json = json.loads(self.buffer.getvalue())
self.assertEqual(log_json.get("timestamp"), "2017-07-14T02:40:00+00:00")
From 2f24daf7a0f4d3cb717eeaaa2dbd1b69da1a5b71 Mon Sep 17 00:00:00 2001
From: Karolina Surma <33810531+befeleme@users.noreply.github.com>
Date: Mon, 10 Jun 2024 13:37:14 +0200
Subject: [PATCH 3/3] Return value of time.time_ns is int
---
tests/test_jsonlogger.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/test_jsonlogger.py b/tests/test_jsonlogger.py
index b316751..068e760 100644
--- a/tests/test_jsonlogger.py
+++ b/tests/test_jsonlogger.py
@@ -176,7 +176,7 @@ def test_json_default_encoder(self):
"1900-01-01T00:00:00")
@unittest.mock.patch('time.time', return_value=1500000000.0)
- @unittest.mock.patch('time.time_ns', return_value=1500000000000000000.0)
+ @unittest.mock.patch('time.time_ns', return_value=1500000000000000000)
def test_json_default_encoder_with_timestamp(self, time_ns_mock, time_mock):
fr = jsonlogger.JsonFormatter(timestamp=True)
self.log_handler.setFormatter(fr)