5557.1.15
by John Arbash Meinel
Merge bzr.dev 5597 to resolve NEWS, aka bzr-2.3.txt |
1 |
# Copyright (C) 2005, 2006, 2007, 2009, 2011 Canonical Ltd
|
1442.1.55
by Robert Collins
move environment preservation up to the root test case, making it available to all tests |
2 |
# Authors: Robert Collins <robert.collins@canonical.com>
|
3 |
#
|
|
4 |
# This program is free software; you can redistribute it and/or modify
|
|
5 |
# it under the terms of the GNU General Public License as published by
|
|
6 |
# the Free Software Foundation; either version 2 of the License, or
|
|
7 |
# (at your option) any later version.
|
|
8 |
#
|
|
9 |
# This program is distributed in the hope that it will be useful,
|
|
10 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12 |
# GNU General Public License for more details.
|
|
13 |
#
|
|
14 |
# You should have received a copy of the GNU General Public License
|
|
15 |
# along with this program; if not, write to the Free Software
|
|
4183.7.1
by Sabin Iacob
update FSF mailing address |
16 |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
1442.1.55
by Robert Collins
move environment preservation up to the root test case, making it available to all tests |
17 |
|
18 |
"""Tests for signing and verifying blobs of data via gpg."""
|
|
19 |
||
20 |
# import system imports here
|
|
21 |
import sys |
|
22 |
||
6123.1.16
by Jelmer Vernooij
Add test. |
23 |
from bzrlib import ( |
6351.3.10
by Vincent Ladeuil
Inherit from TestCaseWithTransport as we need some disk support, add a |
24 |
config, |
6123.1.16
by Jelmer Vernooij
Add test. |
25 |
errors, |
26 |
gpg, |
|
6351.3.10
by Vincent Ladeuil
Inherit from TestCaseWithTransport as we need some disk support, add a |
27 |
tests, |
6123.1.16
by Jelmer Vernooij
Add test. |
28 |
trace, |
29 |
ui, |
|
30 |
)
|
|
31 |
from bzrlib.tests import ( |
|
32 |
TestCase, |
|
33 |
features, |
|
34 |
)
|
|
1442.1.55
by Robert Collins
move environment preservation up to the root test case, making it available to all tests |
35 |
|
6351.3.10
by Vincent Ladeuil
Inherit from TestCaseWithTransport as we need some disk support, add a |
36 |
|
6393.1.1
by Vincent Ladeuil
Provides MemoryStack to simplify configuration setup in tests |
37 |
class FakeConfig(config.MemoryStack): |
6351.3.11
by Vincent Ladeuil
Simplify by using an in-memory config store and stack. |
38 |
|
6372.1.3
by Vincent Ladeuil
Fix gpg_signing_ket default values handling |
39 |
def __init__(self, content=None): |
40 |
if content is None: |
|
41 |
content = ''' |
|
6351.3.11
by Vincent Ladeuil
Simplify by using an in-memory config store and stack. |
42 |
gpg_signing_key=amy@example.com
|
6372.1.3
by Vincent Ladeuil
Fix gpg_signing_ket default values handling |
43 |
gpg_signing_command=false'''
|
6393.1.1
by Vincent Ladeuil
Provides MemoryStack to simplify configuration setup in tests |
44 |
super(FakeConfig, self).__init__(content) |
6351.3.11
by Vincent Ladeuil
Simplify by using an in-memory config store and stack. |
45 |
|
46 |
||
47 |
class TestCommandLine(tests.TestCase): |
|
6351.3.10
by Vincent Ladeuil
Inherit from TestCaseWithTransport as we need some disk support, add a |
48 |
|
49 |
def setUp(self): |
|
50 |
super(TestCommandLine, self).setUp() |
|
6351.3.11
by Vincent Ladeuil
Simplify by using an in-memory config store and stack. |
51 |
self.my_gpg = gpg.GPGStrategy(FakeConfig()) |
1442.1.57
by Robert Collins
check that we get the right command line from the default gpg strategy. |
52 |
|
53 |
def test_signing_command_line(self): |
|
6012.2.14
by Jonathan Riddell
fix tests |
54 |
self.assertEqual(['false', '--clearsign', '-u', 'amy@example.com'], |
6351.3.10
by Vincent Ladeuil
Inherit from TestCaseWithTransport as we need some disk support, add a |
55 |
self.my_gpg._command_line()) |
1442.1.58
by Robert Collins
gpg signing of content |
56 |
|
6372.1.3
by Vincent Ladeuil
Fix gpg_signing_ket default values handling |
57 |
def test_signing_command_line_from_default(self): |
58 |
# Using 'default' for gpg_signing_key will use the mail part of 'email'
|
|
59 |
my_gpg = gpg.GPGStrategy(FakeConfig(''' |
|
60 |
email=Amy <amy@example.com>
|
|
61 |
gpg_signing_key=default
|
|
62 |
gpg_signing_command=false''')) |
|
63 |
self.assertEqual(['false', '--clearsign', '-u', 'amy@example.com'], |
|
64 |
my_gpg._command_line()) |
|
65 |
||
66 |
def test_signing_command_line_from_email(self): |
|
67 |
# Not setting gpg_signing_key will use the mail part of 'email'
|
|
68 |
my_gpg = gpg.GPGStrategy(FakeConfig(''' |
|
69 |
email=Amy <amy@example.com>
|
|
70 |
gpg_signing_command=false''')) |
|
71 |
self.assertEqual(['false', '--clearsign', '-u', 'amy@example.com'], |
|
72 |
my_gpg._command_line()) |
|
73 |
||
1442.1.58
by Robert Collins
gpg signing of content |
74 |
def test_checks_return_code(self): |
75 |
# This test needs a unix like platform - one with 'false' to run.
|
|
76 |
# if you have one, please make this work :)
|
|
6351.3.10
by Vincent Ladeuil
Inherit from TestCaseWithTransport as we need some disk support, add a |
77 |
self.assertRaises(errors.SigningFailed, self.my_gpg.sign, 'content') |
1442.1.58
by Robert Collins
gpg signing of content |
78 |
|
1551.8.12
by Aaron Bentley
Add test case for clearing PB |
79 |
def assertProduces(self, content): |
80 |
# This needs a 'cat' command or similar to work.
|
|
1185.31.54
by John Arbash Meinel
Win32 not only doesn't have cat, it changes line-endings too. Should be fixed. |
81 |
if sys.platform == 'win32': |
82 |
# Windows doesn't come with cat, and we don't require it
|
|
83 |
# so lets try using python instead.
|
|
3943.8.1
by Marius Kruger
remove all trailing whitespace from bzr source |
84 |
# But stupid windows and line-ending conversions.
|
1185.31.54
by John Arbash Meinel
Win32 not only doesn't have cat, it changes line-endings too. Should be fixed. |
85 |
# It is too much work to make sys.stdout be in binary mode.
|
86 |
# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65443
|
|
6351.3.10
by Vincent Ladeuil
Inherit from TestCaseWithTransport as we need some disk support, add a |
87 |
self.my_gpg._command_line = lambda:[sys.executable, '-c', |
1185.78.4
by John Arbash Meinel
Reverting gpg changes, should not be mainline, see gpg_uses_tempfile plugin. |
88 |
'import sys; sys.stdout.write(sys.stdin.read())'] |
1185.31.54
by John Arbash Meinel
Win32 not only doesn't have cat, it changes line-endings too. Should be fixed. |
89 |
new_content = content.replace('\n', '\r\n') |
90 |
||
6351.3.10
by Vincent Ladeuil
Inherit from TestCaseWithTransport as we need some disk support, add a |
91 |
self.assertEqual(new_content, self.my_gpg.sign(content)) |
1185.31.54
by John Arbash Meinel
Win32 not only doesn't have cat, it changes line-endings too. Should be fixed. |
92 |
else: |
6351.3.10
by Vincent Ladeuil
Inherit from TestCaseWithTransport as we need some disk support, add a |
93 |
self.my_gpg._command_line = lambda:['cat', '-'] |
94 |
self.assertEqual(content, self.my_gpg.sign(content)) |
|
1442.1.62
by Robert Collins
Allow creation of testaments from uncommitted data, and use that to get signatures before committing revisions. |
95 |
|
1551.8.12
by Aaron Bentley
Add test case for clearing PB |
96 |
def test_returns_output(self): |
97 |
content = "some content\nwith newlines\n" |
|
98 |
self.assertProduces(content) |
|
99 |
||
100 |
def test_clears_progress(self): |
|
101 |
content = "some content\nwith newlines\n" |
|
102 |
old_clear_term = ui.ui_factory.clear_term |
|
3943.8.1
by Marius Kruger
remove all trailing whitespace from bzr source |
103 |
clear_term_called = [] |
1551.8.12
by Aaron Bentley
Add test case for clearing PB |
104 |
def clear_term(): |
105 |
old_clear_term() |
|
1551.8.13
by Aaron Bentley
Tweak test_clears_progress |
106 |
clear_term_called.append(True) |
1551.8.12
by Aaron Bentley
Add test case for clearing PB |
107 |
ui.ui_factory.clear_term = clear_term |
108 |
try: |
|
109 |
self.assertProduces(content) |
|
110 |
finally: |
|
111 |
ui.ui_factory.clear_term = old_clear_term |
|
112 |
self.assertEqual([True], clear_term_called) |
|
113 |
||
2273.1.1
by John Arbash Meinel
``GPGStrategy.sign()`` will now raise ``BzrBadParameterUnicode`` if |
114 |
def test_aborts_on_unicode(self): |
2273.1.2
by John Arbash Meinel
Cleanup docstring for Aaron Bentley |
115 |
"""You can't sign Unicode text; it must be encoded first."""
|
2273.1.1
by John Arbash Meinel
``GPGStrategy.sign()`` will now raise ``BzrBadParameterUnicode`` if |
116 |
self.assertRaises(errors.BzrBadParameterUnicode, |
117 |
self.assertProduces, u'foo') |
|
118 |
||
6393.1.1
by Vincent Ladeuil
Provides MemoryStack to simplify configuration setup in tests |
119 |
|
6043.2.4
by Jonathan Riddell
add test for valid_but_unacceptable_key, document tests in verify method |
120 |
class TestVerify(TestCase): |
121 |
||
5971.1.14
by Jonathan Riddell
add test for set_acceptable_keys, accept non-trusted keys if specified as acceptable, import dummy key in tests so it works outside my machine |
122 |
def import_keys(self): |
123 |
from StringIO import StringIO |
|
124 |
import gpgme |
|
125 |
context = gpgme.Context() |
|
126 |
||
127 |
key = StringIO("""-----BEGIN PGP PUBLIC KEY BLOCK----- |
|
128 |
Version: GnuPG v1.4.11 (GNU/Linux)
|
|
129 |
||
130 |
mQENBE343IgBCADwzPW7kmKb2bjB+UU+1ER/ABMZspvtoZMPusUw7bk6coXHF/0W
|
|
131 |
u1K/hSYeX9xaGOfOQw41r/g13MoR9dsL6L84RLiisf38rRoBZt+d5bCbZA5Xo801
|
|
132 |
2PeoBoGo6u5oOYKAFLMvrUitPiiE0IT/oQTfC4YUrLN4A+9W0QZruPGIpIXwmZXr
|
|
133 |
L0zsqYfNqIN0ompeJenVpKpvm3loJ/zfK7R3EJ3hsv6nkUmWCFsP1Pw3UV1YuCmw
|
|
134 |
Mkdn1U7DaOql1WjXgj9ABQDJrun2TGsqrSRzBODtHKA/uOX0K3VfKBU8VZo3dXUm
|
|
135 |
1Q4ZeZC39L9qJGTH8TQYlwBLe1yAOp+vx7QJABEBAAG0JEJhemFhciBUZXN0IEtl
|
|
136 |
eSA8YmF6YWFyQGV4YW1wbGUuY29tPokBOAQTAQIAIgUCTfjciAIbAwYLCQgHAwIG
|
|
137 |
FQgCCQoLBBYCAwECHgECF4AACgkQh2gbHuMIDkWJUggAwj537fH6WW+GGLA5onys
|
|
138 |
2hZmXUq/tU+L92bjQoRY4fmsQpk/FUVPUf+NQ0v1gkxx4BTfyYewaj5G6L8cvqW2
|
|
139 |
jj7UiJd8z9gTRxWTnYwfR/w5PGmxfJsBfEUKWsccrPQdOXAhwu0fjYIVk4nqgswa
|
|
140 |
IOAZIwe5Vsfs36uSS7p8RQHAZXLXtTOn3KcXHaxu83w6nc4zkWRovGJ9isBN3haO
|
|
141 |
2qEa0mYiAfDpz40CGtb8N/TQHF3Xcw8rJcxpg6RF3jMtWQnzbVJFp13it00R3LqW
|
|
142 |
o/r3RII3Ii3z2yARlg6D+5hVOrFBV8jFLkff1R2ZnVu+7WOrnbpmt3OiMkSeZrtB
|
|
143 |
OrkBDQRN+NyIAQgArRZ2YGzUj5dXOVIWgZ1/QFpyfx/cG/293WjRE4Wt2e4SxMf2
|
|
144 |
V0dcVCqWwT0+a79Wbausv4bStD4SkwDmu0Jf3z5ERzrr7oZwP0PMsIlM5zT6XSsr
|
|
145 |
6UUneB3UXX7MrEqVogVhRM0ORIaK/oRwMXr7K6xVT+bCBP3/p66kHtY1ZpfEzTEX
|
|
146 |
imBsN3GqoewBHYIneJKBtHE7uzdzw3O5p5dXqoj5foxGi9R1J15vAmt5pI68HJeX
|
|
147 |
P6ktvXbX2Iu7VDNoCvRXM9+ntyJtsXCjNXg4pTGHS/XO4nm2db4FUZOBcVMb1vCc
|
|
148 |
VtFjLTcbCqJqpoJWUtsLcNqDqMHOQDpe6KTNTQARAQABiQEfBBgBAgAJBQJN+NyI
|
|
149 |
AhsMAAoJEIdoGx7jCA5FrR8IANnOF3PUj1TbRcwV6RoWmHsFQHrPmM8ogXia1Lsv
|
|
150 |
jE1iEWoC+muvKh6Oydf90k6ZslS7rdDnp2qzYY8W/TiDkxP+fvsZ4mMi1Y0F+3ty
|
|
151 |
1jzWhcsnB2VrJSiavxEXk0tKPrNv4EUGWG6wHsC9TBj37If+nrMyim94VHvI0eHm
|
|
152 |
X8yMlN4O3HfmgD9CbJdUxueP3e31OIYuwh/6F7GII8TNEVHU/8vh/mQcCxppNbc+
|
|
153 |
boff+kIsoa/TAMLwtJoSrX1nXm0K3vZePRLnIgmwVzdkOIkaRJUG2tSQFvkfhvtE
|
|
154 |
LhnkL5l4MO0wrUds0UWRwa3d7j/P2ExrqXdlLmEzrifWyEQ=
|
|
155 |
=hUJn
|
|
156 |
-----END PGP PUBLIC KEY BLOCK-----
|
|
157 |
""") |
|
158 |
||
159 |
secret_key = StringIO("""-----BEGIN PGP PRIVATE KEY BLOCK----- |
|
160 |
Version: GnuPG v1.4.11 (GNU/Linux)
|
|
161 |
||
162 |
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
|
|
214 |
=LXn0
|
|
215 |
-----END PGP PRIVATE KEY BLOCK-----
|
|
216 |
""") |
|
217 |
||
6043.2.5
by Jonathan Riddell
catch a revoked key and add test for it |
218 |
revoked_key = StringIO("""-----BEGIN PGP PUBLIC KEY BLOCK----- |
219 |
Version: GnuPG v1.4.11 (GNU/Linux)
|
|
220 |
||
221 |
mI0ETjlW5gEEAOb/6P+TVM59E897wRtatxys2BhsHCXM4T7xjIiANfDwejDdifqh
|
|
222 |
tluTfSJLLxPembtrrEjux1C0AJgc+f0MIfsc3Pr3eFJzKB2ot/1IVG1/1KnA0zt3
|
|
223 |
W2xPT3lRib27WJ9Fag+dMtQaIzgJ7/n2DFxsFZ33FD2kxrEXB2exGg6FABEBAAGI
|
|
224 |
pgQgAQIAEAUCTjlXkAkdAHJldm9rZWQACgkQjs6dvEpb0cQPHAP/Wi9rbx0e+1Sf
|
|
225 |
ziGgyVdr3m3A6uvze5oXKVgFRbGRUYSH4/I8GW0W9x4TcRg9h+YaQ8NUdADr9kNE
|
|
226 |
tKAljLqYA5qdqSfYuaij1M++Xj+KUZ359R74sHuQqwnRy1XXQNfRs/QpXA7vLdds
|
|
227 |
rjg+pbWuXO92TZJUdnqtWW+VEyZBsPy0G3Rlc3Qga2V5IDx0ZXN0QGV4YW1wbGUu
|
|
228 |
Y29tPoi4BBMBAgAiBQJOOVbmAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAK
|
|
229 |
CRCOzp28SlvRxNWzA/42WVmI0b+6mF/imEOlY1TiyvrcpK250rkSDsCtL4lOwy7G
|
|
230 |
antZhpgNfnXRd/ySfsS3EB6dpOWgOSxGRvWQhA+vxBT9BYNk49qd3JIrSaSWpR12
|
|
231 |
rET8qO1rEQQFWsw03CxTGujxGlmEO+a1yguRXp2UWaY7FngcQmD+8q7BUIVm7riN
|
|
232 |
BE45VuYBBADTEH2jHTjNCc5CMOhea6EJTrkx3upcEqB2oyhWeSWJiBGOxlcddsjo
|
|
233 |
3J3/EmBB8kK1hM9TidD3SG64x1N287lg8ELJBlKv+pQVyxohGJ1u/THgpTDMMQcL
|
|
234 |
luG5rAHQGSfyzKTiOnaTyBYg3M/nzgUOU9dKEFB0EA3tjUXFOT+r3wARAQABiJ8E
|
|
235 |
GAECAAkFAk45VuYCGwwACgkQjs6dvEpb0cRSLQP/fzCWX2lXwlwWiVF8BOPF7o9z
|
|
236 |
icHErc7/X17RGb4qj1kVf+UkRdUWJrbEVh4h6MncBIuA70WsYogiw+Kz/0LCtQAR
|
|
237 |
YUJsPy/EL++OKPH1aFasOdTxwkTka85+RdYqhP1+z/aYLFMWq6mRFI+o6x2k5mGi
|
|
238 |
7dMv2kKTJPoXUpiXJbg=
|
|
239 |
=hLYO
|
|
240 |
-----END PGP PUBLIC KEY BLOCK-----
|
|
241 |
""") |
|
242 |
||
6043.2.8
by Jonathan Riddell
add test for unknown key |
243 |
expired_key = StringIO("""-----BEGIN PGP PUBLIC KEY BLOCK----- |
244 |
Version: GnuPG v1.4.11 (GNU/Linux)
|
|
245 |
||
246 |
mI0ETjZ6PAEEALkR4GcFQidCCxV7pgQwQd5MZua0YO2l92fVqHX+PhnZ6egCLKdD
|
|
247 |
2bWlMUd6MLPF3FlRL7BBAxvW/DazkBOp7ljsnpMpptEzY49Uem1irYLYiVb9zK96
|
|
248 |
0sQZzFxFkfEYetQEXC68mIck8tbySOX5NAOw++3jFm3J7dsU1R3XtYzRABEBAAG0
|
|
249 |
G3Rlc3Qga2V5IDx0ZXN0QGV4YW1wbGUuY29tPoi+BBMBAgAoBQJONno8AhsDBQkA
|
|
250 |
AVGABgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAc4m97T40VEz+DA/9PBphG
|
|
251 |
Yp9cHVaHSfTUKGTGgIbvRe60sFNpDCYZeAGDrygOMuI8MNzbVpwefRBFHVPx7jWd
|
|
252 |
rrYMsLkcsNUS9D0baU+0D/qp7JVg7ZSQtG0O6IG4eTZhibteY1fu0+unlXmg9NHx
|
|
253 |
5VvhwzBiJDYji00M2p/CZEMiYFUuy76CsxUpN7iNBE42ejwBBACkv2/mX7IPQg0C
|
|
254 |
A3KSrJsJv+sdvKm4b4xuI4OwagwTIVz4KlTqV4IBrVjSBfwyMXucXz0bTW85qjgA
|
|
255 |
+n67td8vyjYYZUEz1uY9lSquQQDnAN0txL3cLHZXWiWOkmzZVddQtlflK2a/J9o0
|
|
256 |
QkHPVUm+hc4l64dIzStrNl2S66fAvQARAQABiKUEGAECAA8FAk42ejwCGwwFCQAB
|
|
257 |
UYAACgkQHOJve0+NFROEYQP/epg+o8iBs31hkSERyZjrRR66LpywezWj30Rn/3mX
|
|
258 |
Fzi9HkF4xLemWOzdNt9C5PYrOep85PQg8haEjknxVjZFS0ikT1h3OWk/TF1ZrLVm
|
|
259 |
WzyX8DaHQEjKpLJJjXcAbTiZBNMk0QaVC9RvIeHpCf3n3DC49DdjsPJRMKOn8KDi
|
|
260 |
kRk=
|
|
261 |
=p0gt
|
|
262 |
-----END PGP PUBLIC KEY BLOCK-----
|
|
263 |
""") |
|
5971.1.14
by Jonathan Riddell
add test for set_acceptable_keys, accept non-trusted keys if specified as acceptable, import dummy key in tests so it works outside my machine |
264 |
context.import_(key) |
265 |
context.import_(secret_key) |
|
6043.2.5
by Jonathan Riddell
catch a revoked key and add test for it |
266 |
context.import_(revoked_key) |
6043.2.8
by Jonathan Riddell
add test for unknown key |
267 |
context.import_(expired_key) |
5971.1.14
by Jonathan Riddell
add test for set_acceptable_keys, accept non-trusted keys if specified as acceptable, import dummy key in tests so it works outside my machine |
268 |
|
6043.2.7
by Jonathan Riddell
some reordering of verification, improve names of tests |
269 |
def test_verify_untrusted_but_accepted(self): |
270 |
#untrusted by gpg but listed as acceptable_keys by user
|
|
5971.1.35
by Jonathan Riddell
set gpgme in tests.features |
271 |
self.requireFeature(features.gpgme) |
272 |
self.import_keys() |
|
6372.1.1
by Vincent Ladeuil
Remove spurious spaces. |
273 |
|
5971.1.9
by Jonathan Riddell
add some tests |
274 |
content = """-----BEGIN PGP SIGNED MESSAGE----- |
275 |
Hash: SHA1
|
|
276 |
||
277 |
bazaar-ng testament short form 1
|
|
278 |
revision-id: amy@example.com-20110527185938-hluafawphszb8dl1
|
|
279 |
sha1: 6411f9bdf6571200357140c9ce7c0f50106ac9a4
|
|
280 |
-----BEGIN PGP SIGNATURE-----
|
|
281 |
Version: GnuPG v1.4.11 (GNU/Linux)
|
|
282 |
||
5971.1.14
by Jonathan Riddell
add test for set_acceptable_keys, accept non-trusted keys if specified as acceptable, import dummy key in tests so it works outside my machine |
283 |
iQEcBAEBAgAGBQJN+ekFAAoJEIdoGx7jCA5FGtEH/i+XxJRvqU6wdBtLVrGBMAGk
|
284 |
FZ5VP+KyXYtymSbgSstj/vM12NeMIeFs3xGnNnYuX1MIcY6We5TKtCH0epY6ym5+
|
|
285 |
6g2Q2QpQ5/sT2d0mWzR0K4uVngmxVQaXTdk5PdZ40O7ULeDLW6CxzxMHyUL1rsIx
|
|
286 |
7UBUTBh1O/1n3ZfD99hUkm3hVcnsN90uTKH59zV9NWwArU0cug60+5eDKJhSJDbG
|
|
287 |
rIwlqbFAjDZ7L/48e+IaYIJwBZFzMBpJKdCxzALLtauMf+KK8hGiL2hrRbWm7ty6
|
|
288 |
NgxfkMYOB4rDPdSstT35N+5uBG3n/UzjxHssi0svMfVETYYX40y57dm2eZQXFp8=
|
|
289 |
=iwsn
|
|
5971.1.9
by Jonathan Riddell
add some tests |
290 |
-----END PGP SIGNATURE-----
|
291 |
"""
|
|
5971.1.31
by Jonathan Riddell
and update tests |
292 |
plain = """bazaar-ng testament short form 1 |
293 |
revision-id: amy@example.com-20110527185938-hluafawphszb8dl1
|
|
294 |
sha1: 6411f9bdf6571200357140c9ce7c0f50106ac9a4
|
|
295 |
"""
|
|
5971.1.9
by Jonathan Riddell
add some tests |
296 |
my_gpg = gpg.GPGStrategy(FakeConfig()) |
5971.1.14
by Jonathan Riddell
add test for set_acceptable_keys, accept non-trusted keys if specified as acceptable, import dummy key in tests so it works outside my machine |
297 |
my_gpg.set_acceptable_keys("bazaar@example.com") |
5971.1.31
by Jonathan Riddell
and update tests |
298 |
self.assertEqual((gpg.SIGNATURE_VALID, None), my_gpg.verify(content, |
299 |
plain)) |
|
5971.1.9
by Jonathan Riddell
add some tests |
300 |
|
6043.2.7
by Jonathan Riddell
some reordering of verification, improve names of tests |
301 |
def test_verify_unacceptable_key(self): |
6043.2.4
by Jonathan Riddell
add test for valid_but_unacceptable_key, document tests in verify method |
302 |
self.requireFeature(features.gpgme) |
303 |
self.import_keys() |
|
6372.1.1
by Vincent Ladeuil
Remove spurious spaces. |
304 |
|
6043.2.4
by Jonathan Riddell
add test for valid_but_unacceptable_key, document tests in verify method |
305 |
content = """-----BEGIN PGP SIGNED MESSAGE----- |
306 |
Hash: SHA1
|
|
307 |
||
308 |
bazaar-ng testament short form 1
|
|
309 |
revision-id: amy@example.com-20110527185938-hluafawphszb8dl1
|
|
310 |
sha1: 6411f9bdf6571200357140c9ce7c0f50106ac9a4
|
|
311 |
-----BEGIN PGP SIGNATURE-----
|
|
312 |
Version: GnuPG v1.4.11 (GNU/Linux)
|
|
313 |
||
314 |
iQEcBAEBAgAGBQJN+ekFAAoJEIdoGx7jCA5FGtEH/i+XxJRvqU6wdBtLVrGBMAGk
|
|
315 |
FZ5VP+KyXYtymSbgSstj/vM12NeMIeFs3xGnNnYuX1MIcY6We5TKtCH0epY6ym5+
|
|
316 |
6g2Q2QpQ5/sT2d0mWzR0K4uVngmxVQaXTdk5PdZ40O7ULeDLW6CxzxMHyUL1rsIx
|
|
317 |
7UBUTBh1O/1n3ZfD99hUkm3hVcnsN90uTKH59zV9NWwArU0cug60+5eDKJhSJDbG
|
|
318 |
rIwlqbFAjDZ7L/48e+IaYIJwBZFzMBpJKdCxzALLtauMf+KK8hGiL2hrRbWm7ty6
|
|
319 |
NgxfkMYOB4rDPdSstT35N+5uBG3n/UzjxHssi0svMfVETYYX40y57dm2eZQXFp8=
|
|
320 |
=iwsn
|
|
321 |
-----END PGP SIGNATURE-----
|
|
322 |
"""
|
|
323 |
plain = """bazaar-ng testament short form 1 |
|
324 |
revision-id: amy@example.com-20110527185938-hluafawphszb8dl1
|
|
325 |
sha1: 6411f9bdf6571200357140c9ce7c0f50106ac9a4
|
|
326 |
"""
|
|
327 |
my_gpg = gpg.GPGStrategy(FakeConfig()) |
|
328 |
my_gpg.set_acceptable_keys("foo@example.com") |
|
329 |
self.assertEqual((gpg.SIGNATURE_KEY_MISSING, u'E3080E45'), |
|
330 |
my_gpg.verify(content, plain)) |
|
331 |
||
6043.2.6
by Jonathan Riddell
catch untrusted keys and add test |
332 |
def test_verify_valid_but_untrusted(self): |
333 |
self.requireFeature(features.gpgme) |
|
334 |
self.import_keys() |
|
6372.1.1
by Vincent Ladeuil
Remove spurious spaces. |
335 |
|
6043.2.6
by Jonathan Riddell
catch untrusted keys and add test |
336 |
content = """-----BEGIN PGP SIGNED MESSAGE----- |
337 |
Hash: SHA1
|
|
338 |
||
339 |
bazaar-ng testament short form 1
|
|
340 |
revision-id: amy@example.com-20110527185938-hluafawphszb8dl1
|
|
341 |
sha1: 6411f9bdf6571200357140c9ce7c0f50106ac9a4
|
|
342 |
-----BEGIN PGP SIGNATURE-----
|
|
343 |
Version: GnuPG v1.4.11 (GNU/Linux)
|
|
344 |
||
345 |
iQEcBAEBAgAGBQJN+ekFAAoJEIdoGx7jCA5FGtEH/i+XxJRvqU6wdBtLVrGBMAGk
|
|
346 |
FZ5VP+KyXYtymSbgSstj/vM12NeMIeFs3xGnNnYuX1MIcY6We5TKtCH0epY6ym5+
|
|
347 |
6g2Q2QpQ5/sT2d0mWzR0K4uVngmxVQaXTdk5PdZ40O7ULeDLW6CxzxMHyUL1rsIx
|
|
348 |
7UBUTBh1O/1n3ZfD99hUkm3hVcnsN90uTKH59zV9NWwArU0cug60+5eDKJhSJDbG
|
|
349 |
rIwlqbFAjDZ7L/48e+IaYIJwBZFzMBpJKdCxzALLtauMf+KK8hGiL2hrRbWm7ty6
|
|
350 |
NgxfkMYOB4rDPdSstT35N+5uBG3n/UzjxHssi0svMfVETYYX40y57dm2eZQXFp8=
|
|
351 |
=iwsn
|
|
352 |
-----END PGP SIGNATURE-----
|
|
353 |
"""
|
|
354 |
plain = """bazaar-ng testament short form 1 |
|
355 |
revision-id: amy@example.com-20110527185938-hluafawphszb8dl1
|
|
356 |
sha1: 6411f9bdf6571200357140c9ce7c0f50106ac9a4
|
|
357 |
"""
|
|
358 |
my_gpg = gpg.GPGStrategy(FakeConfig()) |
|
359 |
self.assertEqual((gpg.SIGNATURE_NOT_VALID, None), my_gpg.verify(content, |
|
360 |
plain)) |
|
361 |
||
5971.1.32
by Jonathan Riddell
test for signing incorrect commit content |
362 |
def test_verify_bad_testament(self): |
5971.1.35
by Jonathan Riddell
set gpgme in tests.features |
363 |
self.requireFeature(features.gpgme) |
364 |
self.import_keys() |
|
6372.1.1
by Vincent Ladeuil
Remove spurious spaces. |
365 |
|
5971.1.32
by Jonathan Riddell
test for signing incorrect commit content |
366 |
content = """-----BEGIN PGP SIGNED MESSAGE----- |
367 |
Hash: SHA1
|
|
368 |
||
369 |
bazaar-ng testament short form 1
|
|
370 |
revision-id: amy@example.com-20110527185938-hluafawphszb8dl1
|
|
371 |
sha1: 6411f9bdf6571200357140c9ce7c0f50106ac9a4
|
|
372 |
-----BEGIN PGP SIGNATURE-----
|
|
373 |
Version: GnuPG v1.4.11 (GNU/Linux)
|
|
374 |
||
375 |
iQEcBAEBAgAGBQJN+ekFAAoJEIdoGx7jCA5FGtEH/i+XxJRvqU6wdBtLVrGBMAGk
|
|
376 |
FZ5VP+KyXYtymSbgSstj/vM12NeMIeFs3xGnNnYuX1MIcY6We5TKtCH0epY6ym5+
|
|
377 |
6g2Q2QpQ5/sT2d0mWzR0K4uVngmxVQaXTdk5PdZ40O7ULeDLW6CxzxMHyUL1rsIx
|
|
378 |
7UBUTBh1O/1n3ZfD99hUkm3hVcnsN90uTKH59zV9NWwArU0cug60+5eDKJhSJDbG
|
|
379 |
rIwlqbFAjDZ7L/48e+IaYIJwBZFzMBpJKdCxzALLtauMf+KK8hGiL2hrRbWm7ty6
|
|
380 |
NgxfkMYOB4rDPdSstT35N+5uBG3n/UzjxHssi0svMfVETYYX40y57dm2eZQXFp8=
|
|
381 |
=iwsn
|
|
382 |
-----END PGP SIGNATURE-----
|
|
383 |
"""
|
|
384 |
plain = """bazaar-ng testament short form 1 |
|
385 |
revision-id: doctor@example.com-20110527185938-hluafawphszb8dl1
|
|
386 |
sha1: 6411f9bdf6571200357140c9ce7c0f50106ac9a4
|
|
387 |
"""
|
|
388 |
my_gpg = gpg.GPGStrategy(FakeConfig()) |
|
389 |
my_gpg.set_acceptable_keys("bazaar@example.com") |
|
390 |
self.assertEqual((gpg.SIGNATURE_NOT_VALID, None), my_gpg.verify(content, |
|
391 |
plain)) |
|
392 |
||
6043.2.5
by Jonathan Riddell
catch a revoked key and add test for it |
393 |
|
394 |
def test_verify_revoked_signature(self): |
|
395 |
self.requireFeature(features.gpgme) |
|
396 |
self.import_keys() |
|
6372.1.1
by Vincent Ladeuil
Remove spurious spaces. |
397 |
|
6043.2.5
by Jonathan Riddell
catch a revoked key and add test for it |
398 |
content = """-----BEGIN PGP SIGNED MESSAGE----- |
399 |
Hash: SHA1
|
|
400 |
||
401 |
asdf
|
|
402 |
-----BEGIN PGP SIGNATURE-----
|
|
403 |
Version: GnuPG v1.4.11 (GNU/Linux)
|
|
404 |
||
405 |
iJwEAQECAAYFAk45V18ACgkQjs6dvEpb0cSIZQP/eOGTXGPlrNwvDkcX2d8O///I
|
|
406 |
ecB4sUIUEpv1XAk1MkNu58lsjjK72lRaLusEGqd7HwrFmpxVeVs0oWLg23PNPCFs
|
|
407 |
yJBID9ma+VxFVPtkEFnrc1R72sBJLfBcTxMkwVTC8eeznjdtn+cg+aLkxbPdrGnr
|
|
408 |
JFA6kUIJU2w9LU/b88Y=
|
|
409 |
=UuRX
|
|
410 |
-----END PGP SIGNATURE-----
|
|
411 |
"""
|
|
412 |
plain = """asdf\n""" |
|
413 |
my_gpg = gpg.GPGStrategy(FakeConfig()) |
|
414 |
my_gpg.set_acceptable_keys("test@example.com") |
|
415 |
self.assertEqual((gpg.SIGNATURE_NOT_VALID, None), my_gpg.verify(content, |
|
416 |
plain)) |
|
417 |
||
5971.1.9
by Jonathan Riddell
add some tests |
418 |
def test_verify_invalid(self): |
5971.1.80
by Jonathan Riddell
add missing self.requireFeature() checks to gpg tests |
419 |
self.requireFeature(features.gpgme) |
6123.6.1
by Jonathan Riddell
ensure all tests using gpg keys run self.import_keys() first |
420 |
self.import_keys() |
5971.1.9
by Jonathan Riddell
add some tests |
421 |
content = """-----BEGIN PGP SIGNED MESSAGE----- |
422 |
Hash: SHA1
|
|
423 |
||
424 |
bazaar-ng testament short form 1
|
|
425 |
revision-id: amy@example.com-20110527185938-hluafawphszb8dl1
|
|
426 |
sha1: 6411f9bdf6571200357140c9ce7c0f50106ac9a4
|
|
427 |
-----BEGIN PGP SIGNATURE-----
|
|
428 |
Version: GnuPG v1.4.11 (GNU/Linux)
|
|
429 |
||
430 |
iEYEARECAAYFAk33gYsACgkQpQbm1N1NUIhiDACglOuQDlnSF4NxfHSkN/zrmFy8
|
|
431 |
nswAoNGXAVuR9ONasAKIGBNUE0b+lols
|
|
432 |
=SOuC
|
|
433 |
-----END PGP SIGNATURE-----
|
|
434 |
"""
|
|
5971.1.31
by Jonathan Riddell
and update tests |
435 |
plain = """bazaar-ng testament short form 1 |
436 |
revision-id: amy@example.com-20110527185938-hluafawphszb8dl1
|
|
437 |
sha1: 6411f9bdf6571200357140c9ce7c0f50106ac9a4
|
|
438 |
"""
|
|
5971.1.9
by Jonathan Riddell
add some tests |
439 |
my_gpg = gpg.GPGStrategy(FakeConfig()) |
5971.1.22
by Jonathan Riddell
fix tests |
440 |
self.assertEqual((gpg.SIGNATURE_NOT_VALID, None), |
5971.1.31
by Jonathan Riddell
and update tests |
441 |
my_gpg.verify(content, plain)) |
5971.1.9
by Jonathan Riddell
add some tests |
442 |
|
6043.2.8
by Jonathan Riddell
add test for unknown key |
443 |
def test_verify_expired_but_valid(self): |
444 |
self.requireFeature(features.gpgme) |
|
6123.6.1
by Jonathan Riddell
ensure all tests using gpg keys run self.import_keys() first |
445 |
self.import_keys() |
6043.2.8
by Jonathan Riddell
add test for unknown key |
446 |
content = """-----BEGIN PGP SIGNED MESSAGE----- |
447 |
Hash: SHA1
|
|
448 |
|
|
449 |
bazaar-ng testament short form 1
|
|
450 |
revision-id: test@example.com-20110801100657-f1dr1nompeex723z
|
|
451 |
sha1: 59ab434be4c2d5d646dee84f514aa09e1b72feeb
|
|
452 |
-----BEGIN PGP SIGNATURE-----
|
|
453 |
Version: GnuPG v1.4.10 (GNU/Linux)
|
|
454 |
|
|
455 |
iJwEAQECAAYFAk42esUACgkQHOJve0+NFRPc5wP7BoZkzBU8JaHMLv/LmqLr0sUz
|
|
456 |
zuE51ofZZ19L7KVtQWsOi4jFy0fi4A5TFwO8u9SOfoREGvkw292Uty9subSouK5/
|
|
457 |
mFmDOYPQ+O83zWgYZsBmMJWYDZ+X9I6XXZSbPtV/7XyTjaxtl5uRnDVJjg+AzKvD
|
|
458 |
dTp8VatVVrwuvzOPDVc=
|
|
459 |
=uHen
|
|
460 |
-----END PGP SIGNATURE-----
|
|
461 |
"""
|
|
462 |
plain = """bazaar-ng testament short form 1 |
|
463 |
revision-id: test@example.com-20110801100657-f1dr1nompeex723z
|
|
464 |
sha1: 59ab434be4c2d5d646dee84f514aa09e1b72feeb
|
|
465 |
"""
|
|
466 |
my_gpg = gpg.GPGStrategy(FakeConfig()) |
|
6043.3.2
by Jonathan Riddell
update test |
467 |
self.assertEqual((gpg.SIGNATURE_EXPIRED, u'4F8D1513'), |
6043.2.8
by Jonathan Riddell
add test for unknown key |
468 |
my_gpg.verify(content, plain)) |
469 |
||
470 |
def test_verify_unknown_key(self): |
|
471 |
self.requireFeature(features.gpgme) |
|
6123.6.1
by Jonathan Riddell
ensure all tests using gpg keys run self.import_keys() first |
472 |
self.import_keys() |
6043.2.8
by Jonathan Riddell
add test for unknown key |
473 |
content = """-----BEGIN PGP SIGNED MESSAGE----- |
474 |
Hash: SHA1
|
|
475 |
||
476 |
asdf
|
|
477 |
-----BEGIN PGP SIGNATURE-----
|
|
478 |
Version: GnuPG v1.4.11 (GNU/Linux)
|
|
479 |
||
480 |
iQEcBAEBAgAGBQJOORKwAAoJENf6AkFdUeVvJDYH/1Cz+AJn1Jvy5n64o+0fZ5Ow
|
|
481 |
Y7UQb4QQTIOV7jI7n4hv/yBzuHrtImFzYvQl/o2Ezzi8B8L5gZtQy+xCUF+Q8iWs
|
|
482 |
gytZ5JUtSze7hDZo1NUl4etjoRGYqRfrUcvE2LkVH2dFbDGyyQfVmoeSHa5akuuP
|
|
483 |
QZmyg2F983rACVIpGvsqTH6RcBdvE9vx68lugeKQA8ArDn39/74FBFipFzrXSPij
|
|
484 |
eKFpl+yZmIb3g6HkPIC8o4j/tMvc37xF1OG5sBu8FT0+FC+VgY7vAblneDftAbyP
|
|
485 |
sIODx4WcfJtjLG/qkRYqJ4gDHo0eMpTJSk2CWebajdm4b+JBrM1F9mgKuZFLruE=
|
|
486 |
=RNR5
|
|
487 |
-----END PGP SIGNATURE-----
|
|
488 |
"""
|
|
489 |
plain = "asdf\n" |
|
490 |
my_gpg = gpg.GPGStrategy(FakeConfig()) |
|
491 |
self.assertEqual((gpg.SIGNATURE_KEY_MISSING, u'5D51E56F'), |
|
492 |
my_gpg.verify(content, plain)) |
|
493 |
||
5971.1.11
by Jonathan Riddell
add set_acceptable_keys() so user can specify which gpg keys can be used for verification |
494 |
def test_set_acceptable_keys(self): |
5971.1.35
by Jonathan Riddell
set gpgme in tests.features |
495 |
self.requireFeature(features.gpgme) |
496 |
self.import_keys() |
|
5971.1.11
by Jonathan Riddell
add set_acceptable_keys() so user can specify which gpg keys can be used for verification |
497 |
my_gpg = gpg.GPGStrategy(FakeConfig()) |
5971.1.14
by Jonathan Riddell
add test for set_acceptable_keys, accept non-trusted keys if specified as acceptable, import dummy key in tests so it works outside my machine |
498 |
my_gpg.set_acceptable_keys("bazaar@example.com") |
5971.1.11
by Jonathan Riddell
add set_acceptable_keys() so user can specify which gpg keys can be used for verification |
499 |
self.assertEqual(my_gpg.acceptable_keys, |
5971.1.14
by Jonathan Riddell
add test for set_acceptable_keys, accept non-trusted keys if specified as acceptable, import dummy key in tests so it works outside my machine |
500 |
[u'B5DEED5FCB15DAE6ECEF919587681B1EE3080E45']) |
5971.1.11
by Jonathan Riddell
add set_acceptable_keys() so user can specify which gpg keys can be used for verification |
501 |
|
502 |
def test_set_acceptable_keys_unknown(self): |
|
5971.1.80
by Jonathan Riddell
add missing self.requireFeature() checks to gpg tests |
503 |
self.requireFeature(features.gpgme) |
5971.1.11
by Jonathan Riddell
add set_acceptable_keys() so user can specify which gpg keys can be used for verification |
504 |
my_gpg = gpg.GPGStrategy(FakeConfig()) |
6123.1.16
by Jelmer Vernooij
Add test. |
505 |
self.notes = [] |
506 |
def note(*args): |
|
507 |
self.notes.append(args[0] % args[1:]) |
|
508 |
self.overrideAttr(trace, 'note', note) |
|
5971.1.11
by Jonathan Riddell
add set_acceptable_keys() so user can specify which gpg keys can be used for verification |
509 |
my_gpg.set_acceptable_keys("unknown") |
510 |
self.assertEqual(my_gpg.acceptable_keys, []) |
|
6123.1.16
by Jelmer Vernooij
Add test. |
511 |
self.assertEqual(self.notes, |
512 |
['No GnuPG key results for pattern: unknown']) |
|
5971.1.35
by Jonathan Riddell
set gpgme in tests.features |
513 |
|
5971.1.11
by Jonathan Riddell
add set_acceptable_keys() so user can specify which gpg keys can be used for verification |
514 |
|
1442.1.62
by Robert Collins
Allow creation of testaments from uncommitted data, and use that to get signatures before committing revisions. |
515 |
class TestDisabled(TestCase): |
516 |
||
517 |
def test_sign(self): |
|
518 |
self.assertRaises(errors.SigningFailed, |
|
519 |
gpg.DisabledGPGStrategy(None).sign, 'content') |
|
5971.1.8
by Jonathan Riddell
start adding test cases |
520 |
|
521 |
def test_verify(self): |
|
5971.1.33
by Jonathan Riddell
rename errors.VerifyFailed to errors.SignatureVerificationFailed |
522 |
self.assertRaises(errors.SignatureVerificationFailed, |
5971.1.31
by Jonathan Riddell
and update tests |
523 |
gpg.DisabledGPGStrategy(None).verify, 'content', |
524 |
'testament') |