doctests.test_PristineTar module documentationdoctests
Test pristine-tar related methods in
- L{gbp.deb.pristinetar.DebianPristineTar}
and
- L{gbp.deb.git.DebianGitRepository}
This testcase creates this reposity:
- A repository at I{dirs['repo']} called I{repo}
| Function | setup_module | Undocumented |
| Function | teardown_module | Undocumented |
| Function | test_create | Create a repository |
| Function | test_empty_repo | Empty repos have no branch pristine-tar branch |
| Function | test_commit_dir | Empty repos have no branch pristine-tar branch |
| Function | test_create_tarball | Create a tarball from a git tree and add a stub signature |
| Function | test_pristine_tar_commit | Commit the delta to the pristine-tar branch |
| Function | test_pristine_tar_commit_with_sig | Commit the delta to the pristine-tar branch including a signature |
| Function | test_pristine_has_commit | Find delta on the pristine tar branch |
| Function | test_pristine_tar_checkout | Checkout a tarball using pristine-tar |
| Function | test_pristine_tar_checkout_with_sig | Checkout a tarball using pristine-tar |
| Function | test_pristine_tar_verify | Verify a tarball using pristine-tar |
| Function | test_pristine_tar_checkout_nonexistent | Checkout a tarball that does not exist using pristine-tar |
Create a repository
Methods tested:
- L{gbp.deb.git.DebianGitRepository.create}
>>> import os, gbp.deb.git
>>> repo = gbp.deb.git.DebianGitRepository.create(dirs['repo'])
Empty repos have no branch pristine-tar branch
Methods tested:
- L{gbp.deb.git.DebianGitRepository.has_pristine_tar_branch}
- L{gbp.deb.pristinetar.DebianPristineTar.has_commit}
>>> import gbp.deb.git
>>> repo = gbp.deb.git.DebianGitRepository(dirs['repo'])
>>> repo.has_pristine_tar_branch()
False
>>> repo.pristine_tar.has_commit('upstream', '1.0', 'gzip')
False
Empty repos have no branch pristine-tar branch
Methods tested:
- L{gbp.git.repository.GitRepository.commit_dir}
- L{gbp.git.repository.GitRepository.create_branch}
>>> import gbp.deb.git
>>> repo = gbp.deb.git.DebianGitRepository(dirs['repo'])
>>> commit = repo.commit_dir(test_data, msg="initial commit", branch=None)
>>> repo.create_branch('upstream')
Create a tarball from a git tree and add a stub signature
Methods tested:
- L{gbp.deb.git.DebianGitRepository.archive}
>>> import gbp.deb.git
>>> repo = gbp.deb.git.DebianGitRepository(dirs['repo'])
>>> repo.archive('tar', 'upstream/', '../upstream_1.0.orig.tar', 'upstream')
>>> gbp.command_wrappers.Command('gzip', [ '-n', '%s/../upstream_1.0.orig.tar' % dirs['repo']])()
>>> with open('%s/../upstream_1.0.orig.tar.gz.asc' % dirs['repo'], 'w') as f: f.write("sig")
3
Commit the delta to the pristine-tar branch
Methods tested:
- L{gbp.deb.pristinetar.DebianPristineTar.commit}
>>> import gbp.deb.git
>>> repo = gbp.deb.git.DebianGitRepository(dirs['repo'])
>>> repo.pristine_tar.commit('../upstream_1.0.orig.tar.gz', 'upstream')
Commit the delta to the pristine-tar branch including a signature
Methods tested:
- L{gbp.deb.pristinetar.DebianPristineTar.commit}
>>> import gbp.deb.git
>>> repo = gbp.deb.git.DebianGitRepository(dirs['repo'])
>>> repo.pristine_tar.commit('../upstream_1.0.orig.tar.gz', 'upstream',
... signaturefile='../upstream_1.0.orig.tar.gz.asc')
Find delta on the pristine tar branch
Methods tested:
- L{gbp.deb.pristinetar.DebianPristineTar.has_commit}
- L{gbp.pkg.pristinetar.PristineTar.get_commit}
>>> import gbp.deb.git
>>> repo = gbp.deb.git.DebianGitRepository(dirs['repo'])
>>> repo.pristine_tar.has_commit('upstream', '1.0', 'bzip2')
False
>>> repo.pristine_tar.has_commit('upstream', '1.0', 'gzip')
True
>>> repo.pristine_tar.has_commit('upstream', '1.0')
True
>>> branch = repo.rev_parse('pristine-tar')
>>> commit = repo.pristine_tar.get_commit('upstream_1.0.orig.tar.gz')
>>> branch == commit
True
Checkout a tarball using pristine-tar
Methods tested:
- L{gbp.deb.pristinetar.DebianPristineTar.checkout}
>>> import gbp.deb.git
>>> repo = gbp.deb.git.DebianGitRepository(dirs['repo'])
>>> repo.pristine_tar.checkout('upstream', '1.0', 'gzip', '..')
Checkout a tarball using pristine-tar
Methods tested:
- L{gbp.deb.pristinetar.DebianPristineTar.checkout}
>>> import gbp.deb.git
>>> from gbp.deb.policy import DebianPkgPolicy
>>> repo = gbp.deb.git.DebianGitRepository(dirs['repo'])
>>> sf = os.path.join(repo.path,
... DebianPkgPolicy.build_signature_name('upstream', '1.0', 'gzip', '..'))
>>> os.unlink(sf)
>>> repo.pristine_tar.checkout('upstream', '1.0', 'gzip', '..',
... signature=True)
>>> os.path.exists(sf) or not repo.pristine_tar.has_feature_sig()
True
Verify a tarball using pristine-tar
Methods tested:
- L{gbp.deb.pristinetar.DebianPristineTar.verify}
>>> import gbp.deb.git
>>> repo = gbp.deb.git.DebianGitRepository(dirs['repo'])
>>> if repo.pristine_tar.has_feature_verify():
... repo.pristine_tar.verify('../upstream_1.0.orig.tar.gz')
Checkout a tarball that does not exist using pristine-tar
Methods tested:
- L{gbp.deb.pristinetar.DebianPristineTar.checkout}
# Silence error output
>>> import gbp.deb.git
>>> repo = gbp.deb.git.DebianGitRepository(dirs['repo'])
>>> _gbp_log_err_bak = gbp.log.err
>>> gbp.log.err = lambda x: None
>>> repo.pristine_tar.checkout('upstream', '1.1', 'gzip', '..')
Traceback (most recent call last):
...
gbp.command_wrappers.CommandExecFailed: Pristine-tar couldn't checkout "upstream_1.1.orig.tar.gz": fatal: Path 'upstream_1.1.orig.tar.gz.delta' does not exist in 'refs/heads/pristine-tar'
pristine-tar: git show refs/heads/pristine-tar:upstream_1.1.orig.tar.gz.delta failed
>>> gbp.log.err = _gbp_log_err_bak