def test_pagination(self): """Testing SearchView pagination""" user = self.create_user() diffset_history = DiffSetHistory.objects.create() ReviewRequest.objects.bulk_create( ReviewRequest(diffset_history=diffset_history, summary='Test %s' % i, submitter=user, public=True) for i in range(20)) siteconfig_settings = { 'search_results_per_page': 1, } with search_enabled(backend_id='whoosh'): with self.siteconfig_settings(siteconfig_settings, reload_settings=False): reindex_search() rsp = self.client.get('%s?q=Test&page=10' % reverse('search')) self.assertEqual(rsp.status_code, 200) self.assertIn( b'<a href="?q=Test&page=1" rel="nofollow">' b'« First Page</a>', rsp.content) self.assertIn( b'<a href="?q=Test&page=9" rel="nofollow">' b'< Previous</a>', rsp.content) self.assertIn( b'<a href="?q=Test&page=11" rel="nofollow">' b'Next ></a>', rsp.content) self.assertIn( b'<a href="?q=Test&page=20" rel="nofollow">' b'Last Page »</a>', rsp.content)
def test_render_change_entry_html(self): """Testing BaseTextAreaField.render_change_entry_html""" field = BaseTextAreaField(ReviewRequest()) html = field.render_change_entry_html({ 'old': ['This is a test\n\nWith two lines'], 'new': ['This is a test with one line'], }) self.assertHTMLEqual( html, '<table class="diffed-text-area">' ' <tr class="replace-old">' ' <td class="marker">~</td>' ' <td class="marker"> </td>' ' <td class="line rich-text"><p>This is a test</p></td>' ' </tr>' ' <tr class="replace-new">' ' <td class="marker"> </td>' ' <td class="marker">~</td>' ' <td class="line rich-text">' ' <p>This is a test<span class="hl"> with one line</span></p>' ' </td>' ' </tr>' ' <tr class="delete">' ' <td class="marker">-</td>' ' <td class="marker"> </td>' ' <td class="line rich-text">\n</td>' ' </tr>' ' <tr class="delete">' ' <td class="marker">-</td>' ' <td class="marker"> </td>' ' <td class="line rich-text"><p>With two lines</p></td>' ' </tr>' '</table>')
def test_render_change_entry_html_with_entities(self): """Testing BaseTextAreaField.render_change_entry_html with string containing entities """ field = BaseTextAreaField(ReviewRequest()) html = field.render_change_entry_html({ 'old': ['This "is" a <test>'], 'new': ['This "is" a <test> with more stuff here'], }) self.assertHTMLEqual( html, '<table class="diffed-text-area">' ' <tr class="replace-old">' ' <td class="marker">~</td>' ' <td class="marker"> </td>' ' <td class="line rich-text">' ' <p>This "is" a <test></p>' ' </td>' ' </tr>' ' <tr class="replace-new">' ' <td class="marker"> </td>' ' <td class="marker">~</td>' ' <td class="line rich-text">' ' <p>This "is" a <test><span class="hl"> with ' ' more stuff here</span></p>' ' </td>' ' </tr>' '</table>')
def create_review_request(self, with_local_site=False, with_diffs=False, summary='Test Summary', description='Test Description', testing_done='Testing', submitter='doc', local_id=1001, status='P', public=False, publish=False, repository=None, id=None, create_repository=False): """Creates a ReviewRequest for testing. The ReviewRequest may optionally be attached to a LocalSite. It's also populated with default data that can be overridden by the caller. If create_repository is True, a Repository will be created automatically. If set, a custom repository cannot be provided. The provided submitter may either be a username or a User object. If publish is True, ReviewRequest.publish() will be called. """ if with_local_site: local_site = LocalSite.objects.get(name=self.local_site_name) else: local_site = None local_id = None if create_repository: assert not repository repository = \ self.create_repository(with_local_site=with_local_site) if not isinstance(submitter, User): submitter = User.objects.get(username=submitter) review_request = ReviewRequest( summary=summary, description=description, testing_done=testing_done, local_site=local_site, local_id=local_id, submitter=submitter, diffset_history=DiffSetHistory.objects.create(), repository=repository, public=public, status=status, id=id) review_request.save() if publish: review_request.publish(review_request.submitter) return review_request
def test_should_render_review_request_field(self): """Testing ReviewRequestFieldSetsHook when ReviewRequestFieldset.should_render raises exception """ fieldset = [TestShouldRenderFieldset] ReviewRequestFieldSetsHook(extension=self.extension, fieldsets=fieldset) review = ReviewRequest() context = Context({ 'review_request_details': review, 'fieldset': TestShouldRenderFieldset }) t = Template("{% load reviewtags %}" "{% for_review_request_field review_request_details" " 'test_should_render' %}" "{% end_for_review_request_field %}") t.render(context).strip()
def test_field_cls_review_request_field(self): """Testing ReviewRequestFieldSetsHook when BaseReviewRequestField.__init__ raises exception """ fieldset = [TestInitFieldset] ReviewRequestFieldSetsHook(extension=self.extension, fieldsets=fieldset) review = ReviewRequest() context = Context({ 'review_request_details': review, 'fieldset': TestInitFieldset }) t = Template( "{% load reviewtags %}" "{% for_review_request_field review_request_details 'test_init' %}" "{% end_for_review_request_field %}") t.render(context).strip()
def test_fieldset_cls_review_request_fieldset(self): """Testing ReviewRequestFieldSetsHook when ReviewRequestFieldset.__init__ raises exception """ fieldset = [BaseReviewRequestTestInitFieldset] ReviewRequestFieldSetsHook(extension=self.extension, fieldsets=fieldset) review = ReviewRequest() request = self.factory.get('test') request.user = self.user context = Context({ 'review_request_details': review, 'request': request }) t = Template("{% load reviewtags %}" "{% for_review_request_fieldset review_request_details %}" "{% end_for_review_request_fieldset %}") t.render(context).strip()
def create_review_request(self, with_local_site=False, local_site=None, summary='Test Summary', description='Test Description', testing_done='Testing', submitter='doc', branch='my-branch', local_id=1001, bugs_closed='', status='P', public=False, publish=False, commit_id=None, changenum=None, repository=None, id=None, create_repository=False): """Create a ReviewRequest for testing. The ReviewRequest may optionally be attached to a LocalSite. It's also populated with default data that can be overridden by the caller. If create_repository is True, a Repository will be created automatically. If set, a custom repository cannot be provided. The provided submitter may either be a username or a User object. If publish is True, ReviewRequest.publish() will be called. """ if not local_site: if with_local_site: local_site = self.get_local_site(name=self.local_site_name) else: local_site = None if not local_site: local_id = None if create_repository: assert not repository repository = \ self.create_repository(with_local_site=with_local_site) if not isinstance(submitter, User): submitter = User.objects.get(username=submitter) review_request = ReviewRequest( summary=summary, description=description, branch=branch, testing_done=testing_done, local_site=local_site, local_id=local_id, submitter=submitter, diffset_history=DiffSetHistory.objects.create(), repository=repository, public=public, commit_id=commit_id, changenum=changenum, bugs_closed=bugs_closed, status=status) # Set this separately to avoid issues with CounterField updates. review_request.id = id review_request.save() if publish: review_request.publish(review_request.submitter) return review_request
def test_no_summary(self): """Testing review requests with no summary""" from django.template.defaultfilters import lower review_request = ReviewRequest() lower(review_request)
def test_long_bug_numbers(self): """Testing review requests with very long bug numbers""" review_request = ReviewRequest() review_request.bugs_closed = '12006153200030304432010,4432009' self.assertEqual(review_request.get_bug_list(), ['4432009', '12006153200030304432010'])
def test_is_approved_sandbox(self): """Testing ReviewRequestApprovalHook.is_approved with raised exception """ SandboxReviewRequestApprovalTestHook(extension=self.extension) review = ReviewRequest() review._calculate_approval()