Skip to content

Commit

Permalink
Merge pull request #1039 from ap--/fix-timezone-error
Browse files Browse the repository at this point in the history
Fix timezone error
  • Loading branch information
RonnyPfannschmidt authored May 6, 2024
2 parents d75201a + 3e613cd commit 234b74f
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/setuptools_scm/git.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import os
import re
import shlex
import sys
import warnings

from datetime import date
Expand Down Expand Up @@ -119,6 +120,8 @@ def parse_timestamp(timestamp_text: str) -> date | None:
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(
Expand Down
16 changes: 16 additions & 0 deletions testing/test_git.py
Original file line number Diff line number Diff line change
Expand Up @@ -498,6 +498,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):
Expand Down

0 comments on commit 234b74f

Please sign in to comment.