Package trac :: Package versioncontrol :: Package tests :: Module admin

Source Code for Module trac.versioncontrol.tests.admin

  1  # -*- coding: utf-8 -*- 
  2  # 
  3  # Copyright (C) 2015-2023 Edgewall Software 
  4  # All rights reserved. 
  5  # 
  6  # This software is licensed as described in the file COPYING, which 
  7  # you should have received as part of this distribution. The terms 
  8  # are also available at https://trac.edgewall.org/wiki/TracLicense. 
  9  # 
 10  # This software consists of voluntary contributions made by many 
 11  # individuals. For the exact contribution history, see the revision 
 12  # history and logs, available at https://trac.edgewall.org/log/. 
 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 
20 21 22 -class RepositoryAdminPanelTestCase(unittest.TestCase):
23 24 RepositoryConnector = None 25 26 @classmethod
27 - def setUpClass(cls):
28 class RepositoryConnector(Component): 29 implements(IRepositoryConnector) 30 31 def get_supported_types(self): 32 yield 'RepositoryConnector', 1
33 34 def get_repository(self, repos_type, repos_dir, params): 35 pass
36 37 cls.RepositoryConnector = RepositoryConnector 38
39 - def setUp(self):
40 self.env = EnvironmentStub(enable=('trac.versioncontrol.admin.*',))
41
42 - def tearDown(self):
43 self.env.reset_db()
44 45 @classmethod
46 - def tearDownClass(cls):
47 from trac.core import ComponentMeta 48 ComponentMeta.deregister(cls.RepositoryConnector)
49
50 - def test_panel_not_exists_when_no_repository_connectors(self):
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
60 - def test_panel_exists_when_repository_connectors(self):
61 """Repositories admin panel is present when there are 62 repository connectors enabled. 63 """ 64 self.env.enable_component(self.RepositoryConnector) 65 req = MockRequest(self.env) 66 rap = RepositoryAdminPanel(self.env) 67 panels = [panel for panel in rap.get_admin_panels(req)] 68 69 self.assertEqual(1, len(panels))
70
71 72 -class VersionControlAdminTestCase(unittest.TestCase):
73
74 - def setUp(self):
75 self.env = EnvironmentStub()
76
77 - def tearDown(self):
78 self.env.reset_db()
79
81 with self.env.db_transaction as db: 82 # Add aliases to non-existent default repository 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
99 100 -def test_suite():
101 suite = unittest.TestSuite() 102 suite.addTest(unittest.makeSuite(RepositoryAdminPanelTestCase)) 103 suite.addTest(unittest.makeSuite(VersionControlAdminTestCase)) 104 return suite
105 106 107 if __name__ == '__main__': 108 unittest.main(defaultTest='test_suite') 109