From d11bdc1a6f5717f9247a8aa9d337e13c46ae317c Mon Sep 17 00:00:00 2001 From: o32patel Date: Mon, 22 Jan 2024 06:37:25 +0000 Subject: [PATCH] add ceod unit tests for valid usernames --- ceod/api/members.py | 2 +- tests/ceod/api/test_members.py | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/ceod/api/members.py b/ceod/api/members.py index b342852..29ba20d 100644 --- a/ceod/api/members.py +++ b/ceod/api/members.py @@ -46,7 +46,7 @@ def create_user(): uid_validator = validate_username(body['uid']) if not uid_validator.is_valid: - raise BadRequest(f"bad uid: {uid_validator.error_message}") + raise BadRequest("Attribute 'uid' is missing or invalid") if terms: logger.info(f"Creating member {body['uid']} for terms {terms}") diff --git a/tests/ceod/api/test_members.py b/tests/ceod/api/test_members.py index 4411e66..a8bb176 100644 --- a/tests/ceod/api/test_members.py +++ b/tests/ceod/api/test_members.py @@ -135,6 +135,40 @@ def test_api_create_user_without_forwarding_addresses(cfg, client): assert data['error'] == "BadRequest: Attribute 'forwarding_addresses' is missing or empty" +def test_api_create_user_without_valid_username(cfg, client): + status, data = client.post('/api/members', json={ + 'uid': '4_test', + 'cn': 'Test Four', + 'given_name': 'Test', + 'sn': 'Four', + 'program': 'Math', + 'terms': ['w2024'], + 'forwarding_addresses': ['test4@uwaterloo.internal'], + }) + try: + assert status == 400 + assert data['error'] == "BadRequest: Attribute 'uid' is missing or invalid" + finally: + client.delete('/api/members/4_test') + + +def test_api_create_user_with_valid_username(cfg, client): + status, data = client.post('/api/members', json={ + 'uid': 'test-4', + 'cn': 'Test Four', + 'given_name': 'Test', + 'sn': 'Four', + 'program': 'Math', + 'terms': ['w2024'], + 'forwarding_addresses': ['test4@uwaterloo.internal'], + }) + try: + assert status == 200 + assert data[-1]['status'] == 'completed' + finally: + client.delete('/api/members/test-4') + + def test_api_get_user(cfg, client, create_user_result): old_data = create_user_result.copy() uid = old_data['uid']