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