Adding upstream version 4.6.0+dfsg.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
f3ad83a1a5
commit
167a3f8553
275 changed files with 30423 additions and 0 deletions
96
tests/utils.py
Normal file
96
tests/utils.py
Normal file
|
@ -0,0 +1,96 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
import time
|
||||
import uuid
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
from deprecated import deprecated
|
||||
|
||||
from commitizen import cmd, exceptions, git
|
||||
|
||||
skip_below_py_3_10 = pytest.mark.skipif(
|
||||
sys.version_info < (3, 10),
|
||||
reason="The output message of argparse is different between Python 3.10 and lower than Python 3.10",
|
||||
)
|
||||
|
||||
skip_below_py_3_13 = pytest.mark.skipif(
|
||||
sys.version_info < (3, 13),
|
||||
reason="The output message of argparse is different between Python 3.13 and lower than Python 3.13",
|
||||
)
|
||||
|
||||
|
||||
class FakeCommand:
|
||||
def __init__(self, out=None, err=None, return_code=0):
|
||||
self.out = out
|
||||
self.err = err
|
||||
self.return_code = return_code
|
||||
|
||||
|
||||
def create_file_and_commit(
|
||||
message: str, filename: str | None = None, committer_date: str | None = None
|
||||
):
|
||||
if not filename:
|
||||
filename = str(uuid.uuid4())
|
||||
|
||||
Path(filename).touch()
|
||||
c = cmd.run("git add .")
|
||||
if c.return_code != 0:
|
||||
raise exceptions.CommitError(c.err)
|
||||
c = git.commit(message, committer_date=committer_date)
|
||||
if c.return_code != 0:
|
||||
raise exceptions.CommitError(c.err)
|
||||
|
||||
|
||||
def create_branch(name: str):
|
||||
c = cmd.run(f"git branch {name}")
|
||||
if c.return_code != 0:
|
||||
raise exceptions.GitCommandError(c.err)
|
||||
|
||||
|
||||
def switch_branch(branch: str):
|
||||
c = cmd.run(f"git switch {branch}")
|
||||
if c.return_code != 0:
|
||||
raise exceptions.GitCommandError(c.err)
|
||||
|
||||
|
||||
def merge_branch(branch: str):
|
||||
c = cmd.run(f"git merge {branch}")
|
||||
if c.return_code != 0:
|
||||
raise exceptions.GitCommandError(c.err)
|
||||
|
||||
|
||||
def get_current_branch() -> str:
|
||||
c = cmd.run("git rev-parse --abbrev-ref HEAD")
|
||||
if c.return_code != 0:
|
||||
raise exceptions.GitCommandError(c.err)
|
||||
return c.out
|
||||
|
||||
|
||||
def create_tag(tag: str, message: str | None = None) -> None:
|
||||
c = git.tag(tag, annotated=(message is not None), msg=message)
|
||||
if c.return_code != 0:
|
||||
raise exceptions.CommitError(c.err)
|
||||
|
||||
|
||||
@deprecated(
|
||||
reason="\n\
|
||||
Prefer using `create_file_and_commit(filename, committer_date={your_date})` to influence the order of tags.\n\
|
||||
This is because lightweight tags (like the ones created here) use the commit's creatordate which we can specify \
|
||||
with the GIT_COMMITTER_DATE flag, instead of waiting entire seconds during tests."
|
||||
)
|
||||
def wait_for_tag():
|
||||
"""Deprecated -- use `create_file_and_commit(filename, committer_date={your_date})` to order tags instead
|
||||
|
||||
Wait for tag.
|
||||
|
||||
The resolution of timestamps is 1 second, so we need to wait
|
||||
to create another tag unfortunately.
|
||||
|
||||
This means:
|
||||
If we create 2 tags under the same second, they might be returned in the wrong order
|
||||
|
||||
See https://stackoverflow.com/questions/28237043/what-is-the-resolution-of-gits-commit-date-or-author-date-timestamps
|
||||
"""
|
||||
time.sleep(1.1)
|
Loading…
Add table
Add a link
Reference in a new issue