Skip to content

Instantly share code, notes, and snippets.

@josharian
Created December 9, 2011 22:38

Revisions

  1. josharian created this gist Dec 9, 2011.
    27 changes: 27 additions & 0 deletions django_sleep.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,27 @@
    """
    This module provides very simple Django middleware that sleeps on every request.
    This is useful when you want to simulate slow response times (as might be
    encountered, say, on a cell network).
    To use, add this middleware, and add a value for SLEEP_TIME to your settings.
    Possible future feature: Look for an X-Django-Sleep header on each request,
    to let the client specify per-request sleep time.
    """

    import time

    import django.conf
    import django.core.exceptions


    class SleepMiddleware(object):

    def __init__(self):
    self.sleep_time = getattr(django.conf.settings, "SLEEP_TIME", 0)
    if not isinstance(self.sleep_time, (int, float)) or self.sleep_time <= 0:
    raise django.core.exceptions.MiddlewareNotUsed

    def process_request(self, request):
    time.sleep(self.sleep_time)