Files
@ 2d469bb39893
Branch filter:
Location: symposion_app/registrasion/tests/patches.py - annotation
2d469bb39893
1.3 KiB
text/x-python
One more addition.
d9e433659d01 d9e433659d01 155f6d42d9f3 224878a10ce3 64ca477cb89a d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 d9e433659d01 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 155f6d42d9f3 | from django.utils import timezone
from registrasion.contrib import mail
class SetTimeMixin(object):
''' Patches timezone.now() for the duration of a test case. Allows us to
test time-based conditions (ceilings etc) relatively easily. '''
def setUp(self):
super(SetTimeMixin, self).setUp()
self._old_timezone_now = timezone.now
self.now = timezone.now()
timezone.now = self.new_timezone_now
def tearDown(self):
timezone.now = self._old_timezone_now
super(SetTimeMixin, self).tearDown()
def set_time(self, time):
self.now = time
def add_timedelta(self, delta):
self.now += delta
def new_timezone_now(self):
return self.now
class SendEmailMixin(object):
def setUp(self):
super(SendEmailMixin, self).setUp()
self._old_sender = mail.__send_email__
mail.__send_email__ = self._send_email
self.emails = []
def _send_email(self, template_prefix, to, kind, **kwargs):
args = {"to": to, "kind": kind}
args.update(kwargs)
self.emails.append(args)
def tearDown(self):
mail.__send_email__ = self._old_sender
super(SendEmailMixin, self).tearDown()
class MixInPatches(SetTimeMixin, SendEmailMixin):
pass
|