Example #1
0
    def test_save_milestone(self):
        map = MilestoneAdminPanel(self.env)
        old_name = 'milestone2'
        new_name = 'mile stone 6'
        milestone = Milestone(self.env, old_name)
        self.assertEqual(old_name, milestone.name)

        req = MockRequest(self.env,
                          method='POST',
                          args={
                              'name': ' milestone1 ',
                              'save': True
                          })
        with self.assertRaises(ResourceExistsError) as cm:
            map.render_admin_panel(req, 'ticket', 'milestone', old_name)
        self.assertIn('Milestone "milestone1" already exists',
                      unicode(cm.exception))

        req = MockRequest(self.env,
                          method='POST',
                          args={
                              'name': ' mile \t stone \t 6 ',
                              'save': True
                          })
        self.assertRaises(RequestDone, map.render_admin_panel, req, 'ticket',
                          'milestone', old_name)
        self.assertIn('Your changes have been saved.', req.chrome['notices'])

        milestone = Milestone(self.env, new_name)
        self.assertEqual(new_name, milestone.name)
        self.assertRaises(ResourceNotFound, map.render_admin_panel, req,
                          'ticket', 'milestone', old_name)
        self.assertRaises(ResourceNotFound, Milestone, self.env, old_name)
Example #2
0
 def test_default_view(self):
     panel = MilestoneAdminPanel(self.env)
     req = MockRequest(self.env)
     template, data = panel.render_admin_panel(req, 'ticket', 'milestone',
                                               None)
     self.assertEqual('admin_milestones.html', template)
     self.assertEqual('list', data['view'])
     self.assertEqual('/trac.cgi/query?group=status&milestone=blah',
                      data['query_href']('blah'))
Example #3
0
 def test_user_with_ticket_admin_can_view(self):
     """User with MILESTONE_VIEW and TICKET_ADMIN can view."""
     PermissionSystem(self.env).grant_permission('user1', 'TICKET_ADMIN')
     req = MockRequest(self.env, authname='user1')
     rv = MilestoneAdminPanel(self.env).get_admin_panels(req)
     self.assertEqual([('ticket', "Ticket System", 'milestones',
                        "Milestones")], list(rv))
Example #4
0
    def test_add_milestone_with_spaces(self):
        name = 'mile stone 5'
        map = MilestoneAdminPanel(self.env)
        req = MockRequest(self.env, method='POST',
                          args={'name': ' mile \t stone \t 5 ', 'add': True})

        self.assertRaises(ResourceNotFound, Milestone, self.env, name)
        self.assertRaises(RequestDone, map.render_admin_panel, req,
                          'ticket', 'milestone', None)
        self.assertIn('The milestone "mile stone 5" has been added.',
                      req.chrome['notices'])
        milestone = Milestone(self.env, name)
        self.assertEqual(name, milestone.name)

        with self.assertRaises(ResourceExistsError) as cm:
            map.render_admin_panel(req, 'ticket', 'milestone', None)
        self.assertIn('Milestone "mile stone 5" already exists',
                      unicode(cm.exception))
Example #5
0
    def test_set_default_retarget_to_requires_ticket_admin(self):
        """Setting default retarget milestone requires TICKET_ADMIN."""
        PermissionSystem(self.env).grant_permission('user1', 'MILESTONE_ADMIN')
        req = MockRequest(self.env, authname='user1', method='POST',
                          args={'retarget_to': 'milestone1', 'apply': True})

        self.assertNotIn('TICKET_ADMIN', req.perm)
        with self.assertRaises(PermissionError):
            MilestoneAdminPanel(self.env).render_admin_panel(
                req, 'ticket', 'milestone', None)
Example #6
0
    def test_set_default_retarget_to(self):
        name = 'milestone2'
        config_key = 'default_retarget_to'
        map = MilestoneAdminPanel(self.env)
        req = MockRequest(self.env, method='POST',
                          args={'retarget_default': name, 'apply': True})

        self.assertRaises(RequestDone, map.render_admin_panel, req,
                          'ticket', 'milestone', None)
        self.assertEqual(name, self.env.config.get('milestone', config_key))
Example #7
0
    def test_add_milestone(self):
        name = 'milestone5'
        map = MilestoneAdminPanel(self.env)
        req = MockRequest(self.env, method='POST',
                          args={'name': name, 'add': True})

        self.assertRaises(ResourceNotFound, Milestone, self.env, name)
        self.assertRaises(RequestDone, map.render_admin_panel, req,
                          'ticket', 'milestone', None)
        milestone = Milestone(self.env, name)
        self.assertEqual(name, milestone.name)
