def test_range_and_mode(self):
        """
        test parsing of environ dictionary
        """
        environ = {}
        environ['QUERY_STRING'] = 'range=10&mode=file'
        id_range, id_mode = range_and_mode(environ)
        self.assertEqual(id_range, 10)
        self.assertEqual(id_mode, 'file')

        environ['QUERY_STRING'] = 'rage=10&mode=file'
        id_range, id_mode = range_and_mode(environ)
        self.assertEqual(id_range, None)
        self.assertEqual(id_mode, None)

        environ['BEERY_STRING'] = 'range=10&mode=file'
        id_range, id_mode = range_and_mode(environ)
        self.assertEqual(id_range, None)
        self.assertEqual(id_mode, None)
def application(environ, start_response):
    """
    The wsgi callback
    """
    try:
        # catch and handle bogus requests (ex. faveicon)
        valid = valid_request(environ)
        if not valid:
            status, response_headers, response_body = create_invalid_return()
            start_response(status, response_headers)
            return [response_body]

        # get the index range and index mode from the query string
        id_range, id_mode = range_and_mode(environ)

        # get the new unique end index
        if id_range and id_mode:
            UniqueIndex.database_connect()
            index, id_range = update_index(id_range, id_mode)
            UniqueIndex.database_close()
            if index and id_range:
                # create the response with start and end indices
                status, response_headers, response_body = create_valid_return(index, id_range)

                # send it back to the requestor
                start_response(status, response_headers)
                return [response_body]

        # something bad
        status, response_headers, response_body = create_invalid_return()
        start_response(status, response_headers)
        return [response_body]
    except peewee.OperationalError, ex:
        peewee_logger = logging.getLogger("peewee")
        peewee_logger.setLevel(logging.DEBUG)
        peewee_logger.addHandler(logging.StreamHandler())
        peewee_logger.warn("OperationalError(%s)", str(ex))