本文整理汇总了Python中patchwork.models.Patch.get_absolute_url方法的典型用法代码示例。如果您正苦于以下问题:Python Patch.get_absolute_url方法的具体用法?Python Patch.get_absolute_url怎么用?Python Patch.get_absolute_url使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类patchwork.models.Patch
的用法示例。
在下文中一共展示了Patch.get_absolute_url方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: PatchNotificationEmailTest
# 需要导入模块: from patchwork.models import Patch [as 别名]
# 或者: from patchwork.models.Patch import get_absolute_url [as 别名]
class PatchNotificationEmailTest(TestCase):
def setUp(self):
self.project = defaults.project
self.project.send_notifications = True
self.project.save()
self.submitter = defaults.patch_author_person
self.submitter.save()
self.patch = Patch(project = self.project, msgid = 'testpatch',
name = 'testpatch', content = '',
submitter = self.submitter)
self.patch.save()
def tearDown(self):
self.patch.delete()
self.submitter.delete()
self.project.delete()
def _expireNotifications(self, **kwargs):
timestamp = datetime.datetime.now() - \
datetime.timedelta(minutes =
settings.NOTIFICATION_DELAY_MINUTES + 1)
qs = PatchChangeNotification.objects.all()
if kwargs:
qs = qs.filter(**kwargs)
qs.update(last_modified = timestamp)
def testNoNotifications(self):
self.assertEquals(send_notifications(), [])
def testNoReadyNotifications(self):
""" We shouldn't see immediate notifications"""
PatchChangeNotification(patch = self.patch,
orig_state = self.patch.state).save()
errors = send_notifications()
self.assertEquals(errors, [])
self.assertEquals(len(mail.outbox), 0)
def testNotifications(self):
PatchChangeNotification(patch = self.patch,
orig_state = self.patch.state).save()
self._expireNotifications()
errors = send_notifications()
self.assertEquals(errors, [])
self.assertEquals(len(mail.outbox), 1)
msg = mail.outbox[0]
self.assertEquals(msg.to, [self.submitter.email])
self.assertTrue(self.patch.get_absolute_url() in msg.body)
def testNotificationEscaping(self):
self.patch.name = 'Patch name with " character'
self.patch.save()
PatchChangeNotification(patch = self.patch,
orig_state = self.patch.state).save()
self._expireNotifications()
errors = send_notifications()
self.assertEquals(errors, [])
self.assertEquals(len(mail.outbox), 1)
msg = mail.outbox[0]
self.assertEquals(msg.to, [self.submitter.email])
self.assertFalse('"' in msg.body)
def testNotificationOptout(self):
"""ensure opt-out addresses don't get notifications"""
PatchChangeNotification(patch = self.patch,
orig_state = self.patch.state).save()
self._expireNotifications()
EmailOptout(email = self.submitter.email).save()
errors = send_notifications()
self.assertEquals(errors, [])
self.assertEquals(len(mail.outbox), 0)
def testNotificationMerge(self):
patches = [self.patch,
Patch(project = self.project, msgid = 'testpatch-2',
name = 'testpatch 2', content = '',
submitter = self.submitter)]
for patch in patches:
patch.save()
PatchChangeNotification(patch = patch,
orig_state = patch.state).save()
self.assertEquals(PatchChangeNotification.objects.count(), len(patches))
self._expireNotifications()
errors = send_notifications()
self.assertEquals(errors, [])
self.assertEquals(len(mail.outbox), 1)
msg = mail.outbox[0]
self.assertTrue(patches[0].get_absolute_url() in msg.body)
self.assertTrue(patches[1].get_absolute_url() in msg.body)
def testUnexpiredNotificationMerge(self):
#.........这里部分代码省略.........