tests/app/soc/views/test_simple.py
changeset 419 e9280ea935e4
equal deleted inserted replaced
418:e035f31d131e 419:e9280ea935e4
       
     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)