Example #8
0
    def test_set_default_retarget_to(self):
        """Set default retarget milestone."""
        name = 'milestone2'
        config_key = 'default_retarget_to'
        PermissionSystem(self.env).grant_permission('user1', 'TICKET_ADMIN')
        req = MockRequest(self.env, authname='user1', method='POST',
                          args={'retarget_default': name, 'apply': True})

        self.assertEqual('', self.env.config.get('ticket', config_key))
        with self.assertRaises(RequestDone):
            MilestoneAdminPanel(self.env).render_admin_panel(
                req, 'ticket', 'milestone', None)
        self.assertIn('Your changes have been saved.', req.chrome['notices'])
        self.assertEqual([], req.chrome['warnings'])
        self.assertEqual(name, self.env.config.get('milestone', config_key))
Example #9
0
    def test_remove_default_milestone(self):
        name = 'milestone2'
        map = MilestoneAdminPanel(self.env)
        self.env.config.set('ticket', 'default_milestone', 'milestone2')
        self.env.config.set('milestone', 'default_retarget_to', 'milestone2')

        req = MockRequest(self.env, method='POST',
                          args={'sel': name, 'remove': True})
        self.assertRaises(RequestDone, map.render_admin_panel, req,
                          'ticket', 'milestone', None)

        self.assertEqual('', self.env.config.get('ticket',
                                                 'default_milestone'))
        self.assertEqual('', self.env.config.get('milestone',
                                                 'default_retarget_to'))
Example #10
0
    def test_remove_default_milestone(self):
        name = 'milestone2'
        map = MilestoneAdminPanel(self.env)
        self.env.config.set('ticket', 'default_milestone', 'milestone2')
        self.env.config.set('milestone', 'default_retarget_to', 'milestone2')

        req = MockRequest(self.env, method='POST',
                          args={'sel': name, 'remove': True})
        self.assertRaises(RequestDone, map.render_admin_panel, req,
                          'ticket', 'milestone', None)

        self.assertIn('Your changes have been saved.', req.chrome['notices'])
        self.assertEqual([], req.chrome['warnings'])
        self.assertEqual('', self.env.config.get('ticket',
                                                 'default_milestone'))
        self.assertEqual('', self.env.config.get('milestone',
                                                 'default_retarget_to'))
Example #11
0
File: admin.py Project: zxfly/trac
    def test_set_default_milestone(self):
        """Set default milestone."""
        name = 'milestone2'
        config_key = 'default_milestone'
        PermissionSystem(self.env).grant_permission('user1', 'TICKET_ADMIN')
        req = MockRequest(self.env,
                          authname='user1',
                          method='POST',
                          args={
                              'ticket_default': name,
                              'apply': True
                          })

        self.assertEqual('', self.env.config.get('ticket', config_key))
        with self.assertRaises(RequestDone):
            MilestoneAdminPanel(self.env).render_admin_panel(
                req, 'ticket', 'milestone', None)
        self.assertEqual(name, self.env.config.get('ticket', config_key))
Example #12
0
    def __init__(self, env):
        TracAdmin.__init__(self, env)
        self.env = open_environment(env)

        # new style, as of trac:changeset:7677
        # see trac:#7770
        # for now, support both use-cases
        if not hasattr(self, 'get_component_list'):
            # TODO: create these functions
            from trac.ticket.admin import ComponentAdminPanel
            from trac.ticket.admin import MilestoneAdminPanel
            from trac.wiki.admin import WikiAdmin

            self.ComponentAdminPanel = ComponentAdminPanel(self.env)
            self.get_component_list = self.ComponentAdminPanel.get_component_list
            self._do_component_remove = self.ComponentAdminPanel._do_remove
            self.MilestoneAdminPanel = MilestoneAdminPanel(self.env)
            self.get_milestone_list = self.MilestoneAdminPanel.get_milestone_list
            self._do_milestone_remove = self.MilestoneAdminPanel._do_remove
            self.WikiAdmin = WikiAdmin(self.env)
            self._do_wiki_load = self.WikiAdmin.load_pages
Example #13
0
 def test_user_without_milestone_or_ticket_admin_cannot_view(self):
     """User without MILESTONE_ADMIN or TICKET_ADMIN cannot view."""
     req = MockRequest(self.env, authname='user1')
     rv = MilestoneAdminPanel(self.env).get_admin_panels(req)
     self.assertEqual([], list(rv))