예제 #1
0
 def test_root_routes(self):
     """ Test the routes of the `root` views."""
     request = AnuketDummyRequest()
     self.assertEqual(request.route_path('home'), '/')
     self.assertEqual(request.route_path('about'), '/about')
     self.assertEqual(request.route_path('login'), '/login')
     self.assertEqual(request.route_path('logout'), '/logout')
예제 #2
0
 def test_root_routes(self):
     """ Test the routes of the `root` views."""
     request = AnuketDummyRequest()
     self.assertEqual(request.route_path('home'), '/')
     self.assertEqual(request.route_path('about'), '/about')
     self.assertEqual(request.route_path('login'), '/login')
     self.assertEqual(request.route_path('logout'), '/logout')
예제 #3
0
 def test_user_add_view_not_validated(self):
     """ Test the response of the `user_add` view not validated."""
     from anuket.views.user import user_add_view
     request = AnuketDummyRequest()
     request.method = 'POST'  # required for form.validate()
     request.params['form_submitted'] = u''
     response = user_add_view(request)
     from pyramid_simpleform.renderers import FormRenderer
     self.assertIsInstance(response['renderer'], FormRenderer)
예제 #4
0
 def test_user_add_view_not_validated(self):
     """ Test the response of the `user_add` view not validated."""
     from anuket.views.user import user_add_view
     request = AnuketDummyRequest()
     request.method = 'POST'  # required for form.validate()
     request.params['form_submitted'] = u''
     response = user_add_view(request)
     from pyramid_simpleform.renderers import FormRenderer
     self.assertIsInstance(response['renderer'], FormRenderer)
예제 #5
0
 def test_user_list_view_with_sort(self):
     """ Test the response of the `user_list` view with a column sort."""
     self.dummy_user_fixture()
     from anuket.views.user import user_list_view
     request = AnuketDummyRequest()
     request.method = 'POST'
     request.params['sort'] = 'username'
     response = user_list_view(request)
     from webhelpers.paginate import Page
     self.assertIsInstance(response['users'], Page)
예제 #6
0
 def test_user_list_view_with_sort(self):
     """ Test the response of the `user_list` view with a column sort."""
     self.dummy_user_fixture()
     from anuket.views.user import user_list_view
     request = AnuketDummyRequest()
     request.method = 'POST'
     request.params['sort'] = 'username'
     response = user_list_view(request)
     from webhelpers.paginate import Page
     self.assertIsInstance(response['users'], Page)
예제 #7
0
 def test_user_show_view(self):
     """ Test the response of the `user_show` view."""
     self.dummy_user_fixture()
     from anuket.views.user import user_show_view
     request = AnuketDummyRequest()
     request.matchdict = {'user_id': 1}
     response = user_show_view(request)
     from anuket.models.auth import AuthUser
     user = AuthUser.get_by_id(1)
     self.assertIsInstance(response['user'], AuthUser)
     self.assertEqual(response['user'], user)
예제 #8
0
 def test_user_delete_view(self):
     """ Test the response of the `user_delete` view."""
     self.dummy_user_fixture()
     from anuket.views.user import user_delete_view
     request = AnuketDummyRequest()
     request.matchdict = {'user_id': 1}
     request.referer = '/tools/user'
     response = user_delete_view(request)
     self.assertEqual(response.location, '/tools/user')
     self.assertEqual(request.session.pop_flash('warn')[0],
                      u"User deleted.")
예제 #9
0
 def test_user_show_view(self):
     """ Test the response of the `user_show` view."""
     self.dummy_user_fixture()
     from anuket.views.user import user_show_view
     request = AnuketDummyRequest()
     request.matchdict = {'user_id': 1}
     response = user_show_view(request)
     from anuket.models.auth import AuthUser
     user = AuthUser.get_by_id(1)
     self.assertIsInstance(response['user'], AuthUser)
     self.assertEqual(response['user'], user)
