def test_returns_list_of_all_users(self):
     from cody.views.users import index
     from cody.models import DBSession, User
     session = DBSession()
     session.add(User())
     session.add(User())
     session.add(User())
     request = testing.DummyRequest()
     response = index(request)
     self.assertEqual(type(response), dict)
     self.assertTrue('users' in response)
     self.assertEqual(response['users'].count(), 3)
def create(request):
    """Receives data to register a user."""
    # TODO workshop: validation
    # TODO workshop: encrypt password
    username = request.params['username']
    password = request.params['password']
    name = request.params['name']
    email = request.params['email']
    location = request.params['location']
    user = User(username, password, name, email, location)
    session = DBSession()
    session.add(user)
    session.flush()
    # TODO workshop: test email by mocking
    send_welcome_email(request.registry.settings, name, email)
    response = HTTPFound(route_url('user_single', request, user_id=user.id))
    # totally insecure, TODO in workshop: use auth token or something
    response.set_cookie('user_id', str(user.id), max_age=timedelta(30))
    return response