45 lines
1.2 KiB
Python
Executable file
45 lines
1.2 KiB
Python
Executable file
#!/usr/bin/python
|
|
|
|
# XXX this script has to be run as root because it su to sogo_user
|
|
# in order to use its .GNUstepDefaults prefs
|
|
# Would be much better to have another way to specify which Defaults to use
|
|
|
|
from config import sogo_user, sogo_tool_path
|
|
|
|
import os
|
|
import pwd
|
|
import shutil
|
|
import sogotests
|
|
import tempfile
|
|
import unittest
|
|
|
|
class sogoToolTest(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.backupdir = tempfile.mkdtemp()
|
|
|
|
def tearDown(self):
|
|
os.chdir("/")
|
|
shutil.rmtree(self.backupdir)
|
|
|
|
def testBackupAll(self):
|
|
""" sogo-tool backup ALL """
|
|
|
|
(uid, gid) = pwd.getpwnam(sogo_user)[2:4]
|
|
|
|
# We need to run as root since there's no way
|
|
# of using another user's GNUstepDefaults
|
|
self.assertEqual(os.getuid(), 0, "this test must run as root...")
|
|
|
|
os.chown(self.backupdir, uid, gid)
|
|
cmd = "sudo -u %s bash -c \"(cd %s && %s backup . ALL >/dev/null 2>&1)\"" % (sogo_user, self.backupdir, sogo_tool_path)
|
|
print "sogo-tool cmd to execute %s" % cmd
|
|
status = os.system(cmd)
|
|
print "Exit status of os.system(): %d" % status
|
|
rc = os.WEXITSTATUS(status)
|
|
self.assertEqual(rc, 0, "sogo-tool failed RC=%d" % rc)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sogotests.runTests()
|