tests: execute hobo_notify against both pickle and sql
This commit is contained in:
parent
c130c7dbde
commit
f3e23bd8b7
|
@ -2,40 +2,39 @@
|
||||||
import shutil
|
import shutil
|
||||||
from quixote import cleanup
|
from quixote import cleanup
|
||||||
|
|
||||||
|
from wcs.qommon.http_request import HTTPRequest
|
||||||
from wcs.ctl.hobo_notify import CmdHoboNotify
|
from wcs.ctl.hobo_notify import CmdHoboNotify
|
||||||
from wcs.roles import Role
|
from wcs.roles import Role
|
||||||
from wcs.users import User
|
|
||||||
|
|
||||||
from utilities import create_temporary_pub
|
from utilities import create_temporary_pub, clean_temporary_pub
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
pub = None
|
|
||||||
|
|
||||||
|
def pytest_generate_tests(metafunc):
|
||||||
|
if 'pub' in metafunc.fixturenames:
|
||||||
|
metafunc.parametrize('pub', ['pickle', 'sql'], indirect=True)
|
||||||
|
|
||||||
def setup_module(module):
|
@pytest.fixture
|
||||||
cleanup()
|
def pub(request):
|
||||||
global pub
|
pub = create_temporary_pub(sql_mode=(request.param == 'sql'))
|
||||||
pub = create_temporary_pub()
|
|
||||||
|
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
|
||||||
|
pub.set_app_dir(req)
|
||||||
pub.cfg['sp'] = {'saml2_providerid': 'test'}
|
pub.cfg['sp'] = {'saml2_providerid': 'test'}
|
||||||
pub.write_cfg()
|
pub.write_cfg()
|
||||||
|
|
||||||
|
Role.wipe()
|
||||||
def teardown_module(module):
|
|
||||||
shutil.rmtree(pub.APP_DIR)
|
|
||||||
|
|
||||||
|
|
||||||
def setup_function(function):
|
|
||||||
r = Role(name='Service étt civil')
|
r = Role(name='Service étt civil')
|
||||||
r.slug = 'service-ett-civil'
|
r.slug = 'service-ett-civil'
|
||||||
r.store()
|
r.store()
|
||||||
|
|
||||||
|
return pub
|
||||||
def teardown_function(function):
|
|
||||||
Role.wipe()
|
|
||||||
|
|
||||||
|
|
||||||
def test_process_notification_role_wrong_audience():
|
def test_process_notification_role_wrong_audience(pub):
|
||||||
|
User = pub.user_class
|
||||||
|
|
||||||
notification = {
|
notification = {
|
||||||
'@type': u'provision',
|
'@type': u'provision',
|
||||||
'audience': [u'coin'],
|
'audience': [u'coin'],
|
||||||
|
@ -78,7 +77,9 @@ def test_process_notification_role_wrong_audience():
|
||||||
assert Role.select()[0].emails_to_members is False
|
assert Role.select()[0].emails_to_members is False
|
||||||
|
|
||||||
|
|
||||||
def test_process_notification_role():
|
def test_process_notification_role(pub):
|
||||||
|
User = pub.user_class
|
||||||
|
|
||||||
notification = {
|
notification = {
|
||||||
'@type': u'provision',
|
'@type': u'provision',
|
||||||
'audience': [u'test'],
|
'audience': [u'test'],
|
||||||
|
@ -154,7 +155,9 @@ def test_process_notification_role():
|
||||||
assert Role.select()[0].emails == ['petite-enfance@example.com']
|
assert Role.select()[0].emails == ['petite-enfance@example.com']
|
||||||
assert Role.select()[0].emails_to_members is True
|
assert Role.select()[0].emails_to_members is True
|
||||||
|
|
||||||
def test_process_notification_role_description():
|
def test_process_notification_role_description(pub):
|
||||||
|
User = pub.user_class
|
||||||
|
|
||||||
# check descriptions are not used to fill role.details
|
# check descriptions are not used to fill role.details
|
||||||
notification = {
|
notification = {
|
||||||
'@type': u'provision',
|
'@type': u'provision',
|
||||||
|
@ -232,7 +235,9 @@ def test_process_notification_role_description():
|
||||||
assert Role.select()[0].emails_to_members is True
|
assert Role.select()[0].emails_to_members is True
|
||||||
|
|
||||||
|
|
||||||
def test_process_notification_role_deprovision():
|
def test_process_notification_role_deprovision(pub):
|
||||||
|
User = pub.user_class
|
||||||
|
|
||||||
notification = {
|
notification = {
|
||||||
'@type': u'deprovision',
|
'@type': u'deprovision',
|
||||||
'audience': [u'test'],
|
'audience': [u'test'],
|
||||||
|
@ -398,7 +403,9 @@ PROFILE = {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
def test_process_notification_user_provision():
|
def test_process_notification_user_provision(pub):
|
||||||
|
User = pub.user_class
|
||||||
|
|
||||||
# create some roles
|
# create some roles
|
||||||
from wcs.ctl.check_hobos import CmdCheckHobos
|
from wcs.ctl.check_hobos import CmdCheckHobos
|
||||||
|
|
||||||
|
@ -490,7 +497,7 @@ def test_process_notification_user_provision():
|
||||||
assert user.form_data['_email'] == 'john.doe@example.net'
|
assert user.form_data['_email'] == 'john.doe@example.net'
|
||||||
assert user.email == 'john.doe@example.net'
|
assert user.email == 'john.doe@example.net'
|
||||||
assert user.form_data['_first_name'] == 'John'
|
assert user.form_data['_first_name'] == 'John'
|
||||||
assert user.form_data['_last_name'] == 'Doe'
|
assert user.form_data['_last_name'] == u'Doe'.encode('utf-8')
|
||||||
assert user.form_data['_zipcode'] == '13400'
|
assert user.form_data['_zipcode'] == '13400'
|
||||||
assert user.name_identifiers == ['a'*32]
|
assert user.name_identifiers == ['a'*32]
|
||||||
assert user.is_admin is False
|
assert user.is_admin is False
|
||||||
|
@ -538,7 +545,9 @@ def test_process_notification_user_provision():
|
||||||
def notify_of_exception(exc_info, context):
|
def notify_of_exception(exc_info, context):
|
||||||
raise Exception(exc_info)
|
raise Exception(exc_info)
|
||||||
|
|
||||||
def test_process_notification_user_with_errors():
|
def test_process_notification_user_with_errors(pub):
|
||||||
|
User = pub.user_class
|
||||||
|
|
||||||
# setup an hobo profile
|
# setup an hobo profile
|
||||||
from wcs.ctl.check_hobos import CmdCheckHobos
|
from wcs.ctl.check_hobos import CmdCheckHobos
|
||||||
User.wipe()
|
User.wipe()
|
||||||
|
@ -597,7 +606,8 @@ def test_process_notification_user_with_errors():
|
||||||
assert e.value.args[0][0] == KeyError
|
assert e.value.args[0][0] == KeyError
|
||||||
assert e.value.args[0][1].args == ('user without uuid',)
|
assert e.value.args[0][1].args == ('user without uuid',)
|
||||||
|
|
||||||
def test_process_notification_role_with_errors():
|
def test_process_notification_role_with_errors(pub):
|
||||||
|
User = pub.user_class
|
||||||
User.wipe()
|
User.wipe()
|
||||||
Role.wipe()
|
Role.wipe()
|
||||||
notification = {
|
notification = {
|
||||||
|
|
Loading…
Reference in New Issue