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
48
self.scripts_init = []
49
self.request_body = ''
50
self.response_body = ''
51
# In some cases we don't want the template JS (such as the username
52
# and public FQDN) in the output HTML. In that case, set this to 0.
53
self.write_javascript_settings = True
54
self.got_common_vars = False
57
'''Cleanup, but don't close the nonexistent store.'''
58
if self.store is not None:
61
def ensure_headers_written(self):
62
'''Fake a write of the HTTP and HTML headers if they haven't already
66
def read(self, len=None):
68
data = self.request_body
69
self.request_body = ''
71
data = self.request_body[:len]
72
self.request_body = self.request_body[len:]
75
def write(self, string, flush=1):
76
'''Write a string to the internal output storage.'''
77
self.ensure_headers_written()
78
if isinstance(string, unicode):
79
self.response_body += string.encode('utf8')
81
self.response_body += string