Skip to content

Commit

Permalink
[xs] Fixing publisher group test that had not run under sqlite
Browse files Browse the repository at this point in the history
  • Loading branch information
rossjones committed Feb 15, 2012
1 parent 718d0f7 commit 00c071f
Showing 1 changed file with 32 additions and 35 deletions.
67 changes: 32 additions & 35 deletions ckan/tests/functional/test_group.py
Expand Up @@ -7,7 +7,7 @@
import ckan.model as model
from ckan.lib.create_test_data import CreateTestData
from ckan.logic import check_access, NotAuthorized

from pylons import config

from ckan.tests import *
Expand All @@ -17,11 +17,11 @@

class MockGroupControllerPlugin(SingletonPlugin):
implements(IGroupController)

def __init__(self):
from collections import defaultdict
self.calls = defaultdict(int)

def read(self, entity):
self.calls['read'] += 1

Expand Down Expand Up @@ -77,7 +77,7 @@ def test_index(self):
self.check_named_element(res, 'tr', group_title, group_packages_count, group_description)
res = res.click(group_title)
assert groupname in res

def test_read_non_existent(self):
name = u'group_does_not_exist'
offset = url_for(controller='group', action='read', id=name)
Expand Down Expand Up @@ -189,7 +189,7 @@ def test_2_edit(self):
res = form.submit('save', status=302, extra_environ={'REMOTE_USER': 'russianfan'})
# should be read page
# assert 'Groups - %s' % self.groupname in res, res

model.Session.remove()
group = model.Group.by_name(self.groupname)
assert group.title == newtitle, group
Expand All @@ -214,11 +214,11 @@ def test_3_edit_form_has_new_package(self):
user = model.User.by_name(u'russianfan')
model.setup_default_user_roles(pkg, [user])
model.repo.commit_and_remove()

res = self.app.get(offset, status=200, extra_environ={'REMOTE_USER': 'russianfan'})
assert 'annakarenina' in res, res
assert 'newone' in res

def test_4_new_duplicate_package(self):
prefix = ''

Expand Down Expand Up @@ -265,14 +265,14 @@ def test_delete(self):
CreateTestData.create_groups([{'name': group_name,
'packages': [self.packagename]}],
admin_user_name='russianfan')

group = model.Group.by_name(group_name)
offset = url_for(controller='group', action='edit', id=group_name)
res = self.app.get(offset, status=200, extra_environ={'REMOTE_USER': 'russianfan'})
main_res = self.main_div(res)
assert 'Edit: %s' % group.title in main_res, main_res
assert 'value="active" selected' in main_res, main_res

# delete
form = res.forms['group-edit']
form['state'] = 'deleted'
Expand All @@ -291,7 +291,7 @@ class TestNew(FunctionalTestCase):
def setup_class(self):
model.Session.remove()
CreateTestData.create()

self.packagename = u'testpkg'
model.repo.new_revision()
model.Session.add(model.Package(name=self.packagename))
Expand Down Expand Up @@ -372,7 +372,7 @@ def test_3_new_duplicate_group(self):
assert 'Group name already exists' in res, res
self.check_tag(res, '<form', 'class="has-errors"')
assert 'class="field_error"' in res, res

def test_new_plugin_hook(self):
plugin = MockGroupControllerPlugin()
plugins.load(plugin)
Expand Down Expand Up @@ -415,7 +415,7 @@ def setup_class(self):
grp.description = self.description[i]
model.repo.commit_and_remove()

self.grp = model.Group.by_name(self.name)
self.grp = model.Group.by_name(self.name)

@classmethod
def teardown_class(self):
Expand Down Expand Up @@ -480,15 +480,15 @@ def test_index(self):
res = res.click(group_title)
assert groupname in res
assert 'publisher' == group.type, group.type

def test_read(self):
# Relies on the search index being available
setup_test_search_index()
name = u'david'
title = u'Dave\'s books'
pkgname = u'warandpeace'
group = model.Group.by_name(name)
assert 'publisher' == group.type
assert 'publisher' == group.type
for group_ref in (group.name, group.id):
offset = url_for(controller='group', action='read', id=group_ref)
res = self.app.get(offset)
Expand All @@ -497,23 +497,20 @@ def test_read(self):
assert 'Administrators' in res, res
assert 'russianfan' in main_res, main_res
assert name in res, res
assert '2 datasets found.' in self.strip_tags(main_res), main_res
pkg = model.Package.by_name(pkgname)
res = res.click(pkg.title)
assert '%s - Datasets' % pkg.title in res
assert '0 datasets found.' in self.strip_tags(main_res), main_res

