diff --git a/tests/ceod/api/test_groups.py b/tests/ceod/api/test_groups.py index 055e58a..e13b172 100644 --- a/tests/ceod/api/test_groups.py +++ b/tests/ceod/api/test_groups.py @@ -111,7 +111,7 @@ def test_api_add_member_to_group(client, create_group_result, ldap_user): assert data['members'] == [] -def test_api_group_auxiliary(cfg, client, ldap_user): +def test_api_group_auxiliary(cfg, client, ldap_user, g_admin_ctx): # Make sure that syscom has auxiliary mailing lists and groups # defined in ceod_test_local.ini. # Also make sure that the auxiliary mailing lists are defined in @@ -124,14 +124,15 @@ def test_api_group_auxiliary(cfg, client, ldap_user): group_names = ['syscom'] + aux_groups groups = [] - for group_name in group_names: - group = Group( - cn=group_name, - gid_number=min_uid, - ) - group.add_to_ldap() - groups.append(group) - min_uid += 1 + with g_admin_ctx(): + for group_name in group_names: + group = Group( + cn=group_name, + gid_number=min_uid, + ) + group.add_to_ldap() + groups.append(group) + min_uid += 1 uid = ldap_user.uid _, data = client.post(f'/api/groups/syscom/members/{uid}') @@ -158,5 +159,6 @@ def test_api_group_auxiliary(cfg, client, ldap_user): ] assert data == expected - for group in groups: - group.remove_from_ldap() + with g_admin_ctx(): + for group in groups: + group.remove_from_ldap() diff --git a/tests/ceod/model/test_group.py b/tests/ceod/model/test_group.py index 97200ee..2dbb3e5 100644 --- a/tests/ceod/model/test_group.py +++ b/tests/ceod/model/test_group.py @@ -4,7 +4,7 @@ from ceo_common.errors import GroupNotFoundError, UserAlreadyInGroupError, \ UserNotInGroupError -def test_group_add_to_ldap(simple_group, ldap_srv, g_admin): +def test_group_add_to_ldap(simple_group, ldap_srv): group = simple_group group.add_to_ldap() @@ -16,7 +16,7 @@ def test_group_add_to_ldap(simple_group, ldap_srv, g_admin): ldap_srv.get_group(group.cn) -def test_group_members(ldap_group, ldap_srv, g_admin): +def test_group_members(ldap_group, ldap_srv): group = ldap_group group.add_member('member1') @@ -38,21 +38,24 @@ def test_group_members(ldap_group, ldap_srv, g_admin): group.remove_member('member1') -def test_group_to_dict(ldap_group, ldap_user): +def test_group_to_dict(ldap_group, ldap_user, g_admin_ctx): group = ldap_group - expected = { - 'cn': group.cn, - 'description': group.user_cn, - 'gid_number': group.gid_number, - 'members': [], - } - assert group.to_dict() == expected + with g_admin_ctx(): + # we need LDAP credentials because to_dict() might make calls + # to LDAP + expected = { + 'cn': group.cn, + 'description': group.user_cn, + 'gid_number': group.gid_number, + 'members': [], + } + assert group.to_dict() == expected - group.add_member(ldap_user.uid) - expected['members'].append({ - 'uid': ldap_user.uid, - 'cn': ldap_user.cn, - 'program': ldap_user.program, - }) - assert group.to_dict() == expected + group.add_member(ldap_user.uid) + expected['members'].append({ + 'uid': ldap_user.uid, + 'cn': ldap_user.cn, + 'program': ldap_user.program, + }) + assert group.to_dict() == expected diff --git a/tests/ceod/model/test_user.py b/tests/ceod/model/test_user.py index fc49a8a..d57c714 100644 --- a/tests/ceod/model/test_user.py +++ b/tests/ceod/model/test_user.py @@ -7,7 +7,7 @@ from ceo_common.errors import UserNotFoundError, UserAlreadyExistsError from ceod.model import User -def test_user_add_to_ldap(cfg, ldap_srv, simple_user, g_admin): +def test_user_add_to_ldap(cfg, ldap_srv, simple_user): user = simple_user min_id = cfg.get('members_min_id') user.add_to_ldap() @@ -23,7 +23,7 @@ def test_user_add_to_ldap(cfg, ldap_srv, simple_user, g_admin): ldap_srv.get_user(user.uid) -def test_club_add_to_ldap(cfg, ldap_srv, simple_club, g_admin): +def test_club_add_to_ldap(cfg, ldap_srv, simple_club): club = simple_club min_id = cfg.get('clubs_min_id') club.add_to_ldap() @@ -33,7 +33,7 @@ def test_club_add_to_ldap(cfg, ldap_srv, simple_club, g_admin): club.remove_from_ldap() -def test_get_display_info_for_users(cfg, ldap_srv, g_admin): +def test_get_display_info_for_users(cfg, ldap_srv): user1 = User( uid='test_1', cn='Test One', @@ -101,7 +101,7 @@ def test_user_forwarding_addresses(cfg, ldap_user): assert not os.path.isdir(user.home_directory) -def test_user_terms(ldap_user, ldap_srv, g_admin): +def test_user_terms(ldap_user, ldap_srv): user = ldap_user user.add_terms(['f2021']) @@ -113,7 +113,7 @@ def test_user_terms(ldap_user, ldap_srv, g_admin): assert ldap_srv.get_user(user.uid).non_member_terms == user.non_member_terms -def test_user_positions(ldap_user, ldap_srv, g_admin): +def test_user_positions(ldap_user, ldap_srv): user = ldap_user user.add_position('treasurer') @@ -135,7 +135,7 @@ def test_user_change_password(krb_user): user.change_password('new_password') -def test_login_shell(ldap_user, ldap_srv, g_admin): +def test_login_shell(ldap_user, ldap_srv): user = ldap_user user.replace_login_shell('/bin/sh') diff --git a/tests/conftest.py b/tests/conftest.py index aa1fcce..8944d88 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -221,21 +221,6 @@ def app( return app -@pytest.fixture -def g_admin(cfg, ceod_admin_creds, app): - """ - Store the creds for ceod/admin in flask.g. - This fixture should be used any time LDAP is modified via the LDAPService. - """ - admin_principal = cfg.get('ldap_admin_principal') - with app.test_request_context(): - try: - flask.g.sasl_user = admin_principal - yield - finally: - flask.g.pop('sasl_user') - - @pytest.fixture(scope='session') def mocks_for_create_user(): with patch.object(utils, 'gen_password') as gen_password_mock, \