From 81c3d533a07c6602f07907b82b12d885239ca013 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Fri, 26 May 2017 16:30:29 +0200 Subject: GitRepository: add rename_file --- gbp/git/repository.py | 11 +++++++++++ tests/doctests/test_GitRepository.py | 16 ++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/gbp/git/repository.py b/gbp/git/repository.py index 991b0fa0..a55c4777 100644 --- a/gbp/git/repository.py +++ b/gbp/git/repository.py @@ -1431,6 +1431,17 @@ class GitRepository(object): return self.strip_sha1(sha1) else: raise GbpError("Failed to hash %s: %s" % (filename, stderr)) + + def rename_file(self, old, new): + """ + Rename file, directory, or symlink + """ + args = GitArgs(old, new) + _, stderr, ret = self._git_inout('mv', + args.args, + capture_stderr=True) + if ret: + raise GbpError("Failed to move '%s' to '%s': %s" % (old, new, stderr.rstrip())) #} #{ Comitting diff --git a/tests/doctests/test_GitRepository.py b/tests/doctests/test_GitRepository.py index a11211d7..f6e739b7 100644 --- a/tests/doctests/test_GitRepository.py +++ b/tests/doctests/test_GitRepository.py @@ -123,6 +123,22 @@ def test_add_files(): """ +def test_move_file(): + """ + Methods tested: + - L{gbp.git.GitRepository.move_file} + + >>> import gbp.git + >>> repo = gbp.git.GitRepository(dirs['repo']) + >>> repo.rename_file("testfile", "testfile2") + >>> repo.rename_file("testfile2", "testfile") + >>> repo.rename_file("doesnotexit", "testfile2") + Traceback (most recent call last): + ... + GbpError: Failed to move 'doesnotexit' to 'testfile2': fatal: bad source, source=doesnotexit, destination=testfile2 + """ + + def test_branch_master(): """ First branch is called I{master} -- cgit v1.2.3