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

This commit is contained in:
Daniel Sun 2023-02-15 22:51:59 +00:00
parent 23cdaee38d
commit d3cad58a8e
3 changed files with 90 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,91 @@ def test_api_add_member_to_group(client, create_group_result, ldap_user):
assert data['members'] == []
@pytest.fixture(scope='module')
def create_random_names():
# 50 random names generated using this website: https://randomwordgenerator.com/
random_names = [
"inspiration",
"at",
"humor",
"assignment",
"pneumonia",
"sock",
"vision",
"stir",
"mosque",
"qualified",
"infrastructure",
"fuss",
"ceremony",
"sticky",
"essential",
"plastic",
"god",
"ambition",
"brain",
"iron",
"world",
"withdrawal",
"disturbance",
"overlook",
"swipe",
"vessel",
"basin",
"pupil",
"habit",
"favorable",
"pledge",
"discreet",
"dangerous",
"hill",
"glide",
"constitution",
"brilliance",
"lawyer",
"meet",
"girl",
"tribe",
"hobby",
"applaud",
"cow",
"merit",
"rear",
"frighten",
"daughter",
"bullet",
"convert"
]
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.