Skip to content

Commit

Permalink
Replace xfail with gc.collect in TestSubmodule.test_rename
Browse files Browse the repository at this point in the history
Like the xfail was, this is conditional, being done only in the
specific situation the PermissionError occurs. Besides that it does
not always run even on Windows (only in 3.12 and later), this
resembles various other conditional and non-conditional gc.collect
calls.

It had previously appeared to me that two calls to gc.collect were
required, but I am unable to reproduce that. It may have been
specific to how I was running it on my system at that time. The
need for only one call may have been brought about by changes to
the code in the mean time, but I have tested that only one call
appears required even without the changes in gitpython-developers#1765.
  • Loading branch information
EliahKagan committed Dec 12, 2023
1 parent f62df52 commit b66be7c
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions test/test_submodule.py
Original file line number Diff line number Diff line change
Expand Up @@ -958,6 +958,12 @@ def test_rename(self, rwdir):
assert sm.rename(sm_name) is sm and sm.name == sm_name
assert not sm.repo.is_dirty(index=True, working_tree=False, untracked_files=False)

# This is needed to work around a PermissionError on Windows, resembling others,
# except new in Python 3.12. (*Maybe* this could be due to changes in CPython's
# garbage collector detailed in https://github.com/python/cpython/issues/97922.)
if os.name == "nt" and sys.version_info >= (3, 12):
gc.collect()

new_path = "renamed/myname"
assert sm.move(new_path).name == new_path

Expand Down

0 comments on commit b66be7c

Please sign in to comment.