Exemple #1
0
 def setUp(self):
     self.env = EnvironmentStub(disable=['trac.web.auth.LoginModule'])
     self.request_dispatcher = RequestDispatcher(self.env)
     self.req = MockRequest(self.env)
     self.env.clear_component_registry()
Exemple #2
0
 def _request(self, **kwargs):
     kwargs.setdefault('method', 'POST')
     kwargs.setdefault('path_info', '/prefs/notification')
     return MockRequest(self.env, **kwargs)
Exemple #3
0
 def test_get_search_results_milestone_not_in_filters(self):
     req = MockRequest(self.env)
     results = self.mmodule.get_search_results(req, self.terms, [])
     self.assertEqual([], list(results))
Exemple #4
0
 def setUp(self):
     self.env = EnvironmentStub(default_data=True)
     self.perm = PermissionSystem(self.env)
     self.ticket_system = TicketSystem(self.env)
     self.req = MockRequest(self.env)
Exemple #5
0
 def setUp(self):
     self.env = EnvironmentStub(enable=[TextileRenderer])
     self.env.config.set('wiki', 'safe_schemes', 'https, http, data')
     self.renderer = TextileRenderer(self.env)
     self.req = MockRequest(self.env)
     self.context = web_context(self.req)
Exemple #6
0
 def setUp(self):
     _BaseTestCase.setUp(self)
     self.req = MockRequest(self.env)
     self.req.perm = MockPerm()
     self.tac = TagInputAutoComplete(self.env)
Exemple #7
0
 def fn(message, **kwargs):
     req = MockRequest(self.env, path_info='/log/mock/file', **kwargs)
     try:
         self.process_request(req)
     except NoSuchChangeset as e:
         self.assertEqual(message, str(e))
Exemple #8
0
 def test_actor_no_email_view_show_email_addresses(self):
     self.env.config.set('trac', 'show_email_addresses', True)
     req = MockRequest(self.env, authname='user2')
     author = Chrome(self.env).format_author(req, '*****@*****.**')
     self.assertEqual('*****@*****.**', author)
Exemple #9
0
 def test_actor_has_email_view_for_resource(self):
     format_author = Chrome(self.env).format_author
     req = MockRequest(self.env, authname='user2')
     resource = Resource('wiki', 'WikiStart')
     author = format_author(req, '*****@*****.**', resource)
     self.assertEqual('*****@*****.**', author)
Exemple #10
0
    def test_ticket_manipulators(self):
        """The ticket manipulators are called to valid the ticket."""
        module = BatchModifyModule(self.env)
        self._insert_component('component3')
        self._insert_component('component4')
        self.env.enable_component(self.ticket_manipulators[0])
        self.env.enable_component(self.ticket_manipulators[1])
        req1 = MockRequest(self.env,
                           authname='has_bm',
                           method='POST',
                           path_info='/batchmodify',
                           args={
                               'batchmod_value_component': 'component3',
                               'action': 'leave',
                               'selected_tickets': '1,2',
                           })

        self.assertTrue(module.match_request(req1))
        with self.assertRaises(RequestDone):
            module.process_request(req1)

        self.assertEqual(1, len(req1.chrome['warnings']))
        self.assertEqual(
            "The ticket field <strong>component</strong> is "
            "invalid: Invalid Component", unicode(req1.chrome['warnings'][0]))
        self.assertFieldValue(1, 'component', 'component1')
        self.assertFieldValue(2, 'component', 'component2')

        req2 = MockRequest(self.env,
                           authname='has_bm',
                           method='POST',
                           path_info='/batchmodify',
                           args={
                               'batchmod_value_component': 'component4',
                               'action': 'leave',
                               'selected_tickets': '1,2',
                           })

        self.assertTrue(module.match_request(req2))
        with self.assertRaises(RequestDone):
            module.process_request(req2)

        self.assertEqual([], req2.chrome['warnings'])
        self.assertFieldValue(1, 'component', 'component4')
        self.assertFieldValue(2, 'component', 'component4')

        req3 = MockRequest(self.env,
                           authname='has_bm',
                           method='POST',
                           path_info='/batchmodify',
                           args={
                               'batchmod_value_comment':
                               'this comment has the badword!',
                               'batchmod_value_component': 'component3',
                               'action': 'leave',
                               'selected_tickets': '1,2',
                           })

        self.assertTrue(module.match_request(req3))
        with self.assertRaises(RequestDone):
            module.process_request(req3)

        self.assertEqual(
            u"The ticket <strong>comment</strong> is invalid: "
            u"Word is not allowed in comment",
            unicode(req3.chrome['warnings'][0]))
        self.assertFieldValue(1, 'component', 'component4')
        self.assertFieldValue(2, 'component', 'component4')
