56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
from click.testing import CliRunner
|
|
from ceo.cli import cli
|
|
|
|
|
|
def test_positions(cli_setup):
|
|
runner = CliRunner()
|
|
|
|
# Setup test data
|
|
for i in range(5):
|
|
runner.invoke(cli, ['members', 'add', f'test_{i}', '--cn', f'Test {i}', '--program', 'Math', '--terms', '1'], input='y\n')
|
|
runner.invoke(cli, ['groups', 'add', 'exec', '--description', 'Test Group'], input='y\n')
|
|
|
|
result = runner.invoke(cli, [
|
|
'positions', 'set',
|
|
'--president', 'test_0',
|
|
'--vice-president', 'test_1',
|
|
'--sysadmin', 'test_2',
|
|
'--secretary', 'test_3',
|
|
'--webmaster', 'test_4',
|
|
], input='y\n')
|
|
|
|
assert result.exit_code == 0
|
|
assert result.output == '''
|
|
The positions will be updated:
|
|
president: test_0
|
|
vice-president: test_1
|
|
sysadmin: test_2
|
|
secretary: test_3
|
|
webmaster: test_4
|
|
treasurer:
|
|
cro:
|
|
librarian:
|
|
imapd:
|
|
offsck:
|
|
Do you want to continue? [y/N]: y
|
|
Update positions in LDAP... Done
|
|
Update executive group in LDAP... Done
|
|
Subscribe to mailing lists... Done
|
|
Transaction successfully completed.
|
|
'''[1:] # noqa: W291
|
|
|
|
result = runner.invoke(cli, ['positions', 'get'])
|
|
assert result.exit_code == 0
|
|
assert result.output == '''
|
|
president: test_0
|
|
secretary: test_3
|
|
sysadmin: test_2
|
|
vice-president: test_1
|
|
webmaster: test_4
|
|
'''[1:]
|
|
|
|
# Cleanup test data
|
|
for i in range(5):
|
|
runner.invoke(cli, ['members', 'delete', f'test_{i}'], input='y\n')
|
|
runner.invoke(cli, ['groups', 'delete', 'exec'], input='y\n')
|