Skip to content

Commit 24d14f8

Browse files
noirbizarrewoile
authored andcommitted
test(git): ensures that global git user settings are not interfering with the tests
1 parent 4e3e628 commit 24d14f8

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

‎tests/conftest.py

+15-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,24 @@
11
import os
22
import re
33
import tempfile
4+
from pathlib import Path
45

56
import pytest
67

78
from commitizen import cmd, defaults
89
from commitizen.config import BaseConfig
910

11+
SIGNER = "GitHub Action"
12+
SIGNER_MAIL = "action@github.com"
13+
14+
15+
@pytest.fixture(autouse=True)
16+
def git_sandbox(monkeypatch: pytest.MonkeyPatch, tmp_path: Path):
17+
"""Ensure git commands are executed without the current user settings"""
18+
monkeypatch.setenv("GIT_CONFIG_GLOBAL", str(tmp_path / "gitconfig"))
19+
cmd.run(f"git config --global user.name {SIGNER}")
20+
cmd.run(f"git config --global user.email {SIGNER_MAIL}")
21+
1022

1123
@pytest.fixture(scope="function")
1224
def tmp_git_project(tmpdir):
@@ -36,9 +48,6 @@ def _get_gpg_keyid(signer_mail):
3648

3749
@pytest.fixture(scope="function")
3850
def tmp_commitizen_project_with_gpg(tmp_commitizen_project):
39-
signer = "GitHub Action"
40-
signer_mail = "action@github.com"
41-
4251
# create a temporary GPGHOME to store a temporary keyring.
4352
# Home path must be less than 104 characters
4453
gpg_home = tempfile.TemporaryDirectory(suffix="_cz")
@@ -47,17 +56,15 @@ def tmp_commitizen_project_with_gpg(tmp_commitizen_project):
4756

4857
# create a key (a keyring will be generated within GPUPGHOME)
4958
c = cmd.run(
50-
f"gpg --batch --yes --debug-quick-random --passphrase '' --quick-gen-key '{signer} {signer_mail}'"
59+
f"gpg --batch --yes --debug-quick-random --passphrase '' --quick-gen-key '{SIGNER} {SIGNER_MAIL}'"
5160
)
5261
if c.return_code != 0:
5362
raise Exception(f"gpg keygen failed with err: '{c.err}'")
54-
key_id = _get_gpg_keyid(signer_mail)
63+
key_id = _get_gpg_keyid(SIGNER_MAIL)
5564
assert key_id
5665

57-
# configure git
66+
# configure git to use gpg signing
5867
cmd.run("git config commit.gpgsign true")
59-
cmd.run(f"git config user.name {signer}")
60-
cmd.run(f"git config user.email {signer_mail}")
6168
cmd.run(f"git config user.signingkey {key_id}")
6269

6370
yield tmp_commitizen_project

0 commit comments

Comments
 (0)