Esempio n. 1
0
    def _test_on_empty_repos(self, cached_repository):
        self.env.config.set('git', 'persistent_cache', 'false')
        self.env.config.set('git', 'cached_repository',
                            'true' if cached_repository else 'false')

        self._git_init(data=False, bare=True)
        self._add_repository(bare=True)
        repos = self._repomgr.get_repository('gitrepos')
        if cached_repository:
            # call sync() thrice with empty repository (#11851)
            for i in xrange(3):
                repos.sync()
                rows = self.env.db_query("SELECT value FROM repository "
                                         "WHERE id=%s AND name=%s",
                                         (repos.id, 'youngest_rev'))
                self.assertEqual('', rows[0][0])
        else:
            repos.sync()
        youngest_rev = repos.youngest_rev
        self.assertIsNone(youngest_rev)
        self.assertIsNone(repos.oldest_rev)
        self.assertIsNone(repos.normalize_rev(''))
        self.assertIsNone(repos.normalize_rev(None))
        self.assertIsNone(repos.display_rev(''))
        self.assertIsNone(repos.display_rev(None))
        self.assertIsNone(repos.short_rev(''))
        self.assertIsNone(repos.short_rev(None))

        node = repos.get_node('/', youngest_rev)
        self.assertEqual([], list(node.get_entries()))
        self.assertEqual([], list(node.get_history()))
        self.assertRaises(NoSuchNode, repos.get_node, '/path', youngest_rev)

        req = MockRequest(self.env, path_info='/browser/gitrepos')
        browser_mod = BrowserModule(self.env)
        self.assertTrue(browser_mod.match_request(req))
        rv = browser_mod.process_request(req)
        self.assertEqual('browser.html', rv[0])
        self.assertIsNone(rv[1]['rev'])

        req = MockRequest(self.env, path_info='/log/gitrepos')
        log_mod = LogModule(self.env)
        self.assertTrue(log_mod.match_request(req))
        rv = log_mod.process_request(req)
        self.assertEqual('revisionlog.html', rv[0])
        self.assertEqual([], rv[1]['items'])
Esempio n. 2
0
 def process_request(self, req):
     filter_page = WikiPage(self.env, req.args['filter'].value)
     self.log.debug(filter_page.name)
     if not filter_page.exists:
         raise TracError(Markup('Filter page "%s" not found', filter_page.name))
     self.log.debug(filter_page.text)
     filters = filter_page.text
     filters = filters.split('{{{', 1)[1].split('}}}', 1)[0].splitlines()
     filter_re = '|'.join('(?:%s)' % f for f in filters if f and not f.startswith('#'))
     self.log.debug(filter_re)
     filter_re = re.compile('|'.join('(?:%s)' % f for f in filters if f))
     pred = filter_re.search
     req.args['format'] = 'rss'
     req.args['path'] = '/'
     log_module = LogModule(self.env)
     log_module.env = ChangesetFeedsModule.FakeEnv(self.env, pred)
     return log_module.process_request(req)
Esempio n. 3
0
 def process_request(self, req):
     filter_page = WikiPage(self.env, req.args['filter'].value)
     self.log.debug(filter_page.name)
     if not filter_page.exists:
         raise TracError(
             Markup('Filter page "%s" not found', filter_page.name))
     self.log.debug(filter_page.text)
     filters = filter_page.text
     filters = filters.split('{{{', 1)[1].split('}}}', 1)[0].splitlines()
     filter_re = '|'.join('(?:%s)' % f for f in filters
                          if f and not f.startswith('#'))
     self.log.debug(filter_re)
     filter_re = re.compile('|'.join('(?:%s)' % f for f in filters if f))
     pred = filter_re.search
     req.args['format'] = 'rss'
     req.args['path'] = '/'
     log_module = LogModule(self.env)
     log_module.env = ChangesetFeedsModule.FakeEnv(self.env, pred)
     return log_module.process_request(req)
Esempio n. 4
0
    def _test_on_empty_repos(self, cached_repository):
        self.env.config.set('git', 'persistent_cache', 'false')
        self.env.config.set('git', 'cached_repository',
                            'true' if cached_repository else 'false')

        self._git_init(data=False, bare=True)
        self._add_repository(bare=True)
        repos = self._repomgr.get_repository('gitrepos')
        if cached_repository:
            # call sync() thrice with empty repository (#11851)
            for i in xrange(3):
                repos.sync()
                rows = self.env.db_query("SELECT value FROM repository "
                                         "WHERE id=%s AND name=%s",
                                         (repos.id, 'youngest_rev'))
                self.assertEqual('', rows[0][0])
        else:
            repos.sync()
        youngest_rev = repos.youngest_rev
        self.assertEqual(None, youngest_rev)
        self.assertEqual(None, repos.oldest_rev)
        self.assertEqual(None, repos.normalize_rev(''))
        self.assertEqual(None, repos.normalize_rev(None))

        node = repos.get_node('/', youngest_rev)
        self.assertEqual([], list(node.get_entries()))
        self.assertEqual([], list(node.get_history()))
        self.assertRaises(NoSuchNode, repos.get_node, '/path', youngest_rev)

        req = self._create_req(path_info='/browser/gitrepos')
        browser_mod = BrowserModule(self.env)
        self.assertTrue(browser_mod.match_request(req))
        rv = browser_mod.process_request(req)
        self.assertEqual('browser.html', rv[0])
        self.assertEqual(None, rv[1]['rev'])

        req = self._create_req(path_info='/log/gitrepos')
        log_mod = LogModule(self.env)
        self.assertTrue(log_mod.match_request(req))
        rv = log_mod.process_request(req)
        self.assertEqual('revisionlog.html', rv[0])
        self.assertEqual([], rv[1]['items'])
Esempio n. 5
0
 def setUp(self):
     self.env = EnvironmentStub()
     self.lm = LogModule(self.env)