tests: execute hobo_notify against both pickle and sql
This commit is contained in:
parent
c130c7dbde
commit
f3e23bd8b7
|
@ -2,40 +2,39 @@
|
|||
import shutil
|
||||
from quixote import cleanup
|
||||
|
||||
from wcs.qommon.http_request import HTTPRequest
|
||||
from wcs.ctl.hobo_notify import CmdHoboNotify
|
||||
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
|
||||
|
||||
pub = None
|
||||
|
||||
def pytest_generate_tests(metafunc):
|
||||
if 'pub' in metafunc.fixturenames:
|
||||
metafunc.parametrize('pub', ['pickle', 'sql'], indirect=True)
|
||||
|
||||
def setup_module(module):
|
||||
cleanup()
|
||||
global pub
|
||||
pub = create_temporary_pub()
|
||||
@pytest.fixture
|
||||
def pub(request):
|
||||
pub = create_temporary_pub(sql_mode=(request.param == 'sql'))
|
||||
|
||||
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
|
||||
pub.set_app_dir(req)
|
||||
pub.cfg['sp'] = {'saml2_providerid': 'test'}
|
||||
pub.write_cfg()
|
||||
|
||||
|
||||
def teardown_module(module):
|
||||
shutil.rmtree(pub.APP_DIR)
|
||||
|
||||
|
||||
def setup_function(function):
|
||||
Role.wipe()
|
||||
r = Role(name='Service étt civil')
|
||||
r.slug = 'service-ett-civil'
|
||||
r.store()
|
||||
|
||||
|
||||
def teardown_function(function):
|
||||
Role.wipe()
|
||||
return pub
|
||||
|
||||
|
||||
def test_process_notification_role_wrong_audience():
|
||||
def test_process_notification_role_wrong_audience(pub):
|
||||
User = pub.user_class
|
||||
|
||||
notification = {
|
||||
'@type': u'provision',
|
||||
'audience': [u'coin'],
|
||||
|
@ -78,7 +77,9 @@ def test_process_notification_role_wrong_audience():
|
|||
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 = {
|
||||
'@type': u'provision',
|
||||
'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_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
|
||||
notification = {
|
||||
'@type': u'provision',
|
||||
|
@ -232,7 +235,9 @@ def test_process_notification_role_description():
|
|||
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 = {
|
||||
'@type': u'deprovision',
|
||||
'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
|
||||
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.email == 'john.doe@example.net'
|
||||
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.name_identifiers == ['a'*32]
|
||||
assert user.is_admin is False
|
||||
|
@ -538,7 +545,9 @@ def test_process_notification_user_provision():
|
|||
def notify_of_exception(exc_info, context):
|
||||
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
|
||||
from wcs.ctl.check_hobos import CmdCheckHobos
|
||||
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][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()
|
||||
Role.wipe()
|
||||
notification = {
|
||||
|
|
Loading…
Reference in New Issue