Exemple #11
0
 def test_actor_no_email_view(self):
     req = MockRequest(self.env, authname='user2')
     author = Chrome(self.env).format_author(req, '*****@*****.**')
     self.assertEqual(u'user@\u2026', author)
Exemple #12
0
    def test_timeline_events(self):
        """Regression test for #11288"""
        req1 = MockRequest(self.env)
        tktmod = web_ui.TicketModule(self.env)
        now = datetime_now(utc)
        start = now - timedelta(hours=1)
        stop = now + timedelta(hours=1)
        events = tktmod.get_timeline_events(req1, start, stop,
                                            ['ticket_details'])
        self.assertTrue(all(ev[0] != 'batchmodify' for ev in events))

        prio_ids = {}
        for i in xrange(20):
            priority = ('', 'minor', 'major', 'critical')[i % 4]
            t = insert_ticket(self.env,
                              summary='Ticket %d' % i,
                              priority=priority)
            prio_ids.setdefault(t['priority'], []).append(t.id)
        tktids = prio_ids['critical'] + prio_ids['major'] + \
                 prio_ids['minor'] + prio_ids['']

        req2 = MockRequest(self.env,
                           method='POST',
                           authname='has_ta_&_bm',
                           path_info='/batchmodify',
                           args={
                               'batchmod_value_summary':
                               'batch updated ticket',
                               'batchmod_value_owner':
                               'ticket11288',
                               'batchmod_value_reporter':
                               'ticket11288',
                               'action':
                               'leave',
                               'selected_tickets':
                               ','.join(str(t) for t in tktids),
                           })

        batch = BatchModifyModule(self.env)
        self.assertTrue(batch.match_request(req2))
        with self.assertRaises(RequestDone):
            batch.process_request(req2)

        # shuffle ticket_change records
        with self.env.db_transaction as db:
            rows = db('SELECT * FROM ticket_change')
            db.execute('DELETE FROM ticket_change')
            rows = rows[0::4] + rows[1::4] + rows[2::4] + rows[3::4]
            db.executemany(
                'INSERT INTO ticket_change VALUES (%s)' % ','.join(
                    ('%s', ) * len(rows[0])), rows)

        events = tktmod.get_timeline_events(req1, start, stop,
                                            ['ticket_details'])
        events = [ev for ev in events if ev[0] == 'batchmodify']
        self.assertEqual(1, len(events))
        batch_ev = events[0]
        self.assertEqual('has_ta_&_bm', batch_ev[2])
        self.assertEqual(tktids, batch_ev[3][0])
        self.assertEqual('updated', batch_ev[3][1])

        context = web_context(req2)
        self.assertEqual(
            req2.href.query(id=','.join(str(t) for t in tktids)),
            tktmod.render_timeline_event(context, 'url', batch_ev))
Exemple #13
0
    def test_asc_argument_is_invalid(self):
        """Invalid value for `asc` argument is coerced to default."""
        req = MockRequest(self.env, args={'asc': '--'})

        self.assertRaises(HTTPBadRequest,
                          ReportModule(self.env).process_request, req)