예제 #10
0
 def test_user_delete_view(self):
     """ Test the response of the `user_delete` view."""
     self.dummy_user_fixture()
     from anuket.views.user import user_delete_view
     request = AnuketDummyRequest()
     request.matchdict = {'user_id': 1}
     request.referer = '/tools/user'
     response = user_delete_view(request)
     self.assertEqual(response.location, '/tools/user')
     self.assertEqual(
         request.session.pop_flash('warn')[0], u"User deleted.")
예제 #11
0
 def test_password_edit_view_not_validated(self):
     """ Test the response of the `password_edit` view not validated."""
     self.dummy_user_fixture()
     from anuket.views.user import password_edit_view
     request = AnuketDummyRequest()
     request.matchdict = {'user_id': 1}
     request.method = 'POST'  # required for form.validate()
     request.params['form_submitted'] = u''
     response = password_edit_view(request)
     from pyramid_simpleform.renderers import FormRenderer
     self.assertIsInstance(response['renderer'], FormRenderer)
예제 #12
0
 def test_password_edit_view_not_validated(self):
     """ Test the response of the `password_edit` view not validated."""
     self.dummy_user_fixture()
     from anuket.views.user import password_edit_view
     request = AnuketDummyRequest()
     request.matchdict = {'user_id': 1}
     request.method = 'POST'  # required for form.validate()
     request.params['form_submitted'] = u''
     response = password_edit_view(request)
     from pyramid_simpleform.renderers import FormRenderer
     self.assertIsInstance(response['renderer'], FormRenderer)
예제 #13
0
 def test_password_edit_view_not_exist(self):
     """ Test the response of the `password_edit` view with a non
     existent `user_id`.
     """
     self.dummy_user_fixture()
     from anuket.views.user import password_edit_view
     request = AnuketDummyRequest()
     request.matchdict = {'user_id': 0}
     response = password_edit_view(request)
     self.assertEqual(response.location, '/tools/user')
     self.assertEqual(
         request.session.pop_flash('error')[0], u"This user did not exist!")
예제 #14
0
 def test_password_edit_view_not_exist(self):
     """ Test the response of the `password_edit` view with a non
     existent `user_id`.
     """
     self.dummy_user_fixture()
     from anuket.views.user import password_edit_view
     request = AnuketDummyRequest()
     request.matchdict = {'user_id': 0}
     response = password_edit_view(request)
     self.assertEqual(response.location, '/tools/user')
     self.assertEqual(request.session.pop_flash('error')[0],
                      u"This user did not exist!")
예제 #15
0
 def test_user_delete_view_of_only_admin_is_forbiden(self):
     """ Test the response of the `user_delete` view wile trying to
     delete the only admin user.
     """
     self.admin_user_fixture()
     from anuket.views.user import user_delete_view
     request = AnuketDummyRequest()
     request.matchdict = {'user_id': 1}
     request.referer = '/tools/user'
     response = user_delete_view(request)
     self.assertEqual(response.location, '/tools/user')
     self.assertEqual(request.session.pop_flash('error')[0],
                      u"Deletion of the only admin forbidden!")
예제 #16
0
 def test_user_list_view_with_empty_search(self):
     """ Test the response of the `user_list` view with a search who have an
     empty result.
     """
     self.dummy_user_fixture()
     from anuket.views.user import user_list_view
     request = AnuketDummyRequest()
     request.method = 'POST'
     request.params['search'] = u'donotfoundme'
     response = user_list_view(request)
     from webhelpers.paginate import Page
     self.assertIsInstance(response['users'], Page)
     self.assertEqual(
         request.session.pop_flash('error')[0], u"There is no results!")
예제 #17
0
 def test_user_list_view_with_empty_search(self):
     """ Test the response of the `user_list` view with a search who have an
     empty result.
     """
     self.dummy_user_fixture()
     from anuket.views.user import user_list_view
     request = AnuketDummyRequest()
     request.method = 'POST'
     request.params['search'] = u'donotfoundme'
     response = user_list_view(request)
     from webhelpers.paginate import Page
     self.assertIsInstance(response['users'], Page)
     self.assertEqual(request.session.pop_flash('error')[0],
                      u"There is no results!")
