tests: add tests for failed requests handling by publisher
This commit is contained in:
parent
05ad28a807
commit
a17d8db46c
|
@ -0,0 +1,76 @@
|
|||
import re
|
||||
import sys
|
||||
import shutil
|
||||
|
||||
from quixote import cleanup
|
||||
from wcs.qommon.http_request import HTTPRequest
|
||||
|
||||
from utilities import create_temporary_pub
|
||||
|
||||
def setup_module(module):
|
||||
cleanup()
|
||||
global pub
|
||||
pub = create_temporary_pub()
|
||||
|
||||
|
||||
def teardown_module(module):
|
||||
shutil.rmtree(pub.APP_DIR)
|
||||
|
||||
def get_request():
|
||||
return HTTPRequest(None, {
|
||||
'SERVER_NAME': 'www.example.net',
|
||||
'SCRIPT_NAME': '',
|
||||
})
|
||||
|
||||
def test_plaintext_error():
|
||||
req = get_request()
|
||||
pub._set_request(req)
|
||||
try:
|
||||
raise Exception('foo')
|
||||
except:
|
||||
exc_type, exc_value, tb = sys.exc_info()
|
||||
req.form = {'foo': 'bar'}
|
||||
s = pub._generate_plaintext_error(req, None, exc_type, exc_value, tb)
|
||||
assert re.findall('^foo.*bar', s, re.MULTILINE)
|
||||
assert re.findall('^SERVER_NAME.*www.example.net', s, re.MULTILINE)
|
||||
assert re.findall('File.*?line.*?in test_plaintext_error', s)
|
||||
assert re.findall('^>.*\d+.*s = pub._generate_plaintext_error', s, re.MULTILINE)
|
||||
|
||||
pub.USE_LONG_TRACES = False
|
||||
s = pub._generate_plaintext_error(req, None, exc_type, exc_value, tb)
|
||||
assert re.findall('^foo.*bar', s, re.MULTILINE)
|
||||
assert re.findall('^SERVER_NAME.*www.example.net', s, re.MULTILINE)
|
||||
assert re.findall('File.*?line.*?in test_plaintext_error', s)
|
||||
assert not re.findall('^>.*\d+.*s = pub._generate_plaintext_error', s, re.MULTILINE)
|
||||
|
||||
def test_finish_failed_request():
|
||||
req = get_request()
|
||||
pub._set_request(req)
|
||||
body = pub.finish_failed_request()
|
||||
assert '<h1>Internal Server Error</h1>' in body
|
||||
|
||||
req = get_request()
|
||||
pub._set_request(req)
|
||||
req.form = {'format': 'json'}
|
||||
body = pub.finish_failed_request()
|
||||
assert body == '{"err": 1}'
|
||||
|
||||
req = get_request()
|
||||
pub.config.display_exceptions = 'text'
|
||||
pub._set_request(req)
|
||||
try:
|
||||
raise Exception()
|
||||
except:
|
||||
body = pub.finish_failed_request()
|
||||
assert 'Traceback (most recent call last)' in str(body)
|
||||
assert '<div class="error-page">' not in str(body)
|
||||
|
||||
req = get_request()
|
||||
pub.config.display_exceptions = 'text-in-html'
|
||||
pub._set_request(req)
|
||||
try:
|
||||
raise Exception()
|
||||
except:
|
||||
body = pub.finish_failed_request()
|
||||
assert 'Traceback (most recent call last)' in str(body)
|
||||
assert '<div class="error-page">' in str(body)
|
Loading…
Reference in New Issue