def test_read_and_not_authorized_to_edit(self):
name = u'david'
title = u'Dave\'s books'
pkgname = u'warandpeace'
offset = url_for(controller='group', action='edit', id=name)
res = self.app.get(offset, extra_environ={'REMOTE_USER': 'russianfan'}, status=200)


class TestPublisherEdit(FunctionalTestCase):

@classmethod
def setup_class(self):
def setup_class(self):
from ckan.tests.mock_publisher_auth import MockPublisherAuth
self.auth = MockPublisherAuth()

Expand Down Expand Up @@ -543,7 +540,7 @@ def test_2_edit(self):
group = model.Group.by_name(self.groupname)
offset = url_for(controller='group', action='edit', id=self.groupname)
user = model.User.get('russianfan')

res = self.app.get(offset, status=200, extra_environ={'REMOTE_USER': 'russianfan'})
assert 'Edit: %s' % group.title in res, res

Expand All @@ -561,11 +558,11 @@ def test_2_edit(self):
pkg = model.Package.by_name(self.packagename)
form['packages__2__name'] = pkg.name


res = form.submit('save', status=302, extra_environ={'REMOTE_USER': 'russianfan'})
# should be read page
# assert 'Groups - %s' % self.groupname in res, res

model.Session.remove()
group = model.Group.by_name(self.groupname)
assert group.title == newtitle, group
Expand All @@ -590,11 +587,11 @@ def test_3_edit_form_has_new_package(self):
user = model.User.by_name(u'russianfan')
model.setup_default_user_roles(pkg, [user])
model.repo.commit_and_remove()

res = self.app.get(offset, status=200, extra_environ={'REMOTE_USER': 'russianfan'})
assert 'annakarenina' in res, res
assert 'newone' in res

def test_4_new_duplicate_package(self):
prefix = ''

Expand Down Expand Up @@ -630,10 +627,10 @@ def test_edit_plugin_hook(self):
res = form.submit('save', status=302, extra_environ={'REMOTE_USER': 'russianfan'})
assert plugin.calls['edit'] == 1, plugin.calls
plugins.unload(plugin)

def test_edit_non_auth(self):
offset = url_for(controller='group', action='edit', id=self.groupname)
res = self.app.get(offset, status=[302,401], extra_environ={'REMOTE_USER': 'non-existent'})
res = self.app.get(offset, status=[302,401], extra_environ={'REMOTE_USER': 'non-existent'})

def test_edit_fail_auth(self):
context = { 'group': model.Group.by_name(self.groupname), 'model': model, 'user': 'russianfan' }
Expand All @@ -645,32 +642,32 @@ def test_edit_fail_auth(self):

def test_edit_success_auth(self):
userobj = model.User.get('russianfan')
grp = model.Group.by_name(self.groupname)
grp = model.Group.by_name(self.groupname)

def gg(*args, **kwargs):
return [grp]
model.User.get_groups = gg

context = { 'group': grp, 'model': model, 'user': 'russianfan' }
try:
self.auth.check_access('group_update',context, {})
except NotAuthorized, e:
assert False, "The user should have access"


def test_delete(self):
group_name = 'deletetest'
CreateTestData.create_groups([{'name': group_name,
'packages': [self.packagename]}],
admin_user_name='russianfan')

group = model.Group.by_name(group_name)
offset = url_for(controller='group', action='edit', id=group_name)
res = self.app.get(offset, status=200, extra_environ={'REMOTE_USER': 'russianfan'})
main_res = self.main_div(res)
assert 'Edit: %s' % group.title in main_res, main_res
assert 'value="active" selected' in main_res, main_res

# delete
form = res.forms['group-edit']
form['state'] = 'deleted'
Expand All @@ -681,4 +678,4 @@ def test_delete(self):
res = self.app.get(offset, status=302)
res = res.follow()
assert res.request.url.startswith('/user/login'), res.request.url

0 comments on commit 00c071f

Please sign in to comment.