예제 #18
0
 def test_login_view_valid_credentials(self):
     """ Test the response of the `login_view` with valid credentials."""
     # no crsf_token check because the suscribers are not activated
     from anuket.views.root import login_view
     self.dummy_user_fixture()
     request = AnuketDummyRequest()
     request.method = 'POST'  # required for form.validate()
     request.params['form_submitted'] = u''
     request.params['username'] = u'username'
     request.params['password'] = u'password'
     response = login_view(request)
     self.assertEqual(response.location, '/')
     self.assertEqual(request.session.pop_flash('success')[0],
                      u"Successful login.")
예제 #19
0
 def test_login_view_wrong_credentials(self):
     """ Test the response of the `login_view` with wrong credentials."""
     # no crsf_token check because the suscribers are not activated
     from anuket.views.root import login_view
     self.dummy_user_fixture()
     request = AnuketDummyRequest()
     request.method = 'POST'  # required for form.validate()
     request.params['form_submitted'] = u''
     request.params['username'] = u'wrong_user'
     request.params['password'] = u'wrong_pass'
     response = login_view(request)
     self.assertIsNotNone(response['renderer'])
     self.assertEqual(request.session.pop_flash('error')[0],
                     u"Check your login credentials!")
예제 #20
0
 def test_user_delete_view_without_referer_is_forbiden(self):
     """ test the response of the `user_delete` view wile trying to
     directly delete an user (with no referer).
     """
     self.config.include('anuket.views.root')  # register the `root` routes
     self.dummy_user_fixture()
     from anuket.views.user import user_delete_view
     request = AnuketDummyRequest()
     request.matchdict = {'user_id': 1}
     request.referer = None
     response = user_delete_view(request)
     self.assertEqual(response.location, '/')
     self.assertEqual(request.session.pop_flash('error')[0],
                      u"Insufficient permissions!")
예제 #21
0
 def test_user_delete_view_of_only_admin_is_forbiden(self):
     """ Test the response of the `user_delete` view wile trying to
     delete the only admin user.
     """
     self.admin_user_fixture()
     from anuket.views.user import user_delete_view
     request = AnuketDummyRequest()
     request.matchdict = {'user_id': 1}
     request.referer = '/tools/user'
     response = user_delete_view(request)
     self.assertEqual(response.location, '/tools/user')
     self.assertEqual(
         request.session.pop_flash('error')[0],
         u"Deletion of the only admin forbidden!")
예제 #22
0
 def test_user_delete_view_without_referer_is_forbiden(self):
     """ test the response of the `user_delete` view wile trying to
     directly delete an user (with no referer).
     """
     self.config.include('anuket.views.root')  # register the `root` routes
     self.dummy_user_fixture()
     from anuket.views.user import user_delete_view
     request = AnuketDummyRequest()
     request.matchdict = {'user_id': 1}
     request.referer = None
     response = user_delete_view(request)
     self.assertEqual(response.location, '/')
     self.assertEqual(
         request.session.pop_flash('error')[0],
         u"Insufficient permissions!")
예제 #23
0
 def test_forbiden_view_non_logged(self):
     """ Test the response of the `forbiden_view` for non-logged users."""
     from anuket.views.root import forbiden_view
     request = AnuketDummyRequest(auth_user=None)
     response = forbiden_view(request)
     self.assertEqual(response.location, '/login')
     self.assertEqual(
         request.session.pop_flash('error')[0], u'You are not connected.')
예제 #24
0
 def test_user_list_view(self):
     """ Test the response of the `user_list` view."""
     self.dummy_user_fixture()
     from anuket.views.user import user_list_view
     request = AnuketDummyRequest()
     response = user_list_view(request)
     from webhelpers.paginate import Page
     self.assertIsInstance(response['users'], Page)
예제 #25
0
    def test_locale_negotiator(self):
        """ Test the `locale_negociator` function."""
        from anuket.lib.i18n import locale_negotiator

        request = AnuketDummyRequest()
        request.registry.settings.update(self.settings)
        locale = locale_negotiator(request)
        # test the default locale
        self.assertEqual(locale, 'en')
