def test_render_admin_with_alias_to_default_repos(self): db_provider = DbRepositoryProvider(self.env) db_provider.add_alias('', '') db_provider.add_alias('blah', '') panel = RepositoryAdminPanel(self.env) req = Mock(method='GET', chrome={}, args={}, session={}, abs_href=Href('/'), href=Href('/'), locale=None, perm=MockPerm(), authname='anonymous', tz=utc) template, data = panel.render_admin_panel(req, 'versioncontrol', 'repository', '') repositories = data['repositories'] self.assertEqual('', repositories['']['name']) self.assertEqual('', repositories['']['alias']) self.assertEqual('blah', repositories['blah']['name']) self.assertEqual('', repositories['blah']['alias'])
class DbRepositoryProviderTestCase(unittest.TestCase): def setUp(self): self.env = EnvironmentStub() self.db_provider = DbRepositoryProvider(self.env) def tearDown(self): self.env.reset_db() def verify_raises(self, exc, message, func, *args, **kwargs): try: func(*args, **kwargs) self.fail('%s not raised' % exc.__name__) except exc as e: self.assertEqual(message, unicode(e)) def do_remove(self, reponame, message): self.verify_raises(TracError, message, self.db_provider.remove_repository, reponame) def do_modify(self, reponame, changes, message): self.verify_raises(TracError, message, self.db_provider.modify_repository, reponame, changes) def do_alias(self, reponame, target, message): self.verify_raises(TracError, message, self.db_provider.add_alias, reponame, target) def test_add_alias(self): self.db_provider.add_repository('', '/path/to/repos') self.db_provider.add_repository('target', '/path/to/repos') self.db_provider.add_alias('blah1', '') self.db_provider.add_alias('blah2', '(default)') self.db_provider.add_alias('blah3', 'target') repositories = RepositoryManager(self.env).get_all_repositories() self.assertEqual(['', 'blah1', 'blah2', 'blah3', 'target'], sorted(repositories)) self.assertEqual('', repositories['blah1']['alias']) self.assertEqual('', repositories['blah2']['alias']) self.assertEqual('target', repositories['blah3']['alias']) def test_add_alias_to_non_existent_repository(self): self.do_alias('', '', 'Repository "(default)" doesn\'t exist') self.do_alias('', '(default)', 'Repository "(default)" doesn\'t exist') self.do_alias('blah', '', 'Repository "(default)" doesn\'t exist') self.do_alias('blah', '(default)', 'Repository "(default)" doesn\'t exist') self.do_alias('blah', 'blah', 'Repository "blah" doesn\'t exist') self.do_alias('', 'blah', 'Repository "blah" doesn\'t exist') self.do_alias('(default)', 'blah', 'Repository "blah" doesn\'t exist') def test_add_alias_to_repository_in_tracini(self): config = self.env.config config.set('repositories', '.dir', '/path/to/repos') config.set('repositories', '.type', '') config.set('repositories', 'target.dir', '/path/to/repos') config.set('repositories', 'target.type', '') config.set('repositories', 'alias-default.alias', '') config.set('repositories', 'alias-target.alias', 'target') self.db_provider.add_alias('blah1', '') self.db_provider.add_alias('blah2', 'target') self.assertRaises(TracError, self.db_provider.add_alias, 'blah3', 'notfound') repositories = RepositoryManager(self.env).get_all_repositories() self.assertEqual( ['', 'alias-default', 'alias-target', 'blah1', 'blah2', 'target'], sorted(repositories)) self.assertEqual('', repositories['blah1']['alias']) self.assertEqual('target', repositories['blah2']['alias']) def test_add_alias_to_alias(self): config = self.env.config config.set('repositories', 'target.dir', '/path/to/repos') config.set('repositories', 'target.type', '') config.set('repositories', '.alias', 'target') config.set('repositories', 'alias.alias', 'target') self.do_alias('blah', '', 'Cannot create an alias to the alias "(default)"') self.do_alias('blah', '(default)', 'Cannot create an alias to the alias "(default)"') self.do_alias('blah', 'alias', 'Cannot create an alias to the alias "alias"') def test_remove_repository_used_in_aliases(self): self.db_provider.add_repository('', '/path/to/repos') self.db_provider.add_repository('blah', '/path/to/repos') self.db_provider.add_alias('alias-blah', 'blah') self.db_provider.add_alias('alias-default', '') self.do_remove( '', 'Cannot remove the repository "(default)" used in ' 'aliases') self.do_remove( '(default)', 'Cannot remove the repository "(default)" ' 'used in aliases') self.do_remove( 'blah', 'Cannot remove the repository "blah" used in ' 'aliases') def test_modify_repository_used_in_aliases(self): self.db_provider.add_repository('', '/path/to/repos') self.db_provider.add_repository('blah', '/path/to/repos') self.db_provider.add_alias('alias-blah', 'blah') self.db_provider.add_alias('alias-default', '') self.do_modify( '', {'name': 'new-name'}, 'Cannot rename the repository "(default)" used in ' 'aliases') self.do_modify( '(default)', {'name': 'new-name'}, 'Cannot rename the repository "(default)" used in ' 'aliases') self.do_modify('blah', {'name': 'new-name'}, 'Cannot rename the repository "blah" used in aliases') self.db_provider.modify_repository('', {'dir': '/path/to/new-path'})
class DbRepositoryProviderTestCase(unittest.TestCase): def setUp(self): self.env = EnvironmentStub() self.db_provider = DbRepositoryProvider(self.env) def tearDown(self): self.env.reset_db() def verify_raises(self, exc, message, func, *args, **kwargs): try: func(*args, **kwargs) self.fail('%s not raised' % exc.__name__) except exc as e: self.assertEqual(message, unicode(e)) def do_remove(self, reponame, message): self.verify_raises(TracError, message, self.db_provider.remove_repository, reponame) def do_modify(self, reponame, changes, message): self.verify_raises(TracError, message, self.db_provider.modify_repository, reponame, changes) def do_alias(self, reponame, target, message): self.verify_raises(TracError, message, self.db_provider.add_alias, reponame, target) def test_add_alias(self): self.db_provider.add_repository('', '/path/to/repos') self.db_provider.add_repository('target', '/path/to/repos') self.db_provider.add_alias('blah1', '') self.db_provider.add_alias('blah2', '(default)') self.db_provider.add_alias('blah3', 'target') repositories = RepositoryManager(self.env).get_all_repositories() self.assertEqual(['', 'blah1', 'blah2', 'blah3', 'target'], sorted(repositories)) self.assertEqual('', repositories['blah1']['alias']) self.assertEqual('', repositories['blah2']['alias']) self.assertEqual('target', repositories['blah3']['alias']) def test_add_alias_to_non_existent_repository(self): self.do_alias('', '', 'Repository "(default)" doesn\'t exist') self.do_alias('', '(default)', 'Repository "(default)" doesn\'t exist') self.do_alias('blah', '', 'Repository "(default)" doesn\'t exist') self.do_alias('blah', '(default)', 'Repository "(default)" doesn\'t exist') self.do_alias('blah', 'blah', 'Repository "blah" doesn\'t exist') self.do_alias('', 'blah', 'Repository "blah" doesn\'t exist') self.do_alias('(default)', 'blah', 'Repository "blah" doesn\'t exist') def test_add_alias_to_repository_in_tracini(self): config = self.env.config config.set('repositories', '.dir', '/path/to/repos') config.set('repositories', '.type', '') config.set('repositories', 'target.dir', '/path/to/repos') config.set('repositories', 'target.type', '') config.set('repositories', 'alias-default.alias', '') config.set('repositories', 'alias-target.alias', 'target') self.db_provider.add_alias('blah1', '') self.db_provider.add_alias('blah2', 'target') self.assertRaises(TracError, self.db_provider.add_alias, 'blah3', 'notfound') repositories = RepositoryManager(self.env).get_all_repositories() self.assertEqual(['', 'alias-default', 'alias-target', 'blah1', 'blah2', 'target'], sorted(repositories)) self.assertEqual('', repositories['blah1']['alias']) self.assertEqual('target', repositories['blah2']['alias']) def test_add_alias_to_alias(self): config = self.env.config config.set('repositories', 'target.dir', '/path/to/repos') config.set('repositories', 'target.type', '') config.set('repositories', '.alias', 'target') config.set('repositories', 'alias.alias', 'target') self.do_alias('blah', '', 'Cannot create an alias to the alias "(default)"') self.do_alias('blah', '(default)', 'Cannot create an alias to the alias "(default)"') self.do_alias('blah', 'alias', 'Cannot create an alias to the alias "alias"') def test_remove_repository_used_in_aliases(self): self.db_provider.add_repository('', '/path/to/repos') self.db_provider.add_repository('blah', '/path/to/repos') self.db_provider.add_alias('alias-blah', 'blah') self.db_provider.add_alias('alias-default', '') self.do_remove('', 'Cannot remove the repository "(default)" used in ' 'aliases') self.do_remove('(default)', 'Cannot remove the repository "(default)" ' 'used in aliases') self.do_remove('blah', 'Cannot remove the repository "blah" used in ' 'aliases') def test_modify_repository_used_in_aliases(self): self.db_provider.add_repository('', '/path/to/repos') self.db_provider.add_repository('blah', '/path/to/repos') self.db_provider.add_alias('alias-blah', 'blah') self.db_provider.add_alias('alias-default', '') self.do_modify('', {'name': 'new-name'}, 'Cannot rename the repository "(default)" used in ' 'aliases') self.do_modify('(default)', {'name': 'new-name'}, 'Cannot rename the repository "(default)" used in ' 'aliases') self.do_modify('blah', {'name': 'new-name'}, 'Cannot rename the repository "blah" used in aliases') self.db_provider.modify_repository('', {'dir': '/path/to/new-path'})