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()
def _request(self, **kwargs): kwargs.setdefault('method', 'POST') kwargs.setdefault('path_info', '/prefs/notification') return MockRequest(self.env, **kwargs)
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))
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)
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)
def setUp(self): _BaseTestCase.setUp(self) self.req = MockRequest(self.env) self.req.perm = MockPerm() self.tac = TagInputAutoComplete(self.env)
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))
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)
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)
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')
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)
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))
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)
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 {})
def test_matches(self): req = MockRequest(self.env, path_info='/tags', authname='reader') self.assertEquals(True, self.tag_rh.match_request(req))
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)
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)
def test_login_no_username(self): req = MockRequest(self.env, remote_user=None) self.assertRaises(TracError, self.module._do_login, req)
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)
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
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))
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)
def setUp(self): self.env = EnvironmentStub(enable=[ReStructuredTextRenderer]) self.renderer = ReStructuredTextRenderer(self.env) self.req = MockRequest(self.env) self.context = web_context(self.req)
def test_logout_not_logged_in(self): req = MockRequest(self.env, method='POST') self.module._do_logout(req) # this shouldn't raise an error
def _prepare_prefs_get_request(self): return MockRequest(self.env, method='GET', path_info=self.path_info, cookie='trac_session=1234567890abcdef;')
def test_anonymous_access(self): req = MockRequest(self.env, remote_user=None) self.assertIsNone(self.module.authenticate(req))
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)
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))
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))
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()