11283Szelenkov@nginx.comclass application: 21283Szelenkov@nginx.com def __init__(self, environ, start_response): 31283Szelenkov@nginx.com self.environ = environ 41283Szelenkov@nginx.com self.start = start_response 51283Szelenkov@nginx.com 61283Szelenkov@nginx.com self.next = self.__next__ 71283Szelenkov@nginx.com 81283Szelenkov@nginx.com def __iter__(self): 91283Szelenkov@nginx.com self.__i = 0 101283Szelenkov@nginx.com self._skip_level = int(self.environ.get('HTTP_X_SKIP', 0)) 11*1848Szelenkov@nginx.com self._not_skip_close = int( 12*1848Szelenkov@nginx.com self.environ.get('HTTP_X_NOT_SKIP_CLOSE', 0) 13*1848Szelenkov@nginx.com ) 141283Szelenkov@nginx.com self._is_chunked = self.environ.get('HTTP_X_CHUNKED') 151283Szelenkov@nginx.com 161283Szelenkov@nginx.com headers = [(('Content-Length', '10'))] 171283Szelenkov@nginx.com if self._is_chunked is not None: 181283Szelenkov@nginx.com headers = [] 191283Szelenkov@nginx.com 201283Szelenkov@nginx.com if self._skip_level < 1: 211283Szelenkov@nginx.com raise Exception('first exception') 221283Szelenkov@nginx.com 231283Szelenkov@nginx.com write = self.start('200', headers) 241283Szelenkov@nginx.com 251283Szelenkov@nginx.com if self._skip_level < 2: 261283Szelenkov@nginx.com raise Exception('second exception') 271283Szelenkov@nginx.com 281283Szelenkov@nginx.com write(b'XXXXX') 291283Szelenkov@nginx.com 301283Szelenkov@nginx.com if self._skip_level < 3: 311283Szelenkov@nginx.com raise Exception('third exception') 321283Szelenkov@nginx.com 331283Szelenkov@nginx.com return self 341283Szelenkov@nginx.com 351283Szelenkov@nginx.com def __next__(self): 361283Szelenkov@nginx.com if self._skip_level < 4: 371283Szelenkov@nginx.com raise Exception('next exception') 381283Szelenkov@nginx.com 391283Szelenkov@nginx.com self.__i += 1 401283Szelenkov@nginx.com if self.__i > 2: 411283Szelenkov@nginx.com raise StopIteration 421283Szelenkov@nginx.com 431283Szelenkov@nginx.com return b'X' 441283Szelenkov@nginx.com 451283Szelenkov@nginx.com def close(self): 461283Szelenkov@nginx.com if self._not_skip_close == 1: 471283Szelenkov@nginx.com raise Exception('close exception') 48