Skip to content

Commit 31fd955

Browse files
committed
BF: @with_rw_directory must return decorated call
As it was - many tests were simply not accounted/run at all
1 parent f2b92c6 commit 31fd955

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

git/test/lib/helper.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ def wrapper(self):
107107
gc.collect()
108108
if not keep:
109109
rmtree(path)
110+
wrapper.__name__ = func.__name__
111+
return wrapper
110112

111113

112114
def with_rw_repo(working_tree_ref, bare=False):

git/test/test_submodule.py

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,8 +317,8 @@ def _do_base_tests(self, rwrepo):
317317
# forcibly delete the child repository
318318
prev_count = len(sm.children())
319319
self.failUnlessRaises(ValueError, csm.remove, force=True)
320-
# We removed sm, which removed all submodules. Howver, the instance we have
321-
# still points to the commit prior to that, where it still existed
320+
# We removed sm, which removed all submodules. However, the instance we
321+
# have still points to the commit prior to that, where it still existed
322322
csm.set_parent_commit(csm.repo.commit(), check=False)
323323
assert not csm.exists()
324324
assert not csm.module_exists()
@@ -801,6 +801,31 @@ def assert_exists(sm, value=True):
801801
assert os.path.isdir(sm_module_path) == dry_run
802802
# end for each dry-run mode
803803

804+
@with_rw_directory
805+
def test_remove_norefs(self, rwdir):
806+
parent = git.Repo.init(os.path.join(rwdir, 'parent'))
807+
sm_name = 'mymodules/myname'
808+
sm = parent.create_submodule(sm_name, sm_name, url=self._small_repo_url())
809+
parent.index.commit("Added submodule")
810+
811+
# Adding a remote without fetching so would have no references
812+
sm.repo.create_remote('special', 'git@server-shouldnotmatter:repo.git')
813+
assert sm.rename(sm_name) is sm and sm.name == sm_name
814+
assert not sm.repo.is_dirty(index=True, working_tree=False, untracked_files=False)
815+
816+
new_path = 'renamed/myname'
817+
assert sm.move(new_path).name == new_path
818+
819+
new_sm_name = "shortname"
820+
assert sm.rename(new_sm_name) is sm
821+
assert sm.repo.is_dirty(index=True, working_tree=False, untracked_files=False)
822+
assert sm.exists()
823+
824+
sm_mod = sm.module()
825+
if os.path.isfile(os.path.join(sm_mod.working_tree_dir, '.git')) == sm._need_gitfile_submodules(parent.git):
826+
assert sm_mod.git_dir.endswith(join_path_native('.git', 'modules', new_sm_name))
827+
# end
828+
804829
@with_rw_directory
805830
def test_rename(self, rwdir):
806831
parent = git.Repo.init(os.path.join(rwdir, 'parent'))

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy