예제 #1
0
    def test_complete_milestone_retarget_tickets(self):
        name = 'milestone1'
        target = 'milestone2'
        insert_ticket(self.env, summary='Ticket 1', milestone=name)
        insert_ticket(self.env, summary='Ticket 2', milestone=name)
        ps = PermissionSystem(self.env)
        ps.grant_permission('user1', 'TICKET_ADMIN')
        ps.grant_permission('user1', 'MILESTONE_MODIFY')
        req = MockRequest(self.env, authname='user1', method='POST',
            path_info='/admin/ticket/milestones/%s' % name,
            args=dict(action='edit', save='Submit changes', name=name,
                      description='', retarget='on', target=target,
                      comment='', completed='on',
                      completeddate='May 20, 2020, 9:07:52 PM'))

        mod = AdminModule(self.env)
        self.assertTrue(mod.match_request(req))
        with self.assertRaises(RequestDone):
            mod.process_request(req)

        self.assertEqual(2, len(req.chrome['notices']))
        self.assertEqual(
            'The open tickets associated with milestone "milestone1" '
            'have been retargeted to milestone "milestone2".',
            req.chrome['notices'][0])
        self.assertEqual('Your changes have been saved.',
                         req.chrome['notices'][1])
        self.assertEqual([], req.chrome['warnings'])
        self.assertEqual(['303 See Other'], req.status_sent)
        self.assertEqual('http://example.org/trac.cgi/admin/ticket/milestones',
                         req.headers_sent['Location'])
        self.assertTrue(Milestone(self.env, name).is_completed)
        self.assertEqual(target, Ticket(self.env, 1)['milestone'])
        self.assertEqual(target, Ticket(self.env, 2)['milestone'])
예제 #2
0
파일: web_ui.py 프로젝트: mugglecloud/trac
    def test_log_type_none(self):
        """When log type is none, TracError is not raised even if log level and
        log file in the parameters are missing.
        """
        logging_config = self.env.config['logging']
        logging_config.set('log_type', 'file')
        logging_config.set('log_level', 'WARN')
        logging_config.set('log_file', os.devnull)
        mod = AdminModule(self.env)

        req = MockRequest(self.env, path_info='/admin/general/logging')
        self.assertTrue(mod.match_request(req))
        data = mod.process_request(req)[1]
        self.assertEqual('WARNING', data['log']['level'])
        self.assertIn('WARNING', data['log']['levels'])

        req = MockRequest(self.env,
                          path_info='/admin/general/logging',
                          method='POST',
                          args={'log_type': 'none'})
        self.assertTrue(mod.match_request(req))
        self.assertRaises(RequestDone, mod.process_request, req)
        self.assertEqual('none', logging_config.get('log_type'))
        self.assertEqual('WARN', logging_config.get('log_level'))
        self.assertEqual(os.devnull, logging_config.get('log_file'))
예제 #3
0
    def test_render_admin_panel(self):
        """GET request for admin panel."""
        req = MockRequest(self.env, path_info='/admin/general/logging',
                          method='GET')
        mod = AdminModule(self.env)

        self.assertTrue(mod.match_request(req))
        data = mod.process_request(req)[1]

        self.assertEqual('none', data['log']['type'])
        self.assertEqual(['none', 'stderr', 'file', 'syslog', 'eventlog'],
                         [t['name'] for t in data['log']['types']])
        self.assertEqual('DEBUG', data['log']['level'])
        self.assertEqual(['CRITICAL', 'ERROR', 'WARNING', 'INFO', 'DEBUG'],
                         data['log']['levels'])
        self.assertEqual('trac.log', data['log']['file'])
        self.assertEqual(self.env.log_dir, data['log']['dir'])