Rev 5765: (jelmer) Add a RepositoryFormat.supports_signatures flag. (Jelmer Vernooij) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Thu Apr 7 11:15:52 UTC 2011
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 5765 [merge]
revision-id: pqm at pqm.ubuntu.com-20110407111546-99kqi96vnk9u8qvc
parent: pqm at pqm.ubuntu.com-20110406110717-u00w5z9lcww3o6xs
parent: jelmer at samba.org-20110406110439-od66rom3mk02lz2n
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Thu 2011-04-07 11:15:46 +0000
message:
(jelmer) Add a RepositoryFormat.supports_signatures flag. (Jelmer Vernooij)
modified:
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/tests/per_repository/test_fetch.py test_fetch.py-20070814052151-5cxha9slx4c93uog-1
bzrlib/tests/per_repository/test_repository.py test_repository.py-20060131092128-ad07f494f5c9d26c
=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py 2011-04-05 01:12:15 +0000
+++ b/bzrlib/repository.py 2011-04-07 11:15:46 +0000
@@ -3017,6 +3017,8 @@
supports_leaving_lock = None
# Does this format support the full VersionedFiles interface?
supports_full_versioned_files = None
+ # Does this format support signing revision signatures?
+ supports_revision_signatures = True
def __repr__(self):
return "%s()" % self.__class__.__name__
=== modified file 'bzrlib/tests/per_repository/test_fetch.py'
--- a/bzrlib/tests/per_repository/test_fetch.py 2010-06-20 11:18:38 +0000
+++ b/bzrlib/tests/per_repository/test_fetch.py 2011-04-02 20:53:50 +0000
@@ -26,7 +26,10 @@
tests,
)
from bzrlib.inventory import ROOT_ID
-from bzrlib.tests import TestSkipped
+from bzrlib.tests import (
+ TestNotApplicable,
+ TestSkipped,
+ )
from bzrlib.tests.per_repository import TestCaseWithRepository
@@ -263,7 +266,11 @@
repo = wt.branch.repository
repo.lock_write()
repo.start_write_group()
- repo.sign_revision('rev1', gpg.LoopbackGPGStrategy(None))
+ try:
+ repo.sign_revision('rev1', gpg.LoopbackGPGStrategy(None))
+ except errors.UnsupportedOperation:
+ self.assertFalse(repo._format.supports_revision_signatures)
+ raise TestNotApplicable("repository format does not support signatures")
repo.commit_write_group()
repo.unlock()
return repo
=== modified file 'bzrlib/tests/per_repository/test_repository.py'
--- a/bzrlib/tests/per_repository/test_repository.py 2011-03-14 00:09:25 +0000
+++ b/bzrlib/tests/per_repository/test_repository.py 2011-04-06 11:04:39 +0000
@@ -442,7 +442,11 @@
repo = wt.branch.repository
repo.lock_write()
repo.start_write_group()
- repo.sign_revision('A', gpg.LoopbackGPGStrategy(None))
+ try:
+ repo.sign_revision('A', gpg.LoopbackGPGStrategy(None))
+ except errors.UnsupportedOperation:
+ self.assertFalse(repo._format.supports_revision_signatures)
+ raise TestNotApplicable("signatures not supported by repository format")
repo.commit_write_group()
repo.unlock()
old_signature = repo.get_signature_text('A')
@@ -594,7 +598,12 @@
repo = tree.branch.repository
repo.lock_write()
repo.start_write_group()
- repo.sign_revision('rev_id', gpg.LoopbackGPGStrategy(None))
+ try:
+ repo.sign_revision('rev_id', gpg.LoopbackGPGStrategy(None))
+ except errors.UnsupportedOperation:
+ signature_texts = []
+ else:
+ signature_texts = ['rev_id']
repo.commit_write_group()
repo.unlock()
repo.lock_read()
@@ -609,7 +618,7 @@
expected_item_keys = [
('file', 'file1', ['rev_id']),
('inventory', None, ['rev_id']),
- ('signatures', None, ['rev_id']),
+ ('signatures', None, signature_texts),
('revisions', None, ['rev_id'])]
item_keys = list(repo.item_keys_introduced_by(['rev_id']))
item_keys = [
@@ -698,20 +707,24 @@
repo._check_for_inconsistent_revision_parents()
def test_add_signature_text(self):
- repo = self.make_repository('repo')
- repo.lock_write()
- self.addCleanup(repo.unlock)
- repo.start_write_group()
- self.addCleanup(repo.abort_write_group)
- inv = inventory.Inventory(revision_id='A')
- inv.root.revision = 'A'
- repo.add_inventory('A', inv, [])
- repo.add_revision('A', _mod_revision.Revision(
- 'A', committer='A', timestamp=0,
- inventory_sha1='', timezone=0, message='A'))
- repo.add_signature_text('A', 'This might be a signature')
- self.assertEqual('This might be a signature',
- repo.get_signature_text('A'))
+ builder = self.make_branch_builder('.')
+ builder.start_series()
+ builder.build_snapshot('A', None, [
+ ('add', ('', 'root-id', 'directory', None))])
+ builder.finish_series()
+ b = builder.get_branch()
+ b.lock_write()
+ self.addCleanup(b.unlock)
+ b.repository.start_write_group()
+ self.addCleanup(b.repository.abort_write_group)
+ if b.repository._format.supports_revision_signatures:
+ b.repository.add_signature_text('A', 'This might be a signature')
+ self.assertEqual('This might be a signature',
+ b.repository.get_signature_text('A'))
+ else:
+ self.assertRaises(errors.UnsupportedOperation,
+ b.repository.add_signature_text, 'A',
+ 'This might be a signature')
def test_add_revision_inventory_sha1(self):
inv = inventory.Inventory(revision_id='A')
More information about the bazaar-commits
mailing list