def test_basic_wo_modules(self): bash(f"git clone {os.path.abspath('git1')} clone_git1") bash("git checkout c2", "clone_git1") call_update("clone_git1") linked_content = repo_diff.repo_content("clone_git1") expected_content = repo_diff.clean_clone_content("git1", "c2") self.assertEqual(linked_content, expected_content)
def test_basic_w_modules(self): bash(f"git clone {os.path.abspath('git1')} clone_git1") bash("git checkout after-setUp", "clone_git1") call_update("clone_git1") call_update("clone_git1") # repeated use should have no effect linked_content = repo_diff.repo_content("clone_git1") expected_content = repo_diff.clean_clone_content("git1", "after-setUp") self.assertEqual(linked_content, expected_content)
def test_staged_change(self): bash("git checkout c1", "git1/libs/git3") git_commit("git1", "switch-git3-to-c1") bash(f"git clone {os.path.abspath('git1')} clone_git1") bash("git checkout after-setUp", "clone_git1") call_update("clone_git1") bash("git checkout c1", "clone_git1/libs/git3") bash("git add libs/git3", "clone_git1") call_update("clone_git1") linked_content = repo_diff.repo_content("clone_git1") expected_content = repo_diff.clean_clone_content( "git1", "switch-git3-to-c1") self.assertEqual(linked_content, expected_content)
def test_submod_downgrade(self): bash("git checkout c1", "git2/libs/git3") git_commit("git2", "downgrade-git3") bash("git fetch", "git1/libs/git2") bash("git checkout downgrade-git3", "git1/libs/git2") git_commit("git1", "downgrade-git3") bash(f"git clone {os.path.abspath('git1')} clone_git1") bash("git checkout after-setUp", "clone_git1") call_update("clone_git1") bash("git checkout downgrade-git3", "clone_git1") call_update("clone_git1") linked_content = repo_diff.repo_content("clone_git1") expected_content = repo_diff.clean_clone_content( "git1", "downgrade-git3") self.assertEqual(linked_content, expected_content)
def test_submod_removal(self): bash("git submodule deinit -f -- libs/git2", "git1") bash("rm -rf libs/git2", "git1") git_commit("git1", "remove-git2") bash(f"git clone {os.path.abspath('git1')} clone_git1") bash("git checkout after-setUp", "clone_git1") call_update("clone_git1") bash("git checkout remove-git2", "clone_git1") call_update("clone_git1") self.assertTrue(os.path.exists("clone_git1/libs/git2"), "the file should still be there") # This deletes the directory but the dir in .git/modules survives bash("git clean -ffd", "clone_git1") self.assertFalse(os.path.exists("clone_git1/libs/git2"), "now it should be gone") bash("git checkout after-setUp", "clone_git1") call_update("clone_git1") linked_content = repo_diff.repo_content("clone_git1") expected_content = repo_diff.clean_clone_content("git1", "after-setUp") self.assertEqual(linked_content, expected_content)