Skip to content

Commit 4ec08c9

Browse files
authored
feat: Coginto class Update (#84)
* feat: add AUDIT log level for upload * chore: update outdated tests * fix: allow empty str as RESULT_PATH_PREFIX & replace w/ default val * feat: add more methods to cognito class * feat: add more methods
1 parent cdcad15 commit 4ec08c9

File tree

2 files changed

+63
-3
lines changed

2 files changed

+63
-3
lines changed

mdps_ds_lib/lib/aws/aws_cognito.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,50 @@ def get_groups(self, username: str):
1818
return []
1919
belonged_groups = [k['GroupName'] for k in response['Groups']]
2020
return belonged_groups
21+
22+
def add_user_to_group(self, username: str, group_name: str):
23+
# https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cognito-idp/client/admin_add_user_to_group.html
24+
25+
response = self.__cognito.admin_add_user_to_group(
26+
UserPoolId=self.__user_pool_id,
27+
Username=username,
28+
GroupName=group_name,
29+
)
30+
if response['ResponseMetadata']['HTTPStatusCode'] != 200:
31+
raise RuntimeError(response)
32+
return response
33+
34+
def remove_user_from_group(self, username: str, group_name: str):
35+
# https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cognito-idp/client/admin_remove_user_from_group.html
36+
response = self.__cognito.admin_remove_user_from_group(
37+
UserPoolId=self.__user_pool_id,
38+
Username=username,
39+
GroupName=group_name,
40+
)
41+
if response['ResponseMetadata']['HTTPStatusCode'] != 200:
42+
raise RuntimeError(response)
43+
return response
44+
45+
def add_group(self, group_name: str):
46+
# https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cognito-idp/client/create_group.html
47+
response = self.__cognito.create_group(
48+
GroupName=group_name,
49+
UserPoolId=self.__user_pool_id,
50+
# Description='NA',
51+
# RoleArn='string',
52+
)
53+
if response['ResponseMetadata']['HTTPStatusCode'] != 200:
54+
raise RuntimeError(response)
55+
return response
56+
57+
def delete_group(self, group_name: str):
58+
# https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cognito-idp/client/delete_group.html
59+
response = self.__cognito.delete_group(
60+
GroupName=group_name,
61+
UserPoolId=self.__user_pool_id,
62+
# Description='NA',
63+
# RoleArn='string',
64+
)
65+
if response['ResponseMetadata']['HTTPStatusCode'] != 200:
66+
raise RuntimeError(response)
67+
return response

tests/mdps_ds_lib/lib/aws/test_aws_cognito.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,22 @@
55

66
class TestAwsCognitor(TestCase):
77
def test_01(self):
8-
cognito = AwsCognito('us-west-2_FLDyXE2mO')
9-
wphyo_groups = cognito.get_groups('wphyo')
8+
cognito = AwsCognito('us-west-2_yaOw3yj0z')
9+
sample_group_name = 'UNIT_TEST_GROUP_WPHYO'
10+
username = 'wphyo'
11+
result = cognito.add_group(sample_group_name)
12+
print(result)
13+
result = cognito.add_user_to_group(username, sample_group_name)
14+
print(result)
15+
wphyo_groups = cognito.get_groups(username)
1016
self.assertTrue(isinstance(wphyo_groups, list), f'response is not list. {wphyo_groups}')
1117
self.assertTrue(len(wphyo_groups) > 0, f'empty list')
12-
print(wphyo_groups)
18+
self.assertTrue(sample_group_name in wphyo_groups, f'empty list')
19+
result = cognito.remove_user_from_group(username, sample_group_name)
20+
print(result)
21+
wphyo_groups = cognito.get_groups(username)
22+
self.assertTrue(isinstance(wphyo_groups, list), f'response is not list. {wphyo_groups}')
23+
self.assertTrue(sample_group_name not in wphyo_groups, f'empty list')
24+
result = cognito.delete_group(sample_group_name)
25+
print(result)
1326
return

0 commit comments

Comments
 (0)