blob: c2bae22fc1a321dd12ca8148beba86f192fc1369 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
'''
t5_cli.py - this file is part of S3QL (http://s3ql.googlecode.com)
Copyright (C) 2008-2009 Nikolaus Rath <Nikolaus@rath.org>
This program can be distributed under the terms of the GNU GPLv3.
'''
from __future__ import division, print_function
import errno
import llfuse
import os.path
import s3ql.cli.ctrl
import s3ql.cli.lock
import s3ql.cli.remove
import sys
import t4_fuse
import unittest2 as unittest
class cliTests(t4_fuse.fuse_tests):
def runTest(self):
self.mkfs()
self.mount()
self.tst_lock_rm()
self.tst_ctrl_flush()
self.umount()
self.fsck()
def tst_ctrl_flush(self):
try:
s3ql.cli.ctrl.main(['flushcache', self.mnt_dir])
except:
sys.excepthook(*sys.exc_info())
self.fail("s3qlctrl raised exception")
def tst_lock_rm(self):
# Extract tar
tempdir = os.path.join(self.mnt_dir, 'lock_dir')
filename = os.path.join(tempdir, 'myfile')
os.mkdir(tempdir)
with open(filename, 'w') as fh:
fh.write('Hello, world')
# copy
try:
s3ql.cli.lock.main([tempdir])
except:
sys.excepthook(*sys.exc_info())
self.fail("s3qllock raised exception")
# Try to delete
with self.assertRaises(OSError) as cm:
os.unlink(filename)
self.assertEqual(cm.exception[0], errno.EPERM)
# Try to write
with self.assertRaises(IOError) as cm:
open(filename, 'w+').write('Hello')
self.assertEqual(cm.exception[0], errno.EPERM)
# delete properly
try:
s3ql.cli.remove.main([tempdir])
except:
sys.excepthook(*sys.exc_info())
self.fail("s3qlrm raised exception")
self.assertTrue('lock_dir' not in llfuse.listdir(self.mnt_dir))
# Somehow important according to pyunit documentation
def suite():
return unittest.makeSuite(cliTests)
# Allow calling from command line
if __name__ == "__main__":
unittest.main()
|