Exemple #14
0
 def _execute_report(self, id, args=None):
     mod = self.report_module
     req = MockRequest(self.env)
     report = Report(self.env, id)
     return mod.execute_paginated_report(req, id, report.query, args or {})
Exemple #15
0
 def test_matches(self):
     req = MockRequest(self.env, path_info='/tags', authname='reader')
     self.assertEquals(True, self.tag_rh.match_request(req))
Exemple #16
0
 def test_actor_has_email_view_for_resource_negative(self):
     format_author = Chrome(self.env).format_author
     req = MockRequest(self.env, authname='user2')
     resource = Resource('wiki', 'TracGuide')
     author = format_author(req, '*****@*****.**', resource)
     self.assertEqual(u'user@\u2026', author)
Exemple #17
0
 def test_get_main_page_no_permission(self):
     req = MockRequest(self.env, path_info='/tags', authname='anonymous')
     self.assertRaises(PermissionError, self.tag_rh.process_request, req)
Exemple #18
0
 def test_login_no_username(self):
     req = MockRequest(self.env, remote_user=None)
     self.assertRaises(TracError, self.module._do_login, req)
Exemple #19
0
 def test_default_repository_not_configured(self):
     """Test for regression of https://trac.edgewall.org/ticket/11599."""
     req = MockRequest(self.env, path_info='/log/', args={'new_path': '/'})
     self.assertRaises(TracError, self.process_request, req)
Exemple #20
0
 def test_already_logged_in_same_user(self):
     self.env.db_transaction("""
         INSERT INTO auth_cookie (cookie, name, ipnr)
         VALUES ('123', 'john', '127.0.0.1')""")
     req = MockRequest(self.env, authname='john')
     self.module._do_login(req)  # this shouldn't raise an error
Exemple #21
0
 def _format_to_html(self, authname, wiki):
     resource = Resource('wiki', 'WikiStart')
     req = MockRequest(self.env, authname=authname)
     return str(format_to_html(self.env, web_context(req, resource), wiki))
Exemple #22
0
 def test_already_logged_in_different_user(self):
     self.env.db_transaction("""
         INSERT INTO auth_cookie (cookie, name, ipnr)
         VALUES ('123', 'john', '127.0.0.1')""")
     req = MockRequest(self.env, authname='john', remote_user='******')
     self.assertRaises(TracError, self.module._do_login, req)
Exemple #23
0
 def setUp(self):
     self.env = EnvironmentStub(enable=[ReStructuredTextRenderer])
     self.renderer = ReStructuredTextRenderer(self.env)
     self.req = MockRequest(self.env)
     self.context = web_context(self.req)
Exemple #24
0
 def test_logout_not_logged_in(self):
     req = MockRequest(self.env, method='POST')
     self.module._do_logout(req)  # this shouldn't raise an error
Exemple #25
0
 def _prepare_prefs_get_request(self):
     return MockRequest(self.env,
                        method='GET',
                        path_info=self.path_info,
                        cookie='trac_session=1234567890abcdef;')
Exemple #26
0
 def test_anonymous_access(self):
     req = MockRequest(self.env, remote_user=None)
     self.assertIsNone(self.module.authenticate(req))
Exemple #27
0
    def test_invalid_post_request_raises_exception(self):
        req = MockRequest(self.env, method='POST', action=None)

        self.assertRaises(HTTPBadRequest,
                          MilestoneModule(self.env).process_request, req)
Exemple #28
0
 def test_unknown_cookie_access(self):
     incookie = Cookie()
     incookie['trac_auth'] = '123'
     req = MockRequest(self.env, remote_user=None)
     self.assertIsNone(self.module.authenticate(req))
Exemple #29
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))
Exemple #30
0
 def setUp(self):
     self.env = EnvironmentStub()
     self.req = MockRequest(self.env)
     self.request_dispatcher = RequestDispatcher(self.env)
     self.compmgr = ComponentManager()
     self.env.clear_component_registry()