tests: simplify pub fixtures as sql is the new default (#67190)

This commit is contained in:
Frédéric Péters 2022-07-11 16:45:37 +02:00
parent 1fd2ab76a1
commit 790caa0ddd
72 changed files with 420 additions and 532 deletions

View File

@ -10,7 +10,7 @@ from ..utilities import clean_temporary_pub, create_temporary_pub, get_app, logi
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -25,7 +25,7 @@ from .test_all import create_superuser
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -17,7 +17,7 @@ from .test_all import create_role, create_superuser
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -19,8 +19,9 @@ from ..utilities import clean_temporary_pub, create_temporary_pub, get_app, logi
from .test_all import create_superuser
def pub_fixture(**kwargs):
pub = create_temporary_pub(**kwargs)
@pytest.fixture
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)
@ -31,11 +32,6 @@ def pub_fixture(**kwargs):
return pub
@pytest.fixture
def pub(request, emails):
return pub_fixture(sql_mode=True)
def teardown_module(module):
clean_temporary_pub()

View File

@ -11,7 +11,7 @@ from .test_all import create_superuser
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -10,7 +10,7 @@ from .test_all import create_superuser
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -21,8 +21,9 @@ from ..utilities import HttpRequestsMocking, clean_temporary_pub, create_tempora
from .test_all import create_superuser
def pub_fixture(**kwargs):
pub = create_temporary_pub(**kwargs)
@pytest.fixture
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)
@ -33,11 +34,6 @@ def pub_fixture(**kwargs):
return pub
@pytest.fixture
def pub(request, emails):
return pub_fixture(sql_mode=True)
def teardown_module(module):
clean_temporary_pub()

View File

@ -29,7 +29,7 @@ from .test_all import create_superuser
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -23,8 +23,9 @@ from ..utilities import clean_temporary_pub, create_temporary_pub, get_app, logi
from .test_all import create_role, create_superuser
def pub_fixture(**kwargs):
pub = create_temporary_pub(**kwargs)
@pytest.fixture
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)
@ -35,11 +36,6 @@ def pub_fixture(**kwargs):
return pub
@pytest.fixture
def pub(request, emails):
return pub_fixture(sql_mode=True)
def teardown_module(module):
clean_temporary_pub()

View File

@ -13,7 +13,7 @@ from .test_all import create_superuser
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)
pub.cfg['identification'] = {'methods': ['password']}

View File

@ -9,7 +9,7 @@ from .test_all import create_superuser
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -32,8 +32,8 @@ from .test_all import create_superuser
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
def pub():
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -17,8 +17,9 @@ from ..utilities import clean_temporary_pub, create_temporary_pub, get_app, logi
from .test_all import create_superuser
def pub_fixture(**kwargs):
pub = create_temporary_pub(**kwargs)
@pytest.fixture
def pub():
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)
@ -29,16 +30,6 @@ def pub_fixture(**kwargs):
return pub
@pytest.fixture
def pub(request):
return pub_fixture(sql_mode=True)
@pytest.fixture
def sql_pub(request):
return pub_fixture(sql_mode=True)
def teardown_module(module):
clean_temporary_pub()
@ -98,8 +89,7 @@ def test_studio_home(pub):
assert '../settings/' not in resp.text
def test_studio_home_recent_errors(sql_pub):
pub = sql_pub
def test_studio_home_recent_errors(pub):
create_superuser(pub)
app = login(get_app(pub))
@ -135,8 +125,7 @@ def test_studio_home_recent_errors(sql_pub):
assert 'logged-errors/%s/' % errors[5].id in resp
def test_studio_home_recent_changes(sql_pub):
pub = sql_pub
def test_studio_home_recent_changes(pub):
create_superuser(pub)
BlockDef.wipe()

View File

@ -11,7 +11,7 @@ from .test_all import create_role, create_superuser
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -32,7 +32,7 @@ from .test_all import create_superuser
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -13,7 +13,7 @@ from .test_all import create_superuser
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -19,8 +19,8 @@ from ..utilities import clean_temporary_pub, create_temporary_pub, get_app, logi
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)
@ -72,9 +72,9 @@ def admin_user():
return user
@pytest.fixture(params=['sql', 'pickle'])
def no_request_pub(request):
pub = create_temporary_pub(sql_mode=bool(request.param == 'sql'))
@pytest.fixture
def no_request_pub():
pub = create_temporary_pub()
pub.app_dir = os.path.join(pub.APP_DIR, 'example.net')
pub.set_config()

View File

