Skip to content

Commit

Permalink
Merge pull request #16 from keitaroinc/test-emailer
Browse files Browse the repository at this point in the history
Update tests
  • Loading branch information
ZoranPandovski committed Oct 26, 2017
2 parents 0fa57a6 + 720be49 commit d331ba5
Show file tree
Hide file tree
Showing 2 changed files with 245 additions and 0 deletions.
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

0 comments on commit d331ba5

Please sign in to comment.