# Copyright (C) 2008, 2009, 2016 Michael Trier (mtrier@gmail.com) and contributors
#
# This module is part of GitPython and is released under the
# 3-Clause BSD License: https://opensource.org/license/bsd-3-clause/
from itertools import product
import re
import ddt
from git.exc import (
InvalidGitRepositoryError,
WorkTreeRepositoryUnsupported,
NoSuchPathError,
CommandError,
GitCommandNotFound,
GitCommandError,
CheckoutError,
CacheError,
UnmergedEntriesError,
HookExecutionError,
RepositoryDirtyError,
)
from git.util import remove_password_if_present
from test.lib import TestBase
_cmd_argvs = (
("cmd",),
("",),
("", "normal", "argvs"),
("cmd", "", "args"),
("", "", "", "strange", "args"),
("", "", "", "non-unicode", "args"),
(
"git",
"clone",
"-v",
"https://fakeuser:fakepassword1234@fakerepo.example.com/testrepo",
),
)
_causes_n_substrings = (
(None, None),
(7, "exit code(7)"),
("Some string", "'Some string'"),
(" string", "' string'"),
(Exception("An exc."), "Exception('An exc.')"),
(Exception(" exc."), "Exception(' exc.')"),
(object(), "