@ -15,8 +15,8 @@ from ..utilities import clean_temporary_pub, create_temporary_pub, get_app
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -28,8 +28,8 @@ from .utils import sign_uri
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -12,8 +12,8 @@ from .utils import sign_uri
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -17,8 +17,8 @@ from .utils import sign_uri
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -21,7 +21,7 @@ from .utils import sign_uri
@pytest.fixture
def pub():
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
with open(os.path.join(pub.app_dir, 'site-options.cfg'), 'w') as fd:
fd.write(
'''\

View File

@ -30,8 +30,8 @@ from .utils import sign_uri
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -27,8 +27,8 @@ from .utils import sign_uri
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -17,7 +17,7 @@ from .utils import sign_uri
@pytest.fixture
def pub():
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
BlockDef.wipe()
Category.wipe()
FormDef.wipe()

View File

@ -20,8 +20,8 @@ from .utils import sign_uri
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -17,8 +17,8 @@ from .utils import sign_uri
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -30,8 +30,8 @@ from ..utilities import clean_temporary_pub, create_temporary_pub, get_app, logi
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -18,8 +18,8 @@ from .test_all import create_superuser, create_user
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -17,8 +17,8 @@ from .test_all import create_superuser
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -15,8 +15,8 @@ from .test_all import create_superuser, create_user
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -20,8 +20,8 @@ from .test_all import create_superuser
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -17,8 +17,8 @@ from .test_all import create_environment, create_superuser
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -19,8 +19,8 @@ from .test_all import create_user
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.cfg['identification'] = {'methods': ['password']}

View File

@ -16,8 +16,8 @@ from .test_all import create_superuser
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -11,8 +11,8 @@ from .test_all import create_environment, create_superuser, create_user
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -18,8 +18,8 @@ from .test_all import create_superuser, create_user
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -15,8 +15,8 @@ from .test_all import create_superuser
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.cfg['identification'] = {'methods': ['password']}

View File

@ -65,8 +65,9 @@ def pytest_generate_tests(metafunc):
metafunc.parametrize('pub', ['sql', 'sql-lazy'], indirect=True)
def pub_fixture(**kwargs):
pub = create_temporary_pub(**kwargs)
@pytest.fixture
def pub(request):
pub = create_temporary_pub(lazy_mode=bool('lazy' in request.param))
pub.cfg['identification'] = {'methods': ['password']}
pub.cfg['language'] = {'language': 'en'}
pub.write_cfg()
@ -78,16 +79,6 @@ def pub_fixture(**kwargs):
return pub
@pytest.fixture
def pub(request, emails):
return pub_fixture(sql_mode=bool('sql' in request.param), lazy_mode=bool('lazy' in request.param))
@pytest.fixture
def sql_pub(request, emails):
return pub_fixture(sql_mode=True)
@pytest.fixture
def error_email(pub):
pub.cfg['debug'] = {'error_email': 'errors@localhost.invalid'}
@ -4732,8 +4723,7 @@ def test_form_ranked_items_randomize_order(pub):
assert len(orders.keys()) > 1
def test_form_autosave(sql_pub):
pub = sql_pub
def test_form_autosave(pub):
formdef = create_formdef()
formdef.fields = [
fields.PageField(id='0', label='1st page', type='page'),

View File

@ -25,7 +25,6 @@ def pytest_generate_tests(metafunc):
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(
sql_mode=bool('sql' in request.param),
lazy_mode=bool('lazy' in request.param),
)
pub.cfg['identification'] = {'methods': ['password']}

View File

@ -16,8 +16,8 @@ from .test_all import create_user
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(sql_mode=True)
def pub(emails):
pub = create_temporary_pub()
pub.cfg['identification'] = {'methods': ['password']}
pub.cfg['language'] = {'language': 'en'}
pub.write_cfg()

View File

@ -28,7 +28,6 @@ def pytest_generate_tests(metafunc):
@pytest.fixture
def pub(request):
pub = create_temporary_pub(
sql_mode=bool('sql' in request.param),
lazy_mode=bool('lazy' in request.param),
)
pub.cfg['identification'] = {'methods': ['password']}

View File

@ -35,7 +35,6 @@ def pytest_generate_tests(metafunc):
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(
sql_mode=bool('sql' in request.param),
lazy_mode=bool('lazy' in request.param),
)
pub.cfg['identification'] = {'methods': ['password']}

View File

@ -27,7 +27,6 @@ def pytest_generate_tests(metafunc):
@pytest.fixture
def pub(request):
pub = create_temporary_pub(
sql_mode=bool('sql' in request.param),
lazy_mode=bool('lazy' in request.param),
)
pub.cfg['identification'] = {'methods': ['password']}

View File

@ -9,7 +9,7 @@ from .utilities import clean_temporary_pub, create_temporary_pub, get_app, login
@pytest.fixture
def pub():
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
pub.cfg['identification'] = {'methods': ['password']}
pub.cfg['language'] = {'language': 'en'}
pub.write_cfg()

View File

@ -17,7 +17,7 @@ from .utilities import clean_temporary_pub, create_temporary_pub
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)
pub.cfg['language'] = {'language': 'en'}

View File

@ -16,7 +16,7 @@ def setup_module(module):
global pub
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
def teardown_module(module):

View File

@ -85,7 +85,7 @@ def database(cursor):
@pytest.fixture()
def pub(request):
pub = create_temporary_pub(sql_mode=False)
pub = create_temporary_pub(pickle_mode=True)
yield pub
clean_temporary_pub()
@ -125,7 +125,7 @@ def test_database_does_not_exist(pub):
def test_already_migrated_fails():
create_temporary_pub(sql_mode=True)
create_temporary_pub()
with pytest.raises(CommandError) as excinfo:
call_command('convert_to_sql', '-d', 'example.net', '--database', 'foobar')
assert str(excinfo.value) == 'tenant already using postgresql'

View File

@ -28,22 +28,11 @@ from .utilities import clean_temporary_pub, create_temporary_pub
@pytest.fixture
def pub():
yield create_temporary_pub()
clean_temporary_pub()
@pytest.fixture
def sql_pub():
yield create_temporary_pub(sql_mode=True)
clean_temporary_pub()
@pytest.fixture
def two_pubs(request):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
pub.cfg['language'] = {'language': 'en'}
pub.write_cfg()
return pub
yield pub
clean_temporary_pub()
def teardown_module(module):
@ -84,11 +73,11 @@ def test_collectstatic(pub, tmp_path):
assert os.path.islink(required_link) and os.path.exists(required_link)
def test_migrate(two_pubs):
def test_migrate(pub):
CmdMigrate().handle()
def test_migrate_schemas(two_pubs):
def test_migrate_schemas(pub):
CmdMigrateSchemas().handle()
@ -222,7 +211,7 @@ def test_trigger_jumps(pub):
def test_delete_tenant_with_sql(freezer):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
delete_cmd = CmdDeleteTenant()
assert os.path.isdir(pub.app_dir)
@ -249,7 +238,7 @@ def test_delete_tenant_with_sql(freezer):
assert len(cur.fetchall()) == 1
clean_temporary_pub()
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
sub_options = sub_options_class(True)
delete_cmd.delete_tenant(pub, sub_options, [])
@ -276,7 +265,7 @@ def test_delete_tenant_with_sql(freezer):
assert cur.fetchall()
clean_temporary_pub()
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
cleanup_connection()
sub_options = sub_options_class(True)
@ -301,7 +290,7 @@ def test_delete_tenant_with_sql(freezer):
pgconn.close()
clean_temporary_pub()
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
cleanup_connection()
sub_options = sub_options_class(False)
@ -375,21 +364,21 @@ def test_delete_tenant_without_sql():
clean_temporary_pub()
def test_rebuild_indexes(two_pubs):
def test_rebuild_indexes(pub):
form = FormDef()
form.name = 'example'
form.store()
assert os.listdir(os.path.join(two_pubs.app_dir, 'formdefs-url_name')) == ['example']
assert os.listdir(os.path.join(pub.app_dir, 'formdefs-url_name')) == ['example']
os.unlink(os.path.join(two_pubs.app_dir, 'formdefs-url_name', 'example'))
os.symlink('../formdefs/1', os.path.join(two_pubs.app_dir, 'formdefs-url_name', 'XXX'))
rebuild_vhost_indexes(two_pubs, destroy=False)
assert 'example' in os.listdir(os.path.join(two_pubs.app_dir, 'formdefs-url_name'))
assert 'XXX' in os.listdir(os.path.join(two_pubs.app_dir, 'formdefs-url_name'))
os.unlink(os.path.join(pub.app_dir, 'formdefs-url_name', 'example'))
os.symlink('../formdefs/1', os.path.join(pub.app_dir, 'formdefs-url_name', 'XXX'))
rebuild_vhost_indexes(pub, destroy=False)
assert 'example' in os.listdir(os.path.join(pub.app_dir, 'formdefs-url_name'))
assert 'XXX' in os.listdir(os.path.join(pub.app_dir, 'formdefs-url_name'))
rebuild_vhost_indexes(two_pubs, destroy=True)
assert os.listdir(os.path.join(two_pubs.app_dir, 'formdefs-url_name')) == ['example']
rebuild_vhost_indexes(pub, destroy=True)
assert os.listdir(os.path.join(pub.app_dir, 'formdefs-url_name')) == ['example']
def test_runscript(pub):
@ -499,7 +488,7 @@ def test_ctl_no_command(capsys):
sys.argv = old_argv
def test_dbshell(sql_pub):
def test_dbshell(pub):
with pytest.raises(CommandError):
call_command('dbshell') # missing tenant name
@ -508,7 +497,7 @@ def test_dbshell(sql_pub):
call.side_effect = lambda *args, **kwargs: 0
call_command('dbshell', '--domain', 'example.net')
assert call.call_args[0][-1][0] == 'psql'
assert call.call_args[0][-1][-1] == sql_pub.cfg['postgresql']['database']
assert call.call_args[0][-1][-1] == pub.cfg['postgresql']['database']
def test_makemessages(pub):

View File

@ -23,7 +23,7 @@ from .utilities import clean_temporary_pub, create_temporary_pub
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -10,7 +10,7 @@ from .utilities import clean_temporary_pub, create_temporary_pub
@pytest.fixture
def pub():
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)
return pub

View File

@ -54,7 +54,7 @@ def base64url_encode(v):
def setup_module(module):
cleanup()
global pub
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
def setup_user_profile(pub):

View File

@ -41,8 +41,8 @@ from .utilities import clean_temporary_pub, create_temporary_pub
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
def pub():
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -29,8 +29,8 @@ from .utilities import clean_temporary_pub, create_temporary_pub
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
def pub():
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)
pub.cfg['language'] = {'language': 'en'}

View File

@ -5,7 +5,7 @@ from .utilities import clean_temporary_pub, create_temporary_pub
@pytest.fixture
def pub(request):
return create_temporary_pub(sql_mode=True)
return create_temporary_pub()
def teardown_module(module):

View File

@ -283,7 +283,7 @@ def test_mail_templates_category(pub, superuser):
def test_workflow_send_mail_template_with_sql(superuser, emails):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)
pub._set_request(req)

View File

@ -560,14 +560,14 @@ def test_clean_thumbnails():
def test_clean_loggederrors_no_sql():
pub = create_temporary_pub(sql_mode=False)
pub = create_temporary_pub(pickle_mode=True)
# do nothing, no error
pub.clean_loggederrors()
def test_clean_loggederrors():
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
error1 = pub.loggederror_class()
error1.first_occurence_timestamp = datetime.datetime.now() - datetime.timedelta(seconds=1)

View File

@ -12,7 +12,7 @@ from .utilities import clean_temporary_pub, create_temporary_pub, get_app
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
req = HTTPRequest(None, {'SCRIPT_NAME': '/', 'SERVER_NAME': 'example.net'})
pub.set_app_dir(req)

View File

@ -29,7 +29,7 @@ def pub():
@pytest.fixture
def pickle_pub():
yield create_temporary_pub(sql_mode=False)
yield create_temporary_pub(pickle_mode=True)
clean_temporary_pub()

View File

@ -44,8 +44,8 @@ role_uuid2 = str(uuid.uuid4())
@pytest.fixture
def pub(request):
pub = create_temporary_pub(sql_mode=True)
def pub():
pub = create_temporary_pub()
if not pub.cfg:
pub.cfg = {}

View File

@ -24,11 +24,8 @@ from .utilities import clean_temporary_pub, create_temporary_pub, get_app, login
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(
sql_mode=True,
lazy_mode=True,
)
def pub(emails):
pub = create_temporary_pub(lazy_mode=True)
pub.cfg['identification'] = {'methods': ['password']}
pub.cfg['language'] = {'language': 'en'}
pub.write_cfg()

View File

@ -22,7 +22,7 @@ from .utilities import clean_temporary_pub, create_temporary_pub
@pytest.fixture
def pub(request):
return create_temporary_pub(sql_mode=True)
return create_temporary_pub()
@pytest.fixture

View File

@ -503,7 +503,7 @@ def test_load_old_pickle():
os.path.join(pub.app_dir, 'form-foo'),
)
formdef = FormDef.select()[0]
formdef.data_class().select()
formdef.data_class(mode='files').select()
# carddata
shutil.copytree(
@ -515,4 +515,4 @@ def test_load_old_pickle():
os.path.join(pub.app_dir, 'card-bar'),
)
carddef = CardDef.select()[0]
carddef.data_class().select()
carddef.data_class(mode='files').select()

View File

@ -13,7 +13,7 @@ from .utilities import create_temporary_pub
@pytest.fixture
def pub(request):
return create_temporary_pub(sql_mode=True)
return create_temporary_pub()
def test_migrate_to_sql(pub):

View File

@ -7,7 +7,7 @@ from .utilities import clean_temporary_pub, create_temporary_pub
@pytest.fixture
def pub(request):
return create_temporary_pub(sql_mode=True)
return create_temporary_pub()
def teardown_module(module):

View File

@ -23,7 +23,6 @@ def pytest_generate_tests(metafunc):
@pytest.fixture
def pub(request, emails):
pub = create_temporary_pub(
sql_mode=bool('sql' in request.param),
lazy_mode=bool('lazy' in request.param),
)
pub.cfg['identification'] = {'methods': ['password']}

View File

@ -180,7 +180,7 @@ def test_webservice_delete(http_requests, pub):
@pytest.mark.parametrize('notify_on_errors', [True, False])
@pytest.mark.parametrize('record_on_errors', [True, False])
def test_webservice_on_error_with_sql(http_requests, emails, notify_on_errors, record_on_errors):
pub = create_temporary_pub(sql_mode=True)
pub = create_temporary_pub()
pub.cfg['debug'] = {'error_email': 'errors@localhost.invalid'}
pub.write_cfg()

View File

@ -43,7 +43,7 @@ class KnownElements:
known_elements = KnownElements()
def create_temporary_pub(sql_mode=True, legacy_theme_mode=False, lazy_mode=False):
def create_temporary_pub(pickle_mode=False, legacy_theme_mode=False, lazy_mode=False):
if get_publisher():
get_publisher().cleanup()
cleanup()
@ -51,20 +51,20 @@ def create_temporary_pub(sql_mode=True, legacy_theme_mode=False, lazy_mode=False
APP_DIR = known_elements.legacy_theme_app_dir
elif lazy_mode and known_elements.lazy_app_dir:
APP_DIR = known_elements.lazy_app_dir
elif sql_mode and known_elements.sql_app_dir and not lazy_mode:
APP_DIR = known_elements.sql_app_dir
elif not (legacy_theme_mode or lazy_mode or sql_mode) and known_elements.pickle_app_dir:
elif pickle_mode and known_elements.pickle_app_dir:
APP_DIR = known_elements.pickle_app_dir
elif not (legacy_theme_mode or lazy_mode or pickle_mode) and known_elements.sql_app_dir:
APP_DIR = known_elements.sql_app_dir
else:
APP_DIR = tempfile.mkdtemp()
if legacy_theme_mode:
known_elements.legacy_theme_app_dir = APP_DIR
elif lazy_mode:
known_elements.lazy_app_dir = APP_DIR
elif sql_mode and not lazy_mode:
known_elements.sql_app_dir = APP_DIR
else:
elif pickle_mode:
known_elements.pickle_app_dir = APP_DIR
else:
known_elements.sql_app_dir = APP_DIR
compat.CompatWcsPublisher.APP_DIR = APP_DIR
compat.CompatWcsPublisher.DATA_DIR = os.path.abspath(
@ -76,7 +76,7 @@ def create_temporary_pub(sql_mode=True, legacy_theme_mode=False, lazy_mode=False
pub.app_dir = os.path.join(APP_DIR, 'example.net')
pub.site_charset = 'utf-8'
if sql_mode:
if not pickle_mode:
pub.user_class = sql.SqlUser
pub.role_class = sql.Role
pub.token_class = sql.Token
@ -117,8 +117,6 @@ def create_temporary_pub(sql_mode=True, legacy_theme_mode=False, lazy_mode=False
fd.write('workflow-resubmit-action = true\n')
if lazy_mode:
fd.write('force-lazy-mode = true\n')
if sql_mode:
fd.write('postgresql = true\n')
# make sure site options are not cached
pub.site_options = None
@ -138,7 +136,7 @@ def create_temporary_pub(sql_mode=True, legacy_theme_mode=False, lazy_mode=False
pub.write_cfg()
if not created:
if sql_mode:
if not pickle_mode:
pub.cfg['postgresql'] = {'database': known_elements.sql_db_name, 'user': os.environ['USER']}
pub.loggederror_class.wipe()
pub.write_cfg()
@ -146,7 +144,7 @@ def create_temporary_pub(sql_mode=True, legacy_theme_mode=False, lazy_mode=False
os.symlink(os.path.join(os.path.dirname(__file__), 'templates'), os.path.join(pub.app_dir, 'templates'))
if sql_mode:
if not pickle_mode:
conn = psycopg2.connect(user=os.environ['USER'], dbname='postgres')
conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
i = 0

File diff suppressed because it is too large Load Diff

View File

@ -38,21 +38,7 @@ def pub(request):
return pub
@pytest.fixture
def two_pubs(request):
pub = create_temporary_pub(sql_mode=True)
pub.cfg['language'] = {'language': 'en'}
pub.write_cfg()
req = HTTPRequest(None, {'SERVER_NAME': 'example.net', 'SCRIPT_NAME': ''})
req.response.filter = {}
req._user = None
pub._set_request(req)
req.session = sessions.BasicSession(id=1)
pub.set_config(req)
return pub
def test_create_carddata(two_pubs):
def test_create_carddata(pub):
CardDef.wipe()
FormDef.wipe()
@ -104,7 +90,7 @@ def test_create_carddata(two_pubs):
assert carddef.data_class().count() == 1
errors = two_pubs.loggederror_class.select()
errors = pub.loggederror_class.select()
assert len(errors) == 2
assert any('form_var_undefined' in (error.exception_message or '') for error in errors)
assert any('invalid date value' in (error.exception_message or '') for error in errors)
@ -316,7 +302,7 @@ def test_create_carddata_with_links(pub):
assert carddata2.data['2'] == str(carddata1.id)
def test_create_carddata_with_map_field(two_pubs):
def test_create_carddata_with_map_field(pub):
CardDef.wipe()
FormDef.wipe()
@ -383,7 +369,7 @@ def test_create_carddata_with_map_field(two_pubs):
assert carddef.data_class().count() == 1
assert not carddef.data_class().select()[0].data.get('1')
errors = two_pubs.loggederror_class.select()
errors = pub.loggederror_class.select()
assert len(errors) == 1
assert any('invalid coordinates' in (error.exception_message or '') for error in errors)
@ -400,16 +386,16 @@ def test_create_carddata_with_map_field(two_pubs):
assert carddef.data_class().select()[0].data.get('1') == '2;3'
def test_create_carddata_user_association(two_pubs):
def test_create_carddata_user_association(pub):
CardDef.wipe()
FormDef.wipe()
two_pubs.user_class.wipe()
pub.user_class.wipe()
user = two_pubs.user_class()
user = pub.user_class()
user.email = 'test@example.net'
user.name_identifiers = ['xyz']
user.store()
user2 = two_pubs.user_class()
user2 = pub.user_class()
user2.store()
carddef = CardDef()
@ -513,15 +499,15 @@ def test_create_carddata_user_association(two_pubs):
formdata.data = {}
formdata.user_id = user.id
formdata.just_created()
if two_pubs.loggederror_class:
two_pubs.loggederror_class.wipe()
if pub.loggederror_class:
pub.loggederror_class.wipe()
formdata.perform_workflow()
assert carddef.data_class().count() == 1
assert carddef.data_class().select()[0].user is None
if two_pubs.loggederror_class:
assert two_pubs.loggederror_class.count() == 1
logged_error = two_pubs.loggederror_class.select()[0]
if pub.loggederror_class:
assert pub.loggederror_class.count() == 1
logged_error = pub.loggederror_class.select()[0]
assert logged_error.summary == 'Failed to attach user (not found: "%s")' % invalid_user[1]
assert logged_error.formdata_id == str(formdata.id)
@ -541,10 +527,10 @@ def test_create_carddata_user_association(two_pubs):
assert carddef.data_class().select()[0].user is None
def test_create_carddata_map_fields_by_varname(two_pubs):
def test_create_carddata_map_fields_by_varname(pub):
CardDef.wipe()
FormDef.wipe()
two_pubs.user_class.wipe()
pub.user_class.wipe()
carddef = CardDef()
carddef.name = 'My card'
@ -739,7 +725,7 @@ def test_edit_carddata_with_linked_object(pub):
assert card_data.data['2'] == '3'
def test_edit_carddata_manual_targeting(two_pubs):
def test_edit_carddata_manual_targeting(pub):
FormDef.wipe()
CardDef.wipe()
@ -828,7 +814,7 @@ def test_edit_carddata_manual_targeting(two_pubs):
assert carddef.data_class().get(2).data['2'] == '0'
assert carddef.data_class().get(3).data['2'] == '0'
assert carddef.data_class().get(4).data['2'] == '2'
assert two_pubs.loggederror_class.count() == 0
assert pub.loggederror_class.count() == 0
# configure target
edit.target_id = '{{ form_var_string }}' # == '1'
@ -856,7 +842,7 @@ def test_edit_carddata_manual_targeting(two_pubs):
assert carddef.data_class().get(3).data['2'] == '0'
assert carddef.data_class().get(4).data['2'] == '2'
assert carddef.data_class().get(5).data['2'] == '2'
assert two_pubs.loggederror_class.count() == 0
assert pub.loggederror_class.count() == 0
# target not found
edit.target_id = '42{{ form_var_string }}' # == '421'
@ -885,8 +871,8 @@ def test_edit_carddata_manual_targeting(two_pubs):
assert carddef.data_class().get(4).data['2'] == '2'
assert carddef.data_class().get(5).data['2'] == '2'
assert carddef.data_class().get(6).data['2'] == '2'
assert two_pubs.loggederror_class.count() == 1
logged_error = two_pubs.loggederror_class.select()[0]
assert pub.loggederror_class.count() == 1
logged_error = pub.loggederror_class.select()[0]
assert logged_error.summary == 'Could not find targeted "Parent" object by id 421'
# slug not or badly configured
@ -1135,12 +1121,12 @@ def test_assign_carddata_with_linked_object(pub):
assert str(card_data.user_id) == str(user.id)
def test_assign_carddata_manual_targeting(two_pubs):
def test_assign_carddata_manual_targeting(pub):
FormDef.wipe()
CardDef.wipe()
two_pubs.user_class.wipe()
pub.user_class.wipe()
user = two_pubs.user_class()
user = pub.user_class()
user.email = 'test@example.net'
user.name_identifiers = ['xyz']
user.store()
@ -1225,7 +1211,7 @@ def test_assign_carddata_manual_targeting(two_pubs):
assert carddef.data_class().get(2).user_id is None
assert carddef.data_class().get(3).user_id is None
assert carddef.data_class().get(4).user_id is None
assert two_pubs.loggederror_class.count() == 0
assert pub.loggederror_class.count() == 0
# configure target
assign.target_id = '{{ form_var_string }}' # == '1'
@ -1253,7 +1239,7 @@ def test_assign_carddata_manual_targeting(two_pubs):
assert carddef.data_class().get(3).user_id is None
assert carddef.data_class().get(4).user_id is None
assert carddef.data_class().get(5).user_id is None
assert two_pubs.loggederror_class.count() == 0
assert pub.loggederror_class.count() == 0
# target not found
assign.target_id = '42{{ form_var_string }}' # == '424'
@ -1282,8 +1268,8 @@ def test_assign_carddata_manual_targeting(two_pubs):
assert carddef.data_class().get(4).user_id is None # not changed
assert carddef.data_class().get(5).user_id is None
assert carddef.data_class().get(6).user_id is None
assert two_pubs.loggederror_class.count() == 1
logged_error = two_pubs.loggederror_class.select()[0]
assert pub.loggederror_class.count() == 1
logged_error = pub.loggederror_class.select()[0]
assert logged_error.summary == 'Could not find targeted "Parent" object by id 424'
# slug not or badly configured
@ -1435,16 +1421,16 @@ def test_assign_carddata_from_created_object(pub):
assert str(carddata_reloaded.user_id) == str(user.id)
def test_assign_carddata_user_association(two_pubs):
def test_assign_carddata_user_association(pub):
CardDef.wipe()
FormDef.wipe()
two_pubs.user_class.wipe()
pub.user_class.wipe()
user = two_pubs.user_class()
user = pub.user_class()
user.email = 'test@example.net'
user.name_identifiers = ['xyz']
user.store()
user2 = two_pubs.user_class()
user2 = pub.user_class()
user2.store()
carddef = CardDef()
@ -1555,14 +1541,14 @@ def test_assign_carddata_user_association(two_pubs):
formdata = FormDef.get(formdef.id).data_class()()
formdata.data = {'0': '1'}
formdata.just_created()
if two_pubs.loggederror_class:
two_pubs.loggederror_class.wipe()
if pub.loggederror_class:
pub.loggederror_class.wipe()
formdata.perform_workflow()
assert carddef.data_class().select()[0].user is None
if two_pubs.loggederror_class:
assert two_pubs.loggederror_class.count() == 1
logged_error = two_pubs.loggederror_class.select()[0]
if pub.loggederror_class:
assert pub.loggederror_class.count() == 1
logged_error = pub.loggederror_class.select()[0]
assert logged_error.summary == 'Failed to attach user (not found: "zzz")'
assert logged_error.formdata_id == str(formdata.id)

View File

@ -34,23 +34,9 @@ def pub(request):
return pub
@pytest.fixture
def two_pubs(request):
pub = create_temporary_pub(sql_mode=True)
pub.cfg['language'] = {'language': 'en'}
pub.write_cfg()
req = HTTPRequest(None, {'SERVER_NAME': 'example.net', 'SCRIPT_NAME': ''})
req.response.filter = {}
req._user = None
pub._set_request(req)
req.session = sessions.BasicSession(id=1)
pub.set_config(req)
return pub
def test_create_formdata(two_pubs):
def test_create_formdata(pub):
FormDef.wipe()
two_pubs.tracking_code_class.wipe()
pub.tracking_code_class.wipe()
target_formdef = FormDef()
target_formdef.name = 'target form'
@ -82,7 +68,7 @@ def test_create_formdata(two_pubs):
formdata.just_created()
assert target_formdef.data_class().count() == 0
assert two_pubs.loggederror_class.count() == 0
assert pub.loggederror_class.count() == 0
# check unconfigure action do nothing
formdata.perform_workflow()
assert target_formdef.data_class().count() == 0
@ -93,7 +79,7 @@ def test_create_formdata(two_pubs):
formdata.perform_workflow()
assert target_formdef.data_class().count() == 1
errors = two_pubs.loggederror_class.select()
errors = pub.loggederror_class.select()
assert len(errors) == 2
assert 'form_var_toto_string' in errors[0].exception_message
assert errors[1].summary == 'Missing field: unknown (1), unknown (2)'
@ -101,7 +87,7 @@ def test_create_formdata(two_pubs):
assert errors[1].formdata_id == str(target_formdef.data_class().select()[0].id)
# add field labels cache
two_pubs.loggederror_class.wipe()
pub.loggederror_class.wipe()
target_formdef.data_class().wipe()
create.formdef_slug = target_formdef.url_name
create.cached_field_labels = {'0': 'field0', '1': 'field1', '2': 'field2'}
@ -110,14 +96,14 @@ def test_create_formdata(two_pubs):
formdata.perform_workflow()
assert target_formdef.data_class().count() == 1
errors = two_pubs.loggederror_class.select()
errors = pub.loggederror_class.select()
assert len(errors) == 2
assert errors[1].summary == 'Missing field: field1, field2'
# no tracking code has been created
created_formdata = target_formdef.data_class().select()[0]
assert created_formdata.tracking_code is None
assert two_pubs.tracking_code_class.count() == 0
assert pub.tracking_code_class.count() == 0
# now we want one
target_formdef.enable_tracking_codes = True
target_formdef.store()
@ -127,9 +113,9 @@ def test_create_formdata(two_pubs):
assert target_formdef.data_class().count() == 1
created_formdata = target_formdef.data_class().select()[0]
assert created_formdata.tracking_code is not None
assert two_pubs.tracking_code_class.count() == 1
assert two_pubs.tracking_code_class.select()[0].formdef_id == target_formdef.id
assert two_pubs.tracking_code_class.select()[0].formdata_id == str(created_formdata.id)
assert pub.tracking_code_class.count() == 1
assert pub.tracking_code_class.select()[0].formdef_id == target_formdef.id
assert pub.tracking_code_class.select()[0].formdata_id == str(created_formdata.id)
create.condition = {'type': 'python', 'value': '1 == 2'}
wf.store()
@ -160,9 +146,9 @@ def test_create_formdata_migration(pub):
assert not hasattr(wf.possible_status[0].items[0], 'keep_user')
def test_create_formdata_tracking_code(two_pubs, emails):
def test_create_formdata_tracking_code(pub, emails):
FormDef.wipe()
two_pubs.tracking_code_class.wipe()
pub.tracking_code_class.wipe()
target_wf = Workflow(name='send-mail')
st1 = target_wf.add_status('Status1', 'st1')
@ -213,9 +199,9 @@ def test_create_formdata_tracking_code(two_pubs, emails):
assert tracking_code in emails.get('Foobar')['payload']
def test_create_formdata_attach_to_history(two_pubs):
def test_create_formdata_attach_to_history(pub):
FormDef.wipe()
two_pubs.tracking_code_class.wipe()
pub.tracking_code_class.wipe()
target_formdef = FormDef()
target_formdef.name = 'target form'
@ -270,8 +256,8 @@ def test_create_formdata_attach_to_history(two_pubs):
assert 'New form created (deleted, 1-1)' in str(formdata.evolution[-1].parts[0].view())
def test_create_formdata_card_item_mapping(two_pubs):
two_pubs.loggederror_class.wipe()
def test_create_formdata_card_item_mapping(pub):
pub.loggederror_class.wipe()
FormDef.wipe()
CardDef.wipe()
@ -363,7 +349,7 @@ def test_create_formdata_card_item_mapping(two_pubs):
target_formdata = target_formdef.data_class().select()[0]
assert target_formdata.data.get('0') is None
assert target_formdata.data.get('0_display') is None
assert two_pubs.loggederror_class.count() == 1
assert two_pubs.loggederror_class.count() == 1
error = two_pubs.loggederror_class.select()[0]
assert pub.loggederror_class.count() == 1
assert pub.loggederror_class.count() == 1
error = pub.loggederror_class.select()[0]
assert error.exception_message == "unknown card value ('XXX')"

View File

@ -20,8 +20,9 @@ def teardown_module(module):
clean_temporary_pub()
def pub_fixture(**kwargs):
pub = create_temporary_pub(**kwargs)
@pytest.fixture
def pub():
pub = create_temporary_pub()
pub.cfg['language'] = {'language': 'en'}
pub.write_cfg()
req = HTTPRequest(None, {'SERVER_NAME': 'example.net', 'SCRIPT_NAME': ''})
@ -33,16 +34,6 @@ def pub_fixture(**kwargs):
return pub
@pytest.fixture
def pub(request):
return pub_fixture()
@pytest.fixture
def sql_pub(request):
return pub_fixture(sql_mode=True)
def test_notifications(pub, http_requests):
pub.user_class.wipe()
FormDef.wipe()
@ -152,15 +143,15 @@ def test_notifications(pub, http_requests):
assert set(json.loads(http_requests.get_last('body'))['name_ids']) == {'xxy1'}
def test_notifications_to_users_template(sql_pub, http_requests):
sql_pub.user_class.wipe()
def test_notifications_to_users_template(pub, http_requests):
pub.user_class.wipe()
FormDef.wipe()
user1 = sql_pub.user_class(name='userA')
user1 = pub.user_class(name='userA')
user1.name_identifiers = ['xxy1']
user1.email = 'user1@example.com'
user1.store()
user2 = sql_pub.user_class(name='userB')
user2 = pub.user_class(name='userB')
user2.name_identifiers = ['xxy2']
user2.email = 'user2@example.com'
user2.store()
@ -193,9 +184,9 @@ def test_notifications_to_users_template(sql_pub, http_requests):
formdata.store()
assert not SendNotificationWorkflowStatusItem.is_available()
if not sql_pub.site_options.has_section('variables'):
sql_pub.site_options.add_section('variables')
sql_pub.site_options.set('variables', 'portal_url', 'https://portal/')
if not pub.site_options.has_section('variables'):
pub.site_options.add_section('variables')
pub.site_options.set('variables', 'portal_url', 'https://portal/')
assert SendNotificationWorkflowStatusItem.is_available()
item = SendNotificationWorkflowStatusItem()
@ -254,8 +245,8 @@ def test_notifications_to_users_template(sql_pub, http_requests):
item.perform(formdata)
assert http_requests.count() == 1
assert set(json.loads(http_requests.get_last('body'))['name_ids']) == {'xxy1'}
assert sql_pub.loggederror_class.count() == 1
logged_error = sql_pub.loggederror_class.select()[0]
assert pub.loggederror_class.count() == 1
logged_error = pub.loggederror_class.select()[0]
assert logged_error.summary == 'Failed to notify user (not found: "foobar")'
assert logged_error.formdata_id == str(formdata.id)
@ -264,8 +255,8 @@ def test_notifications_to_users_template(sql_pub, http_requests):
http_requests.empty()
item.perform(formdata)
assert http_requests.count() == 0
assert sql_pub.loggederror_class.count() == 2
logged_error = sql_pub.loggederror_class.select()[1]
assert pub.loggederror_class.count() == 2
logged_error = pub.loggederror_class.select()[1]
assert logged_error.summary == 'Failed to notify users, bad template result (None)'
assert logged_error.formdata_id == str(formdata.id)
@ -274,14 +265,13 @@ def test_notifications_to_users_template(sql_pub, http_requests):
http_requests.empty()
item.perform(formdata)
assert http_requests.count() == 0
assert sql_pub.loggederror_class.count() == 3
logged_error = sql_pub.loggederror_class.select()[2]
assert pub.loggederror_class.count() == 3
logged_error = pub.loggederror_class.select()[2]
assert logged_error.summary == 'Failed to compute template'
assert logged_error.formdata_id == str(formdata.id)
def test_notifications_target_url(sql_pub, http_requests):
pub = sql_pub
def test_notifications_target_url(pub, http_requests):
pub.substitutions.feed(pub)
pub.user_class.wipe()
user = pub.user_class()