3
from ivle.database import User
4
from ivle.dispatch.request import Request
14
last_login = datetime.datetime.now()
15
svn_pass = u'somepass'
16
email = u'fakeuser@example.com'
17
fullname = u'Fake Fixture User'
20
class FakeRequest(Request):
21
'''A fake request object, for use as a fixture in tests.
23
This tries to behave fairly closely to an ivle.dispatch.request.Request,
24
but without needing a web server.
27
'''Set sane defaults.'''
29
# Some fields are omitted because they make no sense in the new model.
30
self.headers_written = False
31
self.publicmode = False
34
self.user = FakeUser()
35
self.hostname = 'fakehost'
39
# We don't want DB access in tests (by default)
42
# Default values for the output members
43
self.status = Request.HTTP_OK
44
self.content_type = None # Use Apache's default
46
self.title = None # Will be set by dispatch before passing to app
49
self.scripts_init = []
50
self.write_html_head_foot = False
51
self.request_body = ''
52
self.response_body = ''
53
# In some cases we don't want the template JS (such as the username
54
# and public FQDN) in the output HTML. In that case, set this to 0.
55
self.write_javascript_settings = True
56
self.got_common_vars = False
59
'''Cleanup, but don't close the nonexistent store.'''
60
if self.store is not None:
63
def ensure_headers_written(self):
64
'''Fake a write of the HTTP and HTML headers if they haven't already
68
def read(self, len=None):
70
data = self.request_body
71
self.request_body = ''
73
data = self.request_body[:len]
74
self.request_body = self.request_body[len:]
77
def write(self, string, flush=1):
78
'''Write a string to the internal output storage.'''
79
self.ensure_headers_written()
80
if isinstance(string, unicode):
81
self.response_body += string.encode('utf8')
83
self.response_body += string