예제 #26
0
 def test_user_edit_view(self):
     """ Test the response of the `user_edit` view."""
     self.dummy_user_fixture()
     from anuket.views.user import user_edit_view
     request = AnuketDummyRequest()
     request.matchdict = {'user_id': 1}
     request.method = 'POST'  # required for form.validate()
     request.params['form_submitted'] = u''
     request.params['user_id'] = 1
     request.params['username'] = u'username'
     request.params['first_name'] = u'firstname'
     request.params['last_name'] = u'lastname'
     request.params['email'] = u'*****@*****.**'
     request.params['group_id'] = 1
     response = user_edit_view(request)
     self.assertEqual(response.location, '/tools/user')
     self.assertEqual(request.session.pop_flash('success')[0],
                      u"User updated.")
예제 #27
0
 def test_logout_view(self):
     """ Test the response of the `logout_view`."""
     from anuket.views.root import logout_view
     request = AnuketDummyRequest()
     response = logout_view(request)
     self.assertEqual(response.location, '/')
     self.assertEqual(
         request.session.pop_flash('info')[0],
         u"You have been disconnected.")
예제 #28
0
 def test_forbiden_view_logged(self):
     """ Test the response of the `forbiden_view` for logged users."""
     from anuket.views.root import forbiden_view
     request = AnuketDummyRequest(auth_user='******')
     response = forbiden_view(request)
     self.assertEqual(response.location, '/')
     self.assertEqual(
         request.session.pop_flash('error')[0],
         u'Insufficient permissions!')
예제 #29
0
 def test_login_view_non_logged(self):
     """ Test the response of the `login_view` for non-logged users."""
     from anuket.views.root import login_view
     request = AnuketDummyRequest()
     response = login_view(request)
     self.assertIsNotNone(response['renderer'])
     # no flash message yet for non-logged users
     self.assertEqual(len(request.session.pop_flash('info')), 0)
     self.assertEqual(len(request.session.pop_flash('error')), 0)
예제 #30
0
    def test_get_auth_user(self):
        """ Test the `get_auth_user` function."""
        user = self.dummy_user_fixture()
        from anuket.security import get_auth_user
        request = AnuketDummyRequest()

        from pyramid.interfaces import IAuthenticationPolicy
        policy = DummyAuthenticationPolicy(user.user_id)
        request.registry.registerUtility(policy, IAuthenticationPolicy)

        auth_user = get_auth_user(request)
        self.assertEqual(auth_user, user)
예제 #31
0
 def test_user_routes(self):
     """ Test the route of the `user` view."""
     request = AnuketDummyRequest()
     self.assertEqual(request.route_path('tools.user_list'), '/tools/user')
     self.assertEqual(request.route_path('tools.user_add'),
                      '/tools/user/add')
     self.assertEqual(request.route_path('tools.user_show', user_id=1),
                      '/tools/user/1/show')
     self.assertEqual(request.route_path('tools.user_edit', user_id=1),
                      '/tools/user/1/edit')
     self.assertEqual(request.route_path('tools.user_delete', user_id=1),
                      '/tools/user/1/delete')
     self.assertEqual(request.route_path('tools.password_edit', user_id=1),
                      '/tools/user/1/password')
예제 #32
0
 def test_password_edit_view(self):
     """ Test the response of the `password_edit` view."""
     self.dummy_user_fixture()
     password = self.password_fixture()
     from anuket.views.user import password_edit_view
     request = AnuketDummyRequest()
     request.matchdict = {'user_id': 1}
     request.method = 'POST'  # required for form.validate()
     request.params['form_submitted'] = u''
     request.params['user_id'] = 1
     request.params['password'] = password
     request.params['password_confirm'] = password
     response = password_edit_view(request)
     self.assertEqual(response.location, '/tools/user')
     self.assertEqual(
         request.session.pop_flash('success')[0], u"Password updated.")
