| Trees | Indices | Help |
|
|---|
|
|
This testcase creates several repositores:
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
repo_dir =
|
|||
bare_dir =
|
|||
clone_dir =
|
|||
mirror_clone_dir =
|
|||
__package__ = Nonehash(x) |
|||
|
|||
Create a repository Methods tested: Properties tested: >>> import os, gbp.git >>> repo = gbp.git.GitRepository.create(repo_dir) >>> repo.path == repo_dir True >>> repo.git_dir == os.path.join(repo_dir, '.git') True >>> type(repo) == gbp.git.GitRepository True |
Empty repos have no branch Methods tested: >>> import gbp.git >>> repo = gbp.git.GitRepository(repo_dir) >>> repo.get_branch() >>> repo.branch >>> repo.is_empty() True |
Add some dummy data Methods tested: Properties tested: >>> import gbp.git, shutil >>> repo = gbp.git.GitRepository(repo_dir) >>> shutil.copy(os.path.join(repo.path, ".git/HEAD"), os.path.join(repo.path, "testfile")) >>> repo.is_clean()[0] False >>> repo.add_files(repo.path, force=True) >>> repo.commit_all(msg="foo") >>> repo.is_clean()[0] True >>> h = repo.head >>> len(h) 40 |
First branch is called master Methods tested: >>> import gbp.git, shutil >>> repo = gbp.git.GitRepository(repo_dir) >>> repo.get_branch() 'master' >>> repo.branch 'master' |
Create a branch name foo Methods tested: >>> import gbp.git, shutil >>> repo = gbp.git.GitRepository(repo_dir) >>> repo.create_branch("foo") |
Create a branch named foo2 and delete it Methods tested: >>> import gbp.git, shutil >>> repo = gbp.git.GitRepository(repo_dir) >>> repo.create_branch("bar") >>> repo.delete_branch("bar") |
Switch to branch named foo Methods tested: >>> import gbp.git >>> repo = gbp.git.GitRepository(repo_dir) >>> repo.set_branch("foo") >>> repo.get_branch() == "foo" True >>> repo.branch == "foo" True |
Create a tag named tag Methods tested: >>> import gbp.git >>> repo = gbp.git.GitRepository(repo_dir) >>> repo.create_tag("tag") >>> repo.has_tag("tag") True >>> repo.has_tag("unknown") False >>> repo.create_tag("tag2", msg="foo") >>> repo.has_tag("tag2") True >>> repo.get_tags() ['tag', 'tag2'] >>> repo.tags ['tag', 'tag2'] |
Remove tags Methods tested: >>> import gbp.git >>> repo = gbp.git.GitRepository(repo_dir) >>> repo.move_tag("tag", "moved") >>> repo.has_tag("tag") False >>> repo.has_tag("moved") True |
Delete tags Methods tested: >>> import gbp.git >>> repo = gbp.git.GitRepository(repo_dir) >>> repo.has_tag("moved") True >>> repo.delete_tag("moved") >>> repo.has_tag("moved") False |
List files in the index Methods tested:
>>> import gbp.git, os, shutil >>> repo = gbp.git.GitRepository(repo_dir) >>> src = os.path.join(repo.path, ".git/HEAD") >>> dst = os.path.join(repo.path, "testfile") >>> repo.list_files() ['testfile'] >>> repo.list_files(['modified']) [] >>> repo.list_files(['modified', 'deleted']) [] >>> repo.list_files(['modified', 'deleted', 'cached']) ['testfile'] >>> shutil.copy(src, dst) >>> repo.list_files(['modified']) ['testfile'] >>> repo.add_files(dst) >>> repo.commit_staged(msg="foo") >>> repo.list_files(['modified']) [] >>> repo.list_files(['foo']) Traceback (most recent call last): ... GitRepositoryError: Unknown type 'foo' >>> repo.force_head('HEAD^', hard=True) >>> repo.list_files(['modified']) [] >>> shutil.copy(src, dst) >>> repo.list_files(['modified']) ['testfile'] >>> repo.commit_files(dst, msg="foo") >>> repo.list_files(['modified']) [] |
Mirror a repository Methods tested:
>>> import gbp.git >>> repo = gbp.git.GitRepository(repo_dir) >>> repo.set_branch('master') >>> mirror = gbp.git.GitRepository.clone(mirror_clone_dir, repo.path, mirror=True) >>> mirror.is_empty() False >>> mirror.branch 'master' >>> mirror.has_branch('foo') True >>> mirror.has_branch('bar') False >>> mirror.set_branch('foo') >>> mirror.branch 'foo' >>> mirror.force_head('foo^') |
Clone a repository Methods tested:
>>> import gbp.git >>> repo = gbp.git.GitRepository(repo_dir) >>> repo.set_branch('master') >>> clone = gbp.git.GitRepository.clone(clone_dir, repo.path) >>> clone.is_empty() False >>> clone.branch 'master' >>> clone.get_remote_branches() ['origin/HEAD', 'origin/foo', 'origin/master'] >>> clone.get_local_branches() ['master'] >>> clone.get_merge_branch('master') 'origin/master' >>> clone.create_branch('foo', 'origin/foo') >>> clone.get_merge_branch('foo') 'origin/foo' >>> clone.get_local_branches() ['foo', 'master'] |
Merge a branch Methods tested: >>> import gbp.git >>> repo = gbp.git.GitRepository(repo_dir) >>> repo.set_branch('master') >>> repo.merge('foo') |
Pull from a remote repository Methods tested: >>> import gbp.git, os >>> d = os.path.join(clone_dir, 'gbp_%s_test_repo' % __name__) >>> clone = gbp.git.GitRepository(d) >>> clone.set_branch('master') >>> clone.pull() |
Fetch from a remote repository Methods tested: >>> import gbp.git, os >>> d = os.path.join(clone_dir, 'gbp_%s_test_repo' % __name__) >>> clone = gbp.git.GitRepository(d) >>> clone.fetch() |
Create a bare repository Methods tested: >>> import gbp.git >>> bare = gbp.git.GitRepository.create(bare_dir, bare=True, description="msg") >>> bare.path == bare_dir True >>> bare.git_dir[:-1] == bare_dir True >>> type(bare) == gbp.git.GitRepository True >>> bare.is_empty() True >>> bare.is_clean() (True, '') |
Checkout treeishs Methods tested:
Properties tested: >>> import gbp.git >>> repo = gbp.git.GitRepository(repo_dir) >>> repo.checkout('master') >>> repo.branch 'master' >>> sha1 = repo.rev_parse('master') >>> repo.checkout(sha1) >>> repo.branch >>> repo.get_branch() Traceback (most recent call last): ... GitRepositoryError: Currently not on a branch >>> tag = repo.tags[0] >>> repo.checkout(tag) >>> repo.branch |
Perform the teardown >>> import shutil, os >>> os.getenv("GBP_TESTS_NOCLEAN") or shutil.rmtree(repo_dir) >>> os.getenv("GBP_TESTS_NOCLEAN") or shutil.rmtree(bare_dir) >>> os.getenv("GBP_TESTS_NOCLEAN") or shutil.rmtree(mirror_clone_dir) >>> os.getenv("GBP_TESTS_NOCLEAN") or shutil.rmtree(clone_dir) |
|
|||
repo_dir
|
bare_dir
|
clone_dir
|
mirror_clone_dir
|
| Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Fri Dec 2 18:39:43 2011 | http://epydoc.sourceforge.net |