author | Pawel Solyga <Pawel.Solyga@gmail.com> |
Tue, 04 Nov 2008 20:06:36 +0000 | |
changeset 442 | 92c17629af0e |
parent 419 | e9280ea935e4 |
permissions | -rw-r--r-- |
419
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
1 |
from nose import tools |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
2 |
|
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
3 |
from google.appengine.api import users |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
4 |
from soc.views import simple |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
5 |
from soc.logic.site import page |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
6 |
from soc.views.helper import responses |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
7 |
from soc.models import user |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
8 |
|
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
9 |
from tests import test_utils |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
10 |
|
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
11 |
def mockRespond(request, template, context=None, response_args=None): |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
12 |
"""Mock implementation of respond that passes variables through. |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
13 |
""" |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
14 |
return request, template, context, response_args |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
15 |
|
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
16 |
|
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
17 |
orig_respond = responses.respond |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
18 |
def setup(): |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
19 |
responses.respond = mockRespond |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
20 |
|
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
21 |
|
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
22 |
def teardown(): |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
23 |
responses.respond = orig_respond |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
24 |
|
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
25 |
|
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
26 |
def test_public_without_user(): |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
27 |
r = test_utils.MockRequest() |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
28 |
inbound_ctx = {'foo': 'bar', } |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
29 |
our_page = page.Page(page.Url('/', lambda r: None, name='Home'), 'Home', |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
30 |
'Home') |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
31 |
(req, template, context, |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
32 |
respond_args, ) = simple.public(r, our_page, context=dict(inbound_ctx), |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
33 |
link_name='testuser') |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
34 |
tools.eq_(req, r) |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
35 |
tools.eq_(inbound_ctx['foo'], context['foo']) |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
36 |
tools.assert_not_equal(inbound_ctx, context) |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
37 |
tools.eq_(context['page'], our_page) |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
38 |
tools.eq_(context['error_status'], 404) |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
39 |
tools.eq_(context['error_message'], ('There is no user with a "link name" ' |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
40 |
'of "testuser".')) |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
41 |
|
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
42 |
|
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
43 |
def test_public_with_user(): |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
44 |
r = test_utils.MockRequest() |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
45 |
inbound_ctx = {'foo': 'bar', } |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
46 |
our_page = page.Page(page.Url('/', lambda r: None, name='Home'), 'Home', |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
47 |
'Home') |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
48 |
u = user.User(link_name='testuser', |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
49 |
nick_name='Test User!', |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
50 |
id=users.User('foo@bar.com')) |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
51 |
u.save() |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
52 |
(req, template, context, |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
53 |
respond_args, ) = simple.public(r, our_page, context=dict(inbound_ctx), |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
54 |
link_name='testuser') |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
55 |
tools.eq_(req, r) |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
56 |
tools.eq_(inbound_ctx['foo'], context['foo']) |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
57 |
tools.assert_not_equal(inbound_ctx, context) |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
58 |
tools.eq_(context['page'], our_page) |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
59 |
assert 'error_status' not in context |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
60 |
assert 'error_message' not in context |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
61 |
tools.eq_(context['link_name'], 'testuser') |
e9280ea935e4
Start a test system for the webapp itself.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
62 |
tools.eq_(context['link_name_user'].id, u.id) |