def test_get_dom_element_id(self): """Testing ChangeEntry.get_dom_element_id""" entry = ChangeEntry(request=self.request, review_request=self.review_request, changedesc=self.changedesc, collapsed=False, data=self.data) self.assertEqual(entry.get_dom_element_id(), 'changedesc123')
def test_get_js_model_data(self): """Testing ChangeEntry.get_js_model_data for standard ChangeDescription """ entry = ChangeEntry(request=self.request, review_request=self.review_request, changedesc=self.changedesc, collapsed=False, data=self.data) self.assertEqual(entry.get_js_model_data(), {})
def test_is_entry_new_with_timestamp(self): """Testing ChangeEntry.is_entry_new with timestamp""" entry = ChangeEntry(request=self.request, review_request=self.review_request, changedesc=self.changedesc, collapsed=False, data=self.data) user = User.objects.create(username='******') self.assertTrue( entry.is_entry_new(last_visited=self.changedesc.timestamp - timedelta(days=1), user=user)) self.assertFalse( entry.is_entry_new(last_visited=self.changedesc.timestamp, user=user)) self.assertFalse( entry.is_entry_new(last_visited=self.changedesc.timestamp + timedelta(days=1), user=user))
def test_get_js_model_data_with_status_updates(self): """Testing ChangeEntry.get_js_model_data for ChangeDescription with status updates """ self.review_request.repository = self.create_repository() diffset = self.create_diffset(self.review_request) filediff = self.create_filediff(diffset) review = self.create_review(self.review_request, body_top='Body top', body_bottom='Body bottom', ship_it=True) comment1 = self.create_diff_comment(review, filediff) comment2 = self.create_diff_comment(review, filediff) review.publish() # This is needed by the entry's add_comment(). It's normally built when # creating the entries and their data. comment1.review_obj = review comment2.review_obj = review status_update = self.create_status_update( self.review_request, review=review, change_description=self.changedesc) entry = ChangeEntry(request=self.request, review_request=self.review_request, changedesc=self.changedesc, collapsed=False, data=self.data) entry.add_update(status_update) entry.add_comment('diff_comments', comment1) entry.add_comment('diff_comments', comment2) self.assertEqual( entry.get_js_model_data(), { 'reviewsData': [ { 'id': review.pk, 'bodyTop': 'Body top', 'bodyBottom': 'Body bottom', 'public': True, 'shipIt': True, }, ], 'diffCommentsData': [ (six.text_type(comment1.pk), six.text_type(filediff.pk)), (six.text_type(comment2.pk), six.text_type(filediff.pk)), ], 'pendingStatusUpdates': False, })
def test_build_entries(self): """Testing ChangeEntry.build_entries""" changedesc1 = self.changedesc changedesc2 = self.review_request.changedescs.create( timestamp=changedesc1.timestamp + timedelta(days=1), public=True) review = self.create_review(self.review_request, public=True) comment = self.create_general_comment(review) status_update = self.create_status_update( self.review_request, review=review, change_description=changedesc2) self.data.query_data_pre_etag() self.data.query_data_post_etag() entries = list(ChangeEntry.build_entries(self.data)) # These will actually be in database query order (newest to oldest), # not the order shown on the page. entry = entries[0] self.assertEqual(entry.changedesc, changedesc2) self.assertFalse(entry.collapsed) self.assertEqual(entry.status_updates, [status_update]) self.assertEqual(entry.status_updates_by_review, { review.pk: status_update, }) self.assertEqual( entry.status_updates[0].comments, { 'diff_comments': [], 'screenshot_comments': [], 'file_attachment_comments': [], 'general_comments': [comment], }) entry = entries[1] self.assertEqual(entry.changedesc, changedesc1) self.assertTrue(entry.collapsed) self.assertEqual(entry.status_updates, [])