예제 #33
0
 def test_user_routes(self):
     """ Test the route of the `user` view."""
     request = AnuketDummyRequest()
     self.assertEqual(request.route_path('tools.user_list'), '/tools/user')
     self.assertEqual(request.route_path('tools.user_add'),
                      '/tools/user/add')
     self.assertEqual(request.route_path('tools.user_show', user_id=1),
                      '/tools/user/1/show')
     self.assertEqual(request.route_path('tools.user_edit', user_id=1),
                      '/tools/user/1/edit')
     self.assertEqual(request.route_path('tools.user_delete', user_id=1),
                      '/tools/user/1/delete')
     self.assertEqual(request.route_path('tools.password_edit', user_id=1),
                      '/tools/user/1/password')
예제 #34
0
 def test_password_edit_view(self):
     """ Test the response of the `password_edit` view."""
     self.dummy_user_fixture()
     password = self.password_fixture()
     from anuket.views.user import password_edit_view
     request = AnuketDummyRequest()
     request.matchdict = {'user_id': 1}
     request.method = 'POST'  # required for form.validate()
     request.params['form_submitted'] = u''
     request.params['user_id'] = 1
     request.params['password'] = password
     request.params['password_confirm'] = password
     response = password_edit_view(request)
     self.assertEqual(response.location, '/tools/user')
     self.assertEqual(request.session.pop_flash('success')[0],
                      u"Password updated.")
예제 #35
0
 def test_login_view_valid_credentials(self):
     """ Test the response of the `login_view` with valid credentials."""
     # no crsf_token check because the suscribers are not activated
     from anuket.views.root import login_view
     self.dummy_user_fixture()
     request = AnuketDummyRequest()
     request.method = 'POST'  # required for form.validate()
     request.params['form_submitted'] = u''
     request.params['username'] = u'username'
     request.params['password'] = u'password'
     response = login_view(request)
     self.assertEqual(response.location, '/')
     self.assertEqual(
         request.session.pop_flash('success')[0], u"Successful login.")
예제 #36
0
 def test_login_view_wrong_credentials(self):
     """ Test the response of the `login_view` with wrong credentials."""
     # no crsf_token check because the suscribers are not activated
     from anuket.views.root import login_view
     self.dummy_user_fixture()
     request = AnuketDummyRequest()
     request.method = 'POST'  # required for form.validate()
     request.params['form_submitted'] = u''
     request.params['username'] = u'wrong_user'
     request.params['password'] = u'wrong_pass'
     response = login_view(request)
     self.assertIsNotNone(response['renderer'])
     self.assertEqual(
         request.session.pop_flash('error')[0],
         u"Check your login credentials!")
예제 #37
0
 def test_tools_routes(self):
     """ Test the routes of the `tools` view."""
     request = AnuketDummyRequest()
     self.assertEqual(request.route_path('tools.index'), '/tools')
예제 #38
0
 def test_root_view(self):
     """ Test the response of the `root_view`."""
     from anuket.views.root import root_view
     request = AnuketDummyRequest()
     response = root_view(request)
     self.assertEqual(response, {})
예제 #39
0
 def test_tools_view(self):
     """ Test the response of the `tools_index_view`."""
     from anuket.views.tools import tools_index_view
     request = AnuketDummyRequest()
     response = tools_index_view(request)
     self.assertEqual(response, {})
예제 #40
0
 def test_user_add_view(self):
     """ Test the response of the `user_add` view."""
     self.dummy_group_fixture()
     password = self.password_fixture()
     from anuket.views.user import user_add_view
     request = AnuketDummyRequest()
     request.method = 'POST'  # required for form.validate()
     request.params['form_submitted'] = u''
     request.params['username'] = u'username'
     request.params['first_name'] = u'firstname'
     request.params['last_name'] = u'lastname'
     request.params['email'] = u'*****@*****.**'
     request.params['group_id'] = 1
     request.params['password'] = password
     request.params['password_confirm'] = password
     response = user_add_view(request)
     self.assertEqual(response.location, '/tools/user')
     self.assertEqual(
         request.session.pop_flash('success')[0], u"User added.")
예제 #41
0
 def test_tools_routes(self):
     """ Test the routes of the `tools` view."""
     request = AnuketDummyRequest()
     self.assertEqual(request.route_path('tools.index'), '/tools')