class SystemInfoProviderTestCase(unittest.TestCase): system_info_providers = [] @classmethod def setUpClass(cls): class SystemInfoProvider1(Component): implements(ISystemInfoProvider) def get_system_info(self): yield 'pkg1', 1.0 yield 'pkg2', 2.0 class SystemInfoProvider2(Component): implements(ISystemInfoProvider) def get_system_info(self): yield 'pkg1', 1.0 cls.system_info_providers = [SystemInfoProvider1, SystemInfoProvider2] @classmethod def tearDownClass(cls): from trac.core import ComponentMeta for component in cls.system_info_providers: ComponentMeta.deregister(component) def setUp(self): self.env = EnvironmentStub(enable=self.system_info_providers) def test_system_info_property(self): """The system_info property returns a list of all tuples generated by ISystemInfoProvider implementations. """ system_info = self.env.system_info self.assertEqual(system_info, self.env.get_systeminfo()) self.assertIn(('pkg1', 1.0), system_info) self.assertIn(('pkg2', 2.0), system_info) def test_duplicate_entries_are_removed(self): """Duplicate entries are removed.""" system_info = self.env.system_info self.assertIn(('pkg1', 1.0), system_info) self.assertEqual(len(system_info), len(set(system_info)))
class SystemInfoProviderTestCase(unittest.TestCase): def setUp(self): self.env = EnvironmentStub() self.env.clear_component_registry() class SystemInfoProvider1(Component): implements(ISystemInfoProvider) def get_system_info(self): yield 'pkg1', 1.0 yield 'pkg2', 2.0 class SystemInfoProvider2(Component): implements(ISystemInfoProvider) def get_system_info(self): yield 'pkg1', 1.0 self.env.enable_component(SystemInfoProvider1) self.env.enable_component(SystemInfoProvider2) def tearDown(self): self.env.restore_component_registry() def test_system_info_property(self): """The system_info property returns a list of all tuples generated by ISystemInfoProvider implementations. """ system_info = self.env.system_info self.assertEqual(system_info, self.env.get_systeminfo()) self.assertEqual(2, len(system_info)) self.assertIn(('pkg1', 1.0), system_info) self.assertIn(('pkg2', 2.0), system_info) def test_duplicate_entries_are_removed(self): """Duplicate entries are removed.""" system_info = self.env.system_info self.assertIn(('pkg1', 1.0), system_info) self.assertEqual(len(system_info), len(set(system_info)))
class SystemInfoProviderTestCase(unittest.TestCase): def setUp(self): class SystemInfoProvider1(Component): implements(ISystemInfoProvider) def get_system_info(self): yield 'pkg1', 1.0 class SystemInfoProvider2(Component): implements(ISystemInfoProvider) def get_system_info(self): yield 'pkg1', 1.0 self.env = EnvironmentStub(enable=(SystemInfoProvider1, SystemInfoProvider2)) def test_duplicate_entries_are_removed(self): """Duplicate entries are removed.""" system_info = list(self.env.get_systeminfo()) self.assertIn(('pkg1', 1.0), system_info) self.assertEqual(len(system_info), len(set(system_info)))
class SubversionConnectorTestCase(unittest.TestCase): def setUp(self): self.env = EnvironmentStub() self.repos_path = tempfile.mkdtemp(prefix='trac-svnrepos-') self.dbprovider = DbRepositoryProvider(self.env) pool = core.svn_pool_create(None) repos.svn_repos_create(self.repos_path, '', '', None, None, pool) self.dbprovider.add_repository(REPOS_NAME, self.repos_path, 'svn') def tearDown(self): self.env.reset_db() # clear cached repositories to avoid TypeError on termination (#11505) RepositoryManager(self.env).reload_repositories() def _svn_version_from_system_info(self): svn_version = None for name, version in self.env.get_systeminfo(): if name == 'Subversion': svn_version = version return svn_version def test_get_system_info_repository_not_initialized(self): # SubversionConnector is not a required component when there are no # Subversion repositories configured, and the Subversion version is # not returned in system info. self.assertFalse(svn_fs.SubversionConnector(self.env).required) self.assertIsNone(self._svn_version_from_system_info()) def test_get_system_info_repository_initialized(self): # SubversionConnector is a required component when there are # Subversion repositories configured, and the Subversion version is # returned in system info. RepositoryManager(self.env).get_repository(REPOS_NAME) self.assertTrue(svn_fs.SubversionConnector(self.env).required) self.assertIsNotNone(self._svn_version_from_system_info())