tests/app/soc/views/test_simple.py
author Sverre Rabbelier <srabbelier@gmail.com>
Mon, 17 Nov 2008 00:01:59 +0000
changeset 497 73666a7cd718
parent 419 e9280ea935e4
permissions -rw-r--r--
Added a default _editSeed method Also added the invite shortcut in the host view.

from nose import tools

from google.appengine.api import users
from soc.views import simple
from soc.logic.site import page
from soc.views.helper import responses
from soc.models import user

from tests import test_utils

def mockRespond(request, template, context=None, response_args=None):
  """Mock implementation of respond that passes variables through.
  """
  return request, template, context, response_args


orig_respond = responses.respond
def setup():
  responses.respond = mockRespond


def teardown():
  responses.respond = orig_respond


def test_public_without_user():
  r = test_utils.MockRequest()
  inbound_ctx = {'foo': 'bar', }
  our_page = page.Page(page.Url('/', lambda r: None, name='Home'), 'Home',
                       'Home')
  (req, template, context,
   respond_args, ) = simple.public(r, our_page, context=dict(inbound_ctx),
                                   link_name='testuser')
  tools.eq_(req, r)
  tools.eq_(inbound_ctx['foo'], context['foo'])
  tools.assert_not_equal(inbound_ctx, context)
  tools.eq_(context['page'], our_page)
  tools.eq_(context['error_status'], 404)
  tools.eq_(context['error_message'], ('There is no user with a "link name" '
                                       'of "testuser".'))


def test_public_with_user():
  r = test_utils.MockRequest()
  inbound_ctx = {'foo': 'bar', }
  our_page = page.Page(page.Url('/', lambda r: None, name='Home'), 'Home',
                       'Home')
  u = user.User(link_name='testuser',
                nick_name='Test User!',
                id=users.User('foo@bar.com'))
  u.save()
  (req, template, context,
   respond_args, ) = simple.public(r, our_page, context=dict(inbound_ctx),
                                   link_name='testuser')
  tools.eq_(req, r)
  tools.eq_(inbound_ctx['foo'], context['foo'])
  tools.assert_not_equal(inbound_ctx, context)
  tools.eq_(context['page'], our_page)
  assert 'error_status' not in context
  assert 'error_message' not in context
  tools.eq_(context['link_name'], 'testuser')
  tools.eq_(context['link_name_user'].id, u.id)