Skip to content

Format tests with black and auto-exclude untracked paths #1668

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Sep 20, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Reformat tests with black
This actually runs black on the whole project, but the only changes
are in test/ (as expected).
  • Loading branch information
EliahKagan committed Sep 19, 2023
commit 15c736dc79922a1cead221f6fbda5378564e0b6d
1 change: 0 additions & 1 deletion test/performance/test_streams.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@


class TestObjDBPerformance(TestBigRepoR):

large_data_size_bytes = 1000 * 1000 * 10 # some MiB should do it
moderate_data_size_bytes = 1000 * 1000 * 1 # just 1 MiB

Expand Down
17 changes: 8 additions & 9 deletions test/test_commit.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@ def assert_commit_serialization(self, rwrepo, commit_id, print_performance_info=

class TestCommit(TestCommitSerialization):
def test_bake(self):

commit = self.rorepo.commit("2454ae89983a4496a445ce347d7a41c0bb0ea7ae")
# commits have no dict
self.assertRaises(AttributeError, setattr, commit, "someattr", 1)
Expand Down Expand Up @@ -170,15 +169,15 @@ def test_renames(self):

def check_entries(path, changes):
expected = {
".github/workflows/Future.yml" : {
'insertions': 57,
'deletions': 0,
'lines': 57,
".github/workflows/Future.yml": {
"insertions": 57,
"deletions": 0,
"lines": 57,
},
".github/workflows/test_pytest.yml" : {
'insertions': 0,
'deletions': 55,
'lines': 55,
".github/workflows/test_pytest.yml": {
"insertions": 0,
"deletions": 55,
"lines": 55,
},
}
assert path in expected
Expand Down
28 changes: 14 additions & 14 deletions test/test_diff.py
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@ def test_rename_override(self, rw_dir):
# create and commit file_a.txt
repo = Repo.init(rw_dir)
file_a = osp.join(rw_dir, "file_a.txt")
with open(file_a, "w", encoding='utf-8') as outfile:
with open(file_a, "w", encoding="utf-8") as outfile:
outfile.write("hello world\n")
repo.git.add(Git.polish_url(file_a))
repo.git.commit(message="Added file_a.txt")
Expand All @@ -429,21 +429,21 @@ def test_rename_override(self, rw_dir):

# create and commit file_b.txt with similarity index of 52
file_b = osp.join(rw_dir, "file_b.txt")
with open(file_b, "w", encoding='utf-8') as outfile:
with open(file_b, "w", encoding="utf-8") as outfile:
outfile.write("hello world\nhello world")
repo.git.add(Git.polish_url(file_b))
repo.git.commit(message="Removed file_a.txt. Added file_b.txt")

commit_a = repo.commit('HEAD')
commit_b = repo.commit('HEAD~1')
commit_a = repo.commit("HEAD")
commit_b = repo.commit("HEAD~1")

# check default diff command with renamed files enabled
diffs = commit_b.diff(commit_a)
self.assertEqual(1, len(diffs))
diff = diffs[0]
self.assertEqual(True, diff.renamed_file)
self.assertEqual('file_a.txt', diff.rename_from)
self.assertEqual('file_b.txt', diff.rename_to)
self.assertEqual("file_a.txt", diff.rename_from)
self.assertEqual("file_b.txt", diff.rename_to)

# check diff with rename files disabled
diffs = commit_b.diff(commit_a, no_renames=True)
Expand All @@ -452,31 +452,31 @@ def test_rename_override(self, rw_dir):
# check fileA.txt deleted
diff = diffs[0]
self.assertEqual(True, diff.deleted_file)
self.assertEqual('file_a.txt', diff.a_path)
self.assertEqual("file_a.txt", diff.a_path)

# check fileB.txt added
diff = diffs[1]
self.assertEqual(True, diff.new_file)
self.assertEqual('file_b.txt', diff.a_path)
self.assertEqual("file_b.txt", diff.a_path)

# check diff with high similarity index
diffs = commit_b.diff(commit_a, split_single_char_options=False, M='75%')
diffs = commit_b.diff(commit_a, split_single_char_options=False, M="75%")
self.assertEqual(2, len(diffs))

# check fileA.txt deleted
diff = diffs[0]
self.assertEqual(True, diff.deleted_file)
self.assertEqual('file_a.txt', diff.a_path)
self.assertEqual("file_a.txt", diff.a_path)

# check fileB.txt added
diff = diffs[1]
self.assertEqual(True, diff.new_file)
self.assertEqual('file_b.txt', diff.a_path)
self.assertEqual("file_b.txt", diff.a_path)

# check diff with low similarity index
diffs = commit_b.diff(commit_a, split_single_char_options=False, M='40%')
diffs = commit_b.diff(commit_a, split_single_char_options=False, M="40%")
self.assertEqual(1, len(diffs))
diff = diffs[0]
self.assertEqual(True, diff.renamed_file)
self.assertEqual('file_a.txt', diff.rename_from)
self.assertEqual('file_b.txt', diff.rename_to)
self.assertEqual("file_a.txt", diff.rename_from)
self.assertEqual("file_b.txt", diff.rename_to)
2 changes: 1 addition & 1 deletion test/test_index.py
Original file line number Diff line number Diff line change
Expand Up @@ -946,7 +946,7 @@ def test_commit_msg_hook_fail(self, rw_repo):
else:
raise AssertionError("Should have caught a HookExecutionError")

@with_rw_repo('HEAD')
@with_rw_repo("HEAD")
def test_index_add_pathlike(self, rw_repo):
git_dir = Path(rw_repo.git_dir)

Expand Down
27 changes: 12 additions & 15 deletions test/test_quick_doc.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,23 @@ def tearDown(self):

@with_rw_directory
def test_init_repo_object(self, path_to_dir):

# [1-test_init_repo_object]
# $ git init <path/to/dir>

from git import Repo

repo = Repo.init(path_to_dir)
# ![1-test_init_repo_object]
# ![1-test_init_repo_object]

# [2-test_init_repo_object]
repo = Repo(path_to_dir)
# ![2-test_init_repo_object]

@with_rw_directory
def test_cloned_repo_object(self, local_dir):

from git import Repo
import git

# code to clone from url
# [1-test_cloned_repo_object]
# $ git clone <url> <local_dir>
Expand All @@ -44,9 +43,9 @@ def test_cloned_repo_object(self, local_dir):
# [2-test_cloned_repo_object]
# We must make a change to a file so that we can add the update to git

update_file = 'dir1/file2.txt' # we'll use local_dir/dir1/file2.txt
with open(f"{local_dir}/{update_file}", 'a') as f:
f.write('\nUpdate version 2')
update_file = "dir1/file2.txt" # we'll use local_dir/dir1/file2.txt
with open(f"{local_dir}/{update_file}", "a") as f:
f.write("\nUpdate version 2")
# ![2-test_cloned_repo_object]

# [3-test_cloned_repo_object]
Expand Down Expand Up @@ -82,7 +81,7 @@ def test_cloned_repo_object(self, local_dir):

# Untracked files - create new file
# [7-test_cloned_repo_object]
f = open(f'{local_dir}/untracked.txt', 'w') # creates an empty file
f = open(f"{local_dir}/untracked.txt", "w") # creates an empty file
f.close()
# ![7-test_cloned_repo_object]

Expand All @@ -95,8 +94,8 @@ def test_cloned_repo_object(self, local_dir):
# [9-test_cloned_repo_object]
# Let's modify one of our tracked files

with open(f'{local_dir}/Downloads/file3.txt', 'w') as f:
f.write('file3 version 2') # overwrite file 3
with open(f"{local_dir}/Downloads/file3.txt", "w") as f:
f.write("file3 version 2") # overwrite file 3
# ![9-test_cloned_repo_object]

# [10-test_cloned_repo_object]
Expand Down Expand Up @@ -126,7 +125,7 @@ def test_cloned_repo_object(self, local_dir):
# ![11.1-test_cloned_repo_object]
# [11.2-test_cloned_repo_object]
# lets add untracked.txt
repo.index.add(['untracked.txt'])
repo.index.add(["untracked.txt"])
diffs = repo.index.diff(repo.head.commit)
for d in diffs:
print(d.a_path)
Expand All @@ -146,9 +145,7 @@ def test_cloned_repo_object(self, local_dir):
# dir1/file2.txt
# ![11.3-test_cloned_repo_object]



'''Trees and Blobs'''
"""Trees and Blobs"""

# Latest commit tree
# [12-test_cloned_repo_object]
Expand Down Expand Up @@ -195,7 +192,7 @@ def print_files_from_git(root, level=0):

# Printing text files
# [17-test_cloned_repo_object]
print_file = 'dir1/file2.txt'
print_file = "dir1/file2.txt"
tree[print_file] # the head commit tree

# Output <git.Blob "SHA1-HEX-HASH">
Expand All @@ -221,4 +218,4 @@ def print_files_from_git(root, level=0):

# Output
# file 2 version 1
# ![18.1-test_cloned_repo_object]
# ![18.1-test_cloned_repo_object]
28 changes: 17 additions & 11 deletions test/test_repo.py
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,9 @@ def test_clone_from_with_path_contains_unicode(self):
self.fail("Raised UnicodeEncodeError")

@with_rw_directory
@skip("the referenced repository was removed, and one needs to setup a new password controlled repo under the orgs control")
@skip(
"the referenced repository was removed, and one needs to setup a new password controlled repo under the orgs control"
)
def test_leaking_password_in_clone_logs(self, rw_dir):
password = "fakepassword1234"
try:
Expand Down Expand Up @@ -391,7 +393,9 @@ def test_clone_from_unsafe_options_allowed(self, rw_repo):
for i, unsafe_option in enumerate(unsafe_options):
destination = tmp_dir / str(i)
assert not destination.exists()
Repo.clone_from(rw_repo.working_dir, destination, multi_options=[unsafe_option], allow_unsafe_options=True)
Repo.clone_from(
rw_repo.working_dir, destination, multi_options=[unsafe_option], allow_unsafe_options=True
)
assert destination.exists()

@with_rw_repo("HEAD")
Expand Down Expand Up @@ -755,8 +759,8 @@ def test_blame_complex_revision(self, git):
@mock.patch.object(Git, "_call_process")
def test_blame_accepts_rev_opts(self, git):
res = self.rorepo.blame("HEAD", "README.md", rev_opts=["-M", "-C", "-C"])
expected_args = ['blame', 'HEAD', '-M', '-C', '-C', '--', 'README.md']
boilerplate_kwargs = {"p" : True, "stdout_as_string": False}
expected_args = ["blame", "HEAD", "-M", "-C", "-C", "--", "README.md"]
boilerplate_kwargs = {"p": True, "stdout_as_string": False}
git.assert_called_once_with(*expected_args, **boilerplate_kwargs)

@skipIf(
Expand Down Expand Up @@ -1415,14 +1419,16 @@ def test_ignored_items_reported(self):

gi = tmp_dir / "repo" / ".gitignore"

with open(gi, 'w') as file:
file.write('ignored_file.txt\n')
file.write('ignored_dir/\n')
with open(gi, "w") as file:
file.write("ignored_file.txt\n")
file.write("ignored_dir/\n")

assert temp_repo.ignored(['included_file.txt', 'included_dir/file.txt']) == []
assert temp_repo.ignored(['ignored_file.txt']) == ['ignored_file.txt']
assert temp_repo.ignored(['included_file.txt', 'ignored_file.txt']) == ['ignored_file.txt']
assert temp_repo.ignored(['included_file.txt', 'ignored_file.txt', 'included_dir/file.txt', 'ignored_dir/file.txt']) == ['ignored_file.txt', 'ignored_dir/file.txt']
assert temp_repo.ignored(["included_file.txt", "included_dir/file.txt"]) == []
assert temp_repo.ignored(["ignored_file.txt"]) == ["ignored_file.txt"]
assert temp_repo.ignored(["included_file.txt", "ignored_file.txt"]) == ["ignored_file.txt"]
assert temp_repo.ignored(
["included_file.txt", "ignored_file.txt", "included_dir/file.txt", "ignored_dir/file.txt"]
) == ["ignored_file.txt", "ignored_dir/file.txt"]

def test_ignored_raises_error_w_symlink(self):
with tempfile.TemporaryDirectory() as tdir:
Expand Down
33 changes: 23 additions & 10 deletions test/test_submodule.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,14 @@ def _patch_git_config(name, value):

# This is recomputed each time the context is entered, for compatibility with
# existing GIT_CONFIG_* environment variables, even if changed in this process.
patcher = mock.patch.dict(os.environ, {
"GIT_CONFIG_COUNT": str(pair_index + 1),
f"GIT_CONFIG_KEY_{pair_index}": name,
f"GIT_CONFIG_VALUE_{pair_index}": value,
})
patcher = mock.patch.dict(
os.environ,
{
"GIT_CONFIG_COUNT": str(pair_index + 1),
f"GIT_CONFIG_KEY_{pair_index}": name,
f"GIT_CONFIG_VALUE_{pair_index}": value,
},
)

with patcher:
yield
Expand Down Expand Up @@ -914,17 +917,17 @@ def test_ignore_non_submodule_file(self, rwdir):
os.mkdir(smp)

with open(osp.join(smp, "a"), "w", encoding="utf-8") as f:
f.write('test\n')
f.write("test\n")

with open(osp.join(rwdir, ".gitmodules"), "w", encoding="utf-8") as f:
f.write("[submodule \"a\"]\n")
f.write('[submodule "a"]\n')
f.write(" path = module\n")
f.write(" url = https://github.com/chaconinc/DbConnector\n")

parent.git.add(Git.polish_url(osp.join(smp, "a")))
parent.git.add(Git.polish_url(osp.join(rwdir, ".gitmodules")))

parent.git.commit(message='test')
parent.git.commit(message="test")

assert len(parent.submodules) == 0

Expand Down Expand Up @@ -1200,7 +1203,12 @@ def test_submodule_add_unsafe_options_allowed(self, rw_repo):
# The options will be allowed, but the command will fail.
with self.assertRaises(GitCommandError):
Submodule.add(
rw_repo, "new", "new", str(tmp_dir), clone_multi_options=[unsafe_option], allow_unsafe_options=True
rw_repo,
"new",
"new",
str(tmp_dir),
clone_multi_options=[unsafe_option],
allow_unsafe_options=True,
)
assert not tmp_file.exists()

Expand All @@ -1211,7 +1219,12 @@ def test_submodule_add_unsafe_options_allowed(self, rw_repo):
for unsafe_option in unsafe_options:
with self.assertRaises(GitCommandError):
Submodule.add(
rw_repo, "new", "new", str(tmp_dir), clone_multi_options=[unsafe_option], allow_unsafe_options=True
rw_repo,
"new",
"new",
str(tmp_dir),
clone_multi_options=[unsafe_option],
allow_unsafe_options=True,
)

@with_rw_repo("HEAD")
Expand Down