Invalid interfaces can be deleted from the cache viewer.
[zeroinstall.git] / tests / teststore.py
blobeb28df4a0b0d293138f2de18fd1b4651c5949afe
1 #!/usr/bin/env python2.3
2 import sys, tempfile, os, shutil
3 import unittest
4 from logging import getLogger, DEBUG, INFO
5 #getLogger().setLevel(DEBUG)
7 sys.path.insert(0, '..')
9 from zeroinstall.zerostore import Store, manifest
11 class TestStore(unittest.TestCase):
12 def setUp(self):
13 path = tempfile.mktemp()
14 os.mkdir(path, 0700)
15 self.store = Store(path)
17 self.tmp = tempfile.mktemp()
18 os.mkdir(self.tmp)
20 def tearDown(self):
21 shutil.rmtree(self.store.dir)
22 shutil.rmtree(self.tmp)
24 def testInit(self):
25 assert os.path.isdir(self.store.dir)
26 self.assertEquals([], os.listdir(self.store.dir))
28 def testEmptyManifest(self):
29 lines = list(manifest.generate_manifest(self.tmp))
30 self.assertEquals([], lines)
32 def testSimpleManifest(self):
33 path = os.path.join(self.tmp, 'MyFile')
34 f = file(path, 'w')
35 f.write('Hello')
36 f.close()
37 os.utime(path, (1, 2))
38 lines = list(manifest.generate_manifest(self.tmp))
39 self.assertEquals(['F f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0 2 5 MyFile'],
40 lines)
42 def testLinkManifest(self):
43 path = os.path.join(self.tmp, 'MyLink')
44 os.symlink('Hello', path)
45 lines = list(manifest.generate_manifest(self.tmp))
46 self.assertEquals(['S f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0 5 MyLink'],
47 lines)
49 suite = unittest.makeSuite(TestStore)
50 if __name__ == '__main__':
51 sys.argv.append('-v')
52 unittest.main()