1
2
3
4
5
6
7
8
9
10
11
12
13
14 import unittest
15
16 from trac.core import Component, implements
17 from trac.test import EnvironmentStub, MockRequest
18 from trac.versioncontrol.api import DbRepositoryProvider, IRepositoryConnector
19 from trac.versioncontrol.admin import RepositoryAdminPanel
23
24 RepositoryConnector = None
25
26 @classmethod
33
34 def get_repository(self, repos_type, repos_dir, params):
35 pass
36
37 cls.RepositoryConnector = RepositoryConnector
38
41
44
45 @classmethod
49
51 """Repositories admin panel is not present when there are
52 no repository connectors enabled.
53 """
54 req = MockRequest(self.env)
55 rap = RepositoryAdminPanel(self.env)
56 panels = [panel for panel in rap.get_admin_panels(req)]
57
58 self.assertEqual(0, len(panels))
59
70
73
76
79
81 with self.env.db_transaction as db:
82
83 db.executemany(
84 "INSERT INTO repository (id, name, value) VALUES (%s, %s, %s)",
85 [(1, 'name', ''), (1, 'dir', None), (1, 'alias', ''),
86 (2, 'name', 'blah'), (2, 'dir', None), (2, 'alias', '')])
87
88 panel = RepositoryAdminPanel(self.env)
89 req = MockRequest(self.env)
90 template, data = panel.render_admin_panel(req, 'versioncontrol',
91 'repository', '')
92 repositories = data['repositories']
93 self.assertNotEqual({}, repositories)
94 self.assertEqual('', repositories['']['name'])
95 self.assertEqual('', repositories['']['alias'])
96 self.assertEqual('blah', repositories['blah']['name'])
97 self.assertEqual('', repositories['blah']['alias'])
98
105
106
107 if __name__ == '__main__':
108 unittest.main(defaultTest='test_suite')
109