1
2
3
4 import os
5 import StringIO
6 import tempfile
7
8 from twisted.trial import unittest
9
10 from moap.command import tracadmin
11
12 from moap.test import common
13
16 try:
17 import trac
18 except ImportError:
19 raise unittest.SkipTest("No trac module, skipping.")
20
21 self.stdout = StringIO.StringIO()
22 self.command = tracadmin.TracAdmin(stdout=self.stdout)
23
24 self.trac = tempfile.mkdtemp(prefix='moap.test.trac.')
25
26
27 os.system('cp -pr %s/* %s' % (
28 os.path.join(os.path.dirname(__file__), 'trac', 'trac'),
29 self.trac))
30
31 cmd = 'sqlite3 %s/db/trac.db < %s' % (
32 self.trac,
33 os.path.join(os.path.dirname(__file__), 'trac', 'db.dump'))
34 ret = os.system(cmd)
35 self.assertEquals(ret, 0, "Failed to execute %s" % cmd)
36
37
39 ret = self.command.parse(['-p', self.trac, 'user', 'list'])
40 self.assertEquals(ret, 0)
41 self.assertEquals(self.stdout.getvalue(), """gabriel
42 god
43 thomas
44 trac
45 """)
46
48 ret = self.command.parse(['-p', self.trac,
49 'user', 'rename', 'god', 'satan'])
50 self.assertEquals(ret, 0)
51 ret = self.command.parse(['-p', self.trac, 'user', 'list'])
52 self.assertEquals(self.stdout.getvalue(), """gabriel
53 satan
54 thomas
55 trac
56 """)
57 self.stdout.truncate(size=0)
58
59 ret = self.command.parse(['-p', self.trac,
60 'user', 'rename', 'trac', 'bugzilla'])
61 self.assertEquals(ret, 0)
62 ret = self.command.parse(['-p', self.trac, 'user', 'list'])
63 self.assertEquals(self.stdout.getvalue(), """bugzilla
64 gabriel
65 satan
66 thomas
67 """)
68
69 try:
70 import trac
71 except ImportError:
72 TestRename.skip = "No trac module, skipping."
73