Fixed error message about bad digest syntax.
[zeroinstall.git] / tests / testifacecache.py
blobb33fc40fd661b5dc4f76da52321628b800a3a4b4
1 #!/usr/bin/env python2.3
2 import sys, tempfile, os, shutil
3 import unittest
4 import data
5 from logging import getLogger, DEBUG, INFO
6 #getLogger().setLevel(DEBUG)
8 sys.path.insert(0, '..')
9 from zeroinstall.injector import basedir, download, model, gpg, trust
10 from zeroinstall.injector.namespaces import *
11 from zeroinstall.injector.iface_cache import iface_cache
13 class TestIfaceCache(unittest.TestCase):
14 def setUp(self):
15 self.config_home = tempfile.mktemp()
16 self.cache_home = tempfile.mktemp()
17 self.gnupg_home = tempfile.mktemp()
18 os.environ['XDG_CONFIG_HOME'] = self.config_home
19 os.environ['XDG_CACHE_HOME'] = self.cache_home
20 os.environ['GNUPGHOME'] = self.gnupg_home
21 reload(basedir)
23 os.mkdir(self.config_home, 0700)
24 os.mkdir(self.cache_home, 0700)
25 os.mkdir(self.gnupg_home, 0700)
27 iface_cache.__init__()
29 def tearDown(self):
30 shutil.rmtree(self.config_home)
31 shutil.rmtree(self.cache_home)
32 shutil.rmtree(self.gnupg_home)
34 def testList(self):
35 self.assertEquals([], iface_cache.list_all_interfaces())
36 iface_dir = basedir.save_cache_path(config_site, 'interfaces')
37 file(os.path.join(iface_dir, 'http%3a%2f%2ffoo'), 'w').close()
38 self.assertEquals(['http://foo'],
39 iface_cache.list_all_interfaces())
40 # TODO: test overrides
42 def testCheckSigned(self):
43 trust.trust_db.trust_key(
44 '92429807C9853C0744A68B9AAE07828059A53CC1')
45 iface = iface_cache.get_interface('http://foo')
46 src = tempfile.TemporaryFile()
48 # Unsigned
49 src.write("hello")
50 src.flush()
51 src.seek(0)
52 try:
53 iface_cache.check_signed_data(iface, src, None)
54 assert 0
55 except model.SafeException:
56 pass
58 stream = tempfile.TemporaryFile()
59 stream.write(data.thomas_key)
60 stream.seek(0)
61 gpg.import_key(stream)
63 # Signed
64 src.seek(0)
65 src.write(data.foo_signed)
66 src.flush()
67 src.seek(0)
68 iface_cache.check_signed_data(iface, src, None)
69 self.assertEquals(['http://foo'],
70 iface_cache.list_all_interfaces())
72 suite = unittest.makeSuite(TestIfaceCache)
73 if __name__ == '__main__':
74 sys.argv.append('-v')
75 unittest.main()