|
|
|
@ -241,7 +241,7 @@ def test_authz_check(client, create_user_result): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize('term_attr', ['terms', 'non_member_terms']) |
|
|
|
|
def test_expire(client, new_user, term_attr, syscom_group, ldap_conn): |
|
|
|
|
def test_expire(client, new_user, term_attr, ldap_conn): |
|
|
|
|
assert new_user.shadowExpire is None |
|
|
|
|
current_term = Term.current() |
|
|
|
|
start_of_current_term = current_term.to_datetime() |
|
|
|
@ -281,6 +281,7 @@ def test_expire(client, new_user, term_attr, syscom_group, ldap_conn): |
|
|
|
|
|
|
|
|
|
status, data = client.post('/api/members/expire?dry_run=yes') |
|
|
|
|
assert status == 200 |
|
|
|
|
print(data) |
|
|
|
|
assert (data == [uid]) == should_expire |
|
|
|
|
|
|
|
|
|
_, user = client.get(f'/api/members/{uid}') |
|
|
|
@ -306,15 +307,13 @@ def test_expire(client, new_user, term_attr, syscom_group, ldap_conn): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize('in_syscom', [True, False]) |
|
|
|
|
def test_expire_syscom_member(client, new_user, syscom_group, g_admin_ctx, ldap_conn, in_syscom): |
|
|
|
|
def test_expire_syscom_member(client, new_user, ldap_conn, in_syscom): |
|
|
|
|
uid = new_user.uid |
|
|
|
|
start_of_current_term = Term.current().to_datetime() |
|
|
|
|
if in_syscom: |
|
|
|
|
group_dn = new_user.ldap_srv.group_cn_to_dn('syscom') |
|
|
|
|
user_dn = new_user.ldap_srv.uid_to_dn(uid) |
|
|
|
|
changes = { |
|
|
|
|
'uniqueMember': [(ldap3.MODIFY_ADD, [user_dn])] |
|
|
|
|
} |
|
|
|
|
changes = {'uniqueMember': [(ldap3.MODIFY_ADD, [user_dn])]} |
|
|
|
|
ldap_conn.modify(group_dn, changes) |
|
|
|
|
with patch.object(ceo_common.utils, 'get_current_datetime') as datetime_mock: |
|
|
|
|
datetime_mock.return_value = start_of_current_term + datetime.timedelta(days=160) |
|
|
|
@ -324,9 +323,12 @@ def test_expire_syscom_member(client, new_user, syscom_group, g_admin_ctx, ldap_ |
|
|
|
|
assert data == [] |
|
|
|
|
else: |
|
|
|
|
assert data == [uid] |
|
|
|
|
if in_syscom: |
|
|
|
|
changes = {'uniqueMember': [(ldap3.MODIFY_DELETE, [user_dn])]} |
|
|
|
|
ldap_conn.modify(group_dn, changes) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_office_member(cfg, client): |
|
|
|
|
def test_office_member(cfg, client, office_user): |
|
|
|
|
admin_principal = cfg.get('ldap_admin_principal') |
|
|
|
|
ccache_file = cfg.get('ldap_admin_principal_ccache') |
|
|
|
|
if os.path.isfile(ccache_file): |
|
|
|
@ -367,11 +369,17 @@ def test_office_member(cfg, client): |
|
|
|
|
assert status == 200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_membership_renewal_reminder(client, mock_mail_server): |
|
|
|
|
def test_membership_renewal_reminder(cfg, client, mock_mail_server, ldap_conn): |
|
|
|
|
uids = ['test3', 'test4'] |
|
|
|
|
# fast-forward by one term so that we don't clash with the other users |
|
|
|
|
# created by other tests |
|
|
|
|
term = Term.current() + 1 |
|
|
|
|
# Add some terms to ctdalek so that he doesn't show up in the API calls below |
|
|
|
|
base_dn = cfg.get('ldap_users_base') |
|
|
|
|
ldap_conn.modify( |
|
|
|
|
f'uid=ctdalek,{base_dn}', |
|
|
|
|
{'term': [(ldap3.MODIFY_ADD, [str(term), str(term + 1), str(term + 2)])]}) |
|
|
|
|
|
|
|
|
|
with patch.object(ceo_common.utils, 'get_current_datetime') as datetime_mock: |
|
|
|
|
datetime_mock.return_value = term.to_datetime() |
|
|
|
|
for uid in uids: |
|
|
|
@ -433,3 +441,7 @@ def test_membership_renewal_reminder(client, mock_mail_server): |
|
|
|
|
status, _ = client.delete(f'/api/members/{uid}') |
|
|
|
|
assert status == 200 |
|
|
|
|
mock_mail_server.messages.clear() |
|
|
|
|
|
|
|
|
|
ldap_conn.modify( |
|
|
|
|
f'uid=ctdalek,{base_dn}', |
|
|
|
|
{'term': [(ldap3.MODIFY_DELETE, [str(term), str(term + 1), str(term + 2)])]}) |
|
|
|
|