Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_search(self):
from kotti.views.users import users_manage
root = get_root()
request = DummyRequest()
P = get_principals()
TestNodeShare.add_some_principals()
request.params['search'] = u''
request.params['query'] = u'Joe'
entries = users_manage(root, request)['entries']
self.assertEqual(len(entries), 0)
self.assertEqual(request.session.pop_flash('notice'),
[u'No users or groups found.'])
request.params['query'] = u'Bob'
entries = users_manage(root, request)['entries']
self.assertEqual(entries[0][0], P['bob'])
self.assertEqual(entries[0][1], ([], []))
self.assertEqual(entries[1][0], P['group:bobsgroup'])
self.assertEqual(entries[1][1], ([], []))
def test_ensure_view_selector(self):
from kotti.views.util import ensure_view_selector
wrapper = ensure_view_selector(None)
request = DummyRequest(path='/edit')
# Ignoring the result since it's not useful with DummyRequest.
# We check that path_info was set accordingly though:
wrapper(None, request)
self.assertEqual(request.path_info, u'/@@edit')
def test_list_groups_callback_with_groups(self):
# Although group definitions are also in the user database,
# we're not allowed to authenticate with a group id:
get_principals()[u'bob'] = dict(name=u'bob')
get_principals()[u'group:bobsgroup'] = dict(name=u'group:bobsgroup')
request = DummyRequest()
self.assertEqual(
list_groups_callback(u'bob', request), [])
self.assertEqual(
list_groups_callback(u'group:bobsgroup', request), None)
def test_login(self):
from kotti.views.login import login
request = DummyRequest()
# No login attempt:
result = login(None, request)
self.assert_(isinstance(result, dict))
self.assertEqual(request.session.pop_flash('success'), [])
self.assertEqual(request.session.pop_flash('error'), [])
# Attempt to log in before Bob exists:
request.params['submit'] = u'on'
request.params['login'] = u'bob'
request.params['password'] = u'secret'
result = login(None, request)
self.assert_(isinstance(result, dict))
self.assertEqual(request.session.pop_flash('success'), [])
self.assertEqual(request.session.pop_flash('error'),
[u'Login failed.'])
def test_roles(self):
# The 'share_node' view will return a list of available roles
# as defined in 'kotti.security.SHARING_ROLES'
from kotti.views.users import share_node
from kotti.security import SHARING_ROLES
root = get_root()
request = DummyRequest()
self.assertEqual(
[r.name for r in share_node(root, request)['available_roles']],
SHARING_ROLES)
def test_view_permitted_yes(self):
self.config.testing_securitypolicy(permissive=True)
self.config.include('kotti.views.edit')
root = DBSession().query(Node).get(1)
request = DummyRequest()
self.assertEquals(Document.type_info.addable(root, request), True)
def test_multiple_parents_and_types(self):
from kotti.views.util import addable_types
# A scenario where we can add multiple types to multiple folders:
root = get_root()
request = DummyRequest()
with contents_addable():
# We should be able to add both to the child and to the parent:
child = root['child'] = Document(title=u"Child")
possible_parents, possible_types = addable_types(child, request)
child_parent, root_parent = possible_parents
self.assertEqual(child_parent['node'], child)
self.assertEqual(root_parent['node'], root)
self.assertEqual(child_parent['factories'], [Document, Content])
self.assertEqual(root_parent['factories'], [Document, Content])
document_info, node_info = possible_types
self.assertEqual(document_info['factory'], Document)
self.assertEqual(node_info['factory'], Content)
self.assertEqual(document_info['nodes'], [child, root])
self.assertEqual(node_info['nodes'], [child, root])
def test_apply(self):
from kotti.views.users import users_manage
root = get_root()
request = DummyRequest()
TestNodeShare.add_some_principals()
bob = get_principals()[u'bob']
request.params['apply'] = u''
users_manage(root, request)
self.assertEqual(request.session.pop_flash('notice'),
[u'No changes made.'])
self.assertEqual(list_groups('bob'), [])
bob.groups = [u'role:special']
request.params['role::bob::role:owner'] = u'1'
request.params['role::bob::role:editor'] = u'1'
request.params['orig-role::bob::role:owner'] = u''
request.params['orig-role::bob::role:editor'] = u''
def test_add_renderer_globals_request_has_template_api(self):
from kotti.views.util import add_renderer_globals
request = DummyRequest()
request.template_api = template_api = object()
event = {'request': request, 'renderer_name': 'foo'}
add_renderer_globals(event)
self.assertTrue(event['api'] is template_api)
def test_slots_render_local_navigation(self):
from kotti.views.slots import render_local_navigation
root = DBSession().query(Node).get(1)
request = DummyRequest()
a, aa, ab, ac, aca, acb = self._create_contents(root)
self.assertEqual(render_local_navigation(root, request), None)
self.assertNotEqual(render_local_navigation(a, request), None)
self.assertEqual("ab" in render_local_navigation(a, request), True)
ab.in_navigation = False
self.assertEqual("ab" in render_local_navigation(a, request), False)