add api tests and fix ci
continuous-integration/drone/pr Build is passing Details

This commit is contained in:
Daniel Sun 2023-02-15 22:51:59 +00:00
parent 8e6ac6b8f3
commit e99ef5203f
3 changed files with 60 additions and 6 deletions

View File

@ -26,8 +26,8 @@ class SearchGroupController(SyncRequestController):
def group_info_callback(self, button, cn):
self.model.name = cn
self.model.want_info = True;
self.request_in_progress = False;
self.model.want_info = True
self.request_in_progress = False
self.on_next_button_pressed(button)
def on_next_button_pressed(self, button):

View File

@ -2,7 +2,6 @@ import urwid
from .ColumnResponseView import ColumnResponseView
from .utils import decorate_button
from ceo.tui.models import GetGroupModel
class SearchGroupResponseView(ColumnResponseView):
@ -10,9 +9,9 @@ class SearchGroupResponseView(ColumnResponseView):
super().__init__(model, controller, app)
matches = self.model.resp_json.copy()
rows = [ (urwid.Text(resp),
decorate_button(urwid.Button('more info', on_press=self.create_callback(resp))))
for resp in matches if resp != '']
rows = [(urwid.Text(resp),
decorate_button(urwid.Button('more info', on_press=self.create_callback(resp))))
for resp in matches if resp != '']
self.set_rows(rows, on_next=self.controller.get_next_menu_callback('Welcome'))

View File

@ -111,6 +111,61 @@ def test_api_add_member_to_group(client, create_group_result, ldap_user):
assert data['members'] == []
@pytest.fixture(scope='module')
def create_random_names():
# 20 random names generated using this website: https://randomwordgenerator.com/
random_names = [
"inspiration",
"at",
"pneumonia",
"vision",
"infrastructure",
"ceremony",
"plastic",
"ambition",
"brain",
"iron",
"world",
"overlook",
"pledge",
"discreet",
"glide",
"brilliance",
"meet",
"hobby",
"applaud",
"frighten",
]
yield random_names
@pytest.fixture(scope='module')
def create_searchable_groups(client, create_random_names):
random_names = create_random_names
for name in random_names:
status, data = client.post('/api/groups', json={
'cn': name,
'description': 'Groups with distinct names for testing searching',
})
assert status == 200
assert data[-1]['status'] == 'completed'
yield random_names
def test_api_group_search(client, create_searchable_groups):
cns = create_searchable_groups
for i, cn in enumerate(cns):
status, data = client.get(f'/api/groups/search/{cn}/{i + 1}')
assert status == 200
assert data[0] == cn
assert len(data) == (i + 1)
for cn in cns:
status, data = client.delete(f'/api/groups/{cn}')
assert status == 200
assert data[-1]['status'] == 'completed'
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.