Accepting request 1171838 from home:AndreasStieger:branches:devel:languages:python

fix tests with git 2.45.0 (boo#1223839)

OBS-URL: https://build.opensuse.org/request/show/1171838
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-setuptools_scm?expand=0&rev=81
This commit is contained in:
Daniel Garcia 2024-05-06 05:39:31 +00:00 committed by Git OBS Bridge
parent 36be66b30a
commit 060e2b676b
3 changed files with 60 additions and 4 deletions

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Fri May 3 17:19:17 UTC 2024 - Andreas Stieger <andreas.stieger@gmx.de>
- fix tests with git 2.45.0 (boo#1223839)
adding setuptools-scm-issue1038-git-2-45-0.patch
-------------------------------------------------------------------
Fri Jan 5 15:56:43 UTC 2024 - Ben Greiner <code@bnavigator.de>

View File

@ -1,7 +1,8 @@
#
# spec file
# spec file for package python-setuptools_scm
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2024 Andreas Stieger <Andreas.Stieger@gmx.de>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -24,17 +25,18 @@
%define psuffix %{nil}
%bcond_with test
%endif
%{?sle15_python_module_pythons}
Name: python-setuptools_scm%{psuffix}
Version: 8.0.4
Release: 0
Summary: Python setuptools handler for SCM tags
License: MIT
URL: https://github.com/pypa/setuptools_scm
URL: https://github.com/pypa/setuptools_scm/
Source: https://files.pythonhosted.org/packages/source/s/setuptools-scm/setuptools-scm-%{version}.tar.gz
# PATCH-FEATURE-OPENSUSE setuptools-scm-issue953-nowarn.patch gh#pypa/setuptools_scm#953 -- don't warn if setuptools_scm is present but not directly used
Patch0: setuptools-scm-issue953-nowarn.patch
# PATCH-FIX-UPSTREAM setuptools-scm-issue1038-git-2-45-0.patch gp#pypa/setuptools_scm#1038 -- fix build with git 2.45.0
Patch1: setuptools-scm-issue1038-git-2-45-0.patch
BuildRequires: %{python_module base >= 3.8}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools >= 61}
@ -45,10 +47,10 @@ BuildRequires: python-rpm-macros
Requires: python-packaging >= 20.0
Requires: python-setuptools
Requires: python-typing-extensions
BuildArch: noarch
%if 0%{?python_version_nodots} < 311
Requires: python-tomli >= 1
%endif
BuildArch: noarch
%if %{with test}
# Testing requirements
BuildRequires: %{python_module build}

View File

@ -0,0 +1,48 @@
Index: setuptools-scm-8.0.4/testing/test_git.py
===================================================================
--- setuptools-scm-8.0.4.orig/testing/test_git.py
+++ setuptools-scm-8.0.4/testing/test_git.py
@@ -494,6 +494,22 @@ def test_git_getdate_badgit(
assert git_wd.get_head_date() is None
+def test_git_getdate_git_2_45_0_plus(
+ wd: WorkDir, caplog: pytest.LogCaptureFixture, monkeypatch: pytest.MonkeyPatch
+) -> None:
+ wd.commit_testfile()
+ git_wd = git.GitWorkdir(wd.cwd)
+ fake_date_result = CompletedProcess(
+ args=[], stdout="2024-04-30T22:33:10Z", stderr="", returncode=0
+ )
+ with patch.object(
+ git,
+ "run_git",
+ Mock(return_value=fake_date_result),
+ ):
+ assert git_wd.get_head_date() == date(2024, 4, 30)
+
+
@pytest.fixture()
def signed_commit_wd(monkeypatch: pytest.MonkeyPatch, wd: WorkDir) -> WorkDir:
if not has_command("gpg", args=["--version"], warn=False):
Index: setuptools-scm-8.0.4/src/setuptools_scm/git.py
===================================================================
--- setuptools-scm-8.0.4.orig/src/setuptools_scm/git.py
+++ setuptools-scm-8.0.4/src/setuptools_scm/git.py
@@ -5,6 +5,7 @@ import logging
import os
import re
import shlex
+import sys
import warnings
from datetime import date
from datetime import datetime
@@ -118,6 +119,8 @@ class GitWorkdir(Workdir):
if "%c" in timestamp_text:
log.warning("git too old -> timestamp is %r", timestamp_text)
return None
+ if sys.version_info < (3, 11) and timestamp_text.endswith("Z"):
+ timestamp_text = timestamp_text[:-1] + "+00:00"
return datetime.fromisoformat(timestamp_text).date()
res = run_git(