63 lines
2.0 KiB
Python
63 lines
2.0 KiB
Python
from click.testing import CliRunner
|
|
|
|
from ceo.cli import cli
|
|
from ceo_common.model import Term
|
|
from tests.utils import (
|
|
create_php_file_for_club,
|
|
reset_disable_club_conf,
|
|
set_datetime_in_app_process,
|
|
restore_datetime_in_app_process,
|
|
)
|
|
|
|
|
|
def test_disable_club_sites(
|
|
cfg, cli_setup, app_process, webhosting_srv, webhosting_srv_resources,
|
|
new_club_gen, new_user_gen, g_admin_ctx, ldap_srv_session,
|
|
):
|
|
runner = CliRunner()
|
|
term = Term.current()
|
|
clubs_home = cfg.get('clubs_home')
|
|
with new_club_gen() as group, new_user_gen() as user:
|
|
create_php_file_for_club(clubs_home, group.cn)
|
|
user.add_non_member_terms([str(Term.current())])
|
|
group.add_member(user.uid)
|
|
|
|
set_datetime_in_app_process(app_process, (term + 4).to_datetime())
|
|
|
|
result = runner.invoke(cli, ['webhosting', 'disableclubsites', '--dry-run'])
|
|
assert result.exit_code == 0
|
|
assert result.output.endswith(
|
|
'The following club websites would have been disabled:\n'
|
|
f'{group.cn}\n'
|
|
)
|
|
|
|
result = runner.invoke(cli, ['webhosting', 'disableclubsites'], input='y\n')
|
|
assert result.exit_code == 0
|
|
assert result.output.endswith(
|
|
'The following club websites were disabled:\n'
|
|
f'{group.cn}\n'
|
|
)
|
|
|
|
with g_admin_ctx():
|
|
group = ldap_srv_session.get_group(group.cn)
|
|
assert group.members == [user.uid]
|
|
|
|
reset_disable_club_conf(webhosting_srv)
|
|
|
|
result = runner.invoke(
|
|
cli,
|
|
['webhosting', 'disableclubsites', '--remove-inactive-club-reps'],
|
|
input='y\n'
|
|
)
|
|
assert result.exit_code == 0
|
|
assert result.output.endswith(
|
|
'The following club websites were disabled:\n'
|
|
f'{group.cn}\n'
|
|
)
|
|
|
|
with g_admin_ctx():
|
|
group = ldap_srv_session.get_group(group.cn)
|
|
assert group.members == []
|
|
|
|
restore_datetime_in_app_process(app_process)
|