Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update tests #16

Merged
merged 1 commit into from
Oct 26, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions ckanext/requestdata/tests/test_auth.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
from nose.tools import assert_raises, raises
from ckan.tests import helpers, factories
from ckan import plugins, logic
import unittest
import ckan.model as model
import ckanext.requestdata.logic.auth as a


class ActionBase(unittest.TestCase):
@classmethod
def setup_class(self):
self.app = helpers._get_test_app()
if not plugins.plugin_loaded('requestdata'):
plugins.load('requestdata')
helpers.reset_db()

def setup(self):
helpers.reset_db()

@classmethod
def teardown_class(self):
if plugins.plugin_loaded('requestdata'):
plugins.unload('requestdata')


class TestAuth(ActionBase):
def test_request_create_user(self):
context = {'user': 'test'}
req = a.request_create(context, None)
self.assertTrue(req['success'])

def test_request_create_no_user(self):
context = {'user': None}
req = a.request_create(context, None)
self.assertFalse(req['success'])

def test_request_list_for_current_user(self):
r = a.request_list_for_current_user(None, None)
self.assertTrue(r['success'])

def test_request_list_for_organization_user_not_in_organization(self):
u = factories.User()
u2 = factories.User()
test_org = factories.Organization(
users=[
{'name': u['name'], 'capacity': 'admin'}
]
)
with assert_raises(logic.NotAuthorized) as e:
logic.check_access('requestdata_request_list_for_organization',
{'user': u2['id']},
{'org_id': test_org['id']})

def test_request_list_for_organization_user_in_organization(self):
u = factories.User()
u2 = factories.User()
test_org = factories.Organization(
users=[
{'name': u['name'], 'capacity': 'admin'}
]
)
with assert_raises(logic.NotAuthorized) as e:
logic.check_access('requestdata_request_list_for_organization',
{'user': u['id']},
{'org_id': test_org['id']})

def test_request_list_for_sysadmin_is_sysadmin(self):
user = factories.Sysadmin()
context = {'user': user['name'], 'model': model}
test_org = factories.Organization(
users=[
{'name': user['name'], 'capacity': 'admin'}
]
)
req = a.request_list_for_sysadmin(context, None)
self.assertTrue(req['success'])

def test_request_list_for_sysadmin_is_not_sysadmin(self):
user = factories.User()
context = {'user': user['name'], 'model': model}
test_org = factories.Organization(
users=[
{'name': user['name'], 'capacity': 'admin'}
]
)
req = a.request_list_for_sysadmin(context, None)
self.assertFalse(req['success'])
158 changes: 158 additions & 0 deletions ckanext/requestdata/tests/test_validators.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
from ckan.tests import helpers, factories
from ckan import plugins, logic
import unittest
from ckanext.requestdata.logic.validators import *


class ActionBase(unittest.TestCase):
@classmethod
def setup_class(self):
self.app = helpers._get_test_app()
if not plugins.plugin_loaded('requestdata'):
plugins.load('requestdata')

def setup(self):
helpers.reset_db()

@classmethod
def teardown_class(self):
if plugins.plugin_loaded('requestdata'):
plugins.unload('requestdata')


class TestAuth(ActionBase):
def test_email_validator_validate_is_true(self):
key = ('state')
data = {('state'): 'aleksandar.ristov@keitaro.com'}
errors = {key: []}
email_validator(key, data, errors, None)
if len(errors[key]) == 0:
assert True
else:
assert False

def test_email_validator_validate_is_false(self):
key = ('state')
data = {('state'): 'aleksandar.ristovkeitaro.com'}
errors = {key: []}
email_validator(key, data, errors, None)
if len(errors[key]) == 0:
assert False
else:
assert True

def test_state_validator_not_in_possible_state(self):
key = ('state')
data = {('state'): 'test'}
errors = {key: []}
state_validator(key, data, errors, None)
if len(errors[key]) != 0:
assert True
else:
assert False

def test_state_validator_in_possible_state(self):
key = ('state')
data = {('state'): 'new'}
errors = {key: []}
state_validator(key, data, errors, None)
if len(errors[key]) == 0:
assert True
else:
assert False

data = {('state'): 'open'}
errors = {key: []}
state_validator(key, data, errors, None)
if len(errors[key]) == 0:
assert True
else:
assert False

data = {('state'): 'archive'}
errors = {key: []}
state_validator(key, data, errors, None)
if len(errors[key]) == 0:
assert True
else:
assert False

def test_boolean_validator_is_not_instance(self):
key = ('state')
data = {('state'): 'True'}
errors = {key: []}
boolean_validator(key, data, errors, None)
if len(errors[key]) == 0:
assert True
else:
assert False

data = {('state'): 'False'}
errors = {key: []}
boolean_validator(key, data, errors, None)
if len(errors[key]) == 0:
assert True
else:
assert False

def test_boolean_validator_is_instance(self):
key = ('state')
data = {('state'): 'Test'}
errors = {key: []}
try:
boolean_validator(key, data, errors, None)
assert False
except ValueError:
assert True

def test_request_counter_validator_not_in_counters(self):
key = ('state')
data = {('state'): 'test'}
errors = {key: []}
request_counter_validator(key, data, errors, None)
if len(errors[key]) != 0:
assert True
else:
assert False

def test_request_counter_validator_in_counters(self):
key = ('state')
data = {('state'): 'request'}
errors = {key: []}
request_counter_validator(key, data, errors, None)
if len(errors[key]) == 0:
assert True
else:
assert False

data = {('state'): 'replied'}
errors = {key: []}
request_counter_validator(key, data, errors, None)
if len(errors[key]) == 0:
assert True
else:
assert False

data = {('state'): 'declined'}
errors = {key: []}
request_counter_validator(key, data, errors, None)
if len(errors[key]) == 0:
assert True
else:
assert False

data = {('state'): 'shared'}
errors = {key: []}
request_counter_validator(key, data, errors, None)
if len(errors[key]) == 0:
assert True
else:
assert False

data = {('state'): 'shared and replied'}
errors = {key: []}
request_counter_validator(key, data, errors, None)
if len(errors[key]) == 0:
assert True
else:
assert False