Skip to content

Commit 44b23fa

Browse files
silabs-borislrzr
authored andcommitted
UIC-3222: Python script for User Credential CTT
1 parent bc3cb4b commit 44b23fa

File tree

2 files changed

+171
-0
lines changed

2 files changed

+171
-0
lines changed
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import mqtt.mqtt_manager as mqtt_manager
2+
import utils.utils as utils
3+
4+
CLUSTER_NAME = "UserCredential"
5+
6+
7+
class CredentialType:
8+
PINCode = "PINCode"
9+
Password = "Password"
10+
RFIDCode = "RFIDCode"
11+
BLE = "BLE"
12+
NFC = "NFC"
13+
UWB = "UWB"
14+
EyeBiometric = "EyeBiometric"
15+
FaceBiometric = "FaceBiometric"
16+
FingerBiometric = "FingerBiometric"
17+
HandBiometric = "HandBiometric"
18+
UnspecifiedBiometric = "UnspecifiedBiometric"
19+
20+
21+
22+
23+
24+
25+
def add_user(user_id):
26+
mqtt_manager.send_unify_cluster_command(CLUSTER_NAME, "AddUser",
27+
'{"UserUniqueID":%d,"UserType":"GeneralUser","UserActiveState":true,"CredentialRule":"Single","UserName":"","ExpiringTimeoutMinutes":0,"UserNameEncoding":"ASCII"}' % user_id)
28+
29+
def modify_user(user_id, user_name):
30+
mqtt_manager.send_unify_cluster_command(CLUSTER_NAME, "ModifyUser",
31+
'{"UserUniqueID":%d,"UserType":"GeneralUser","UserActiveState":true,"CredentialRule":"Single","UserName":"%s","ExpiringTimeoutMinutes":0,"UserNameEncoding":"ASCII"}' % (user_id, user_name))
32+
33+
def delete_user(user_id):
34+
mqtt_manager.send_unify_cluster_command(CLUSTER_NAME, "DeleteUser",
35+
'{"UserUniqueID":%d}' % user_id)
36+
37+
def add_credential(user_id, credential_type, credential_slot, credential_data):
38+
mqtt_manager.send_unify_cluster_command(CLUSTER_NAME, "AddCredential",
39+
'{"UserUniqueID":%d,"CredentialType":"%s","CredentialSlot":%d,"CredentialData":"%s"}' % (user_id, credential_type, credential_slot, credential_data))
40+
41+
def modify_credential(user_id, credential_type, credential_slot, credential_data):
42+
mqtt_manager.send_unify_cluster_command(CLUSTER_NAME, "ModifyCredential",
43+
'{"UserUniqueID":%d,"CredentialType":"%s","CredentialSlot":%d,"CredentialData":"%s"}' % (user_id, credential_type, credential_slot, credential_data))
44+
45+
def delete_credential(user_id, credential_type, credential_slot):
46+
mqtt_manager.send_unify_cluster_command(CLUSTER_NAME, "DeleteCredential",
47+
'{"UserUniqueID":%d,"CredentialType":"%s","CredentialSlot":%d}' % (user_id, credential_type, credential_slot))
48+
49+
50+
def delete_all_users():
51+
mqtt_manager.send_unify_cluster_command(CLUSTER_NAME, "DeleteAllUsers")
52+
53+
def delete_credential_for_user_by_type(user_id, credential_type):
54+
mqtt_manager.send_unify_cluster_command(CLUSTER_NAME, "DeleteAllCredentialsForUserByType",
55+
'{"UserUniqueID":%d,"CredentialType":"%s"}' % (user_id, credential_type))
56+
57+
def delete_all_credentials_for_user(user_id):
58+
mqtt_manager.send_unify_cluster_command(CLUSTER_NAME, "DeleteAllCredentialsForUser",
59+
'{"UserUniqueID":%d}' % user_id)
60+
61+
def delete_all_credentials():
62+
mqtt_manager.send_unify_cluster_command(CLUSTER_NAME, "DeleteAllCredentials")
63+
64+
def delete_all_credential_types(credentials_type):
65+
mqtt_manager.send_unify_cluster_command(CLUSTER_NAME, "DeleteAllCredentialsByType",
66+
'{"CredentialType":"%s"}' % credentials_type)
67+
68+
def set_admin_pin_code(admin_pin_code):
69+
mqtt_manager.send_unify_cluster_command(CLUSTER_NAME, "SetAdminPINCode",
70+
'{"PINCode":"%s"}' % admin_pin_code)
71+
72+
def deactivate_admin_pin_code():
73+
mqtt_manager.send_unify_cluster_command(CLUSTER_NAME, "DeactivateAdminPINCode")
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
#!/usr/bin/env python3
2+
3+
import mqtt.mqtt_manager as mqtt_manager
4+
import utils.pretty_print as display
5+
6+
from clusters import user_credential
7+
8+
# Data for the test
9+
# New user
10+
NEW_USER_ID = 1
11+
NEW_USER_NAME = "SHOCKBAR"
12+
# New Credential
13+
NEW_CREDENTIAL_TYPE = user_credential.CredentialType.PINCode
14+
NEW_CREDENTIAL_SLOT = 1
15+
NEW_CREDENTIAL_ORIGINAL_PIN_CODE = "1273"
16+
NEW_CREDENTIAL_MODIFIED_PIN_CODE = "1291"
17+
18+
# Credential to be deleted
19+
DELETED_CREDENTIAL_TYPE = user_credential.CredentialType.PINCode
20+
DELETED_USER_ID = 1
21+
22+
# Taken from CTT test case
23+
NEW_ADMIN_PIN_CODE = "0112358"
24+
25+
def add_user():
26+
display.action_description(f"Adding User #{NEW_USER_ID}")
27+
user_credential.add_user(NEW_USER_ID)
28+
29+
def modify_user():
30+
display.action_description(f"Modifying Username of User #{NEW_USER_ID} to {NEW_USER_NAME}")
31+
user_credential.modify_user(NEW_USER_ID, NEW_USER_NAME)
32+
33+
def add_credential():
34+
display.action_description(f"Adding Credential for User #{NEW_USER_ID}")
35+
user_credential.add_credential(NEW_USER_ID, NEW_CREDENTIAL_TYPE, NEW_CREDENTIAL_SLOT, NEW_CREDENTIAL_ORIGINAL_PIN_CODE)
36+
37+
def modify_credential():
38+
display.action_description(f"Modifying Credential for User #{NEW_USER_ID}")
39+
user_credential.modify_credential(NEW_USER_ID, NEW_CREDENTIAL_TYPE, NEW_CREDENTIAL_SLOT, NEW_CREDENTIAL_MODIFIED_PIN_CODE)
40+
41+
def delete_credential():
42+
display.action_description(f"Removing Credential for User #{NEW_USER_ID}")
43+
user_credential.delete_credential(NEW_USER_ID, NEW_CREDENTIAL_TYPE, NEW_CREDENTIAL_SLOT)
44+
45+
def delete_user():
46+
display.action_description(f"Removing User #{NEW_USER_ID}")
47+
user_credential.delete_user(NEW_USER_ID)
48+
49+
def delete_all_users():
50+
display.action_description(f"Removing All Users")
51+
user_credential.delete_all_users()
52+
53+
def delete_credential_for_user_by_type():
54+
display.action_description(f"Removing Credential Type {DELETED_CREDENTIAL_TYPE} for User #{NEW_USER_ID}")
55+
user_credential.delete_credential_for_user_by_type(DELETED_USER_ID, DELETED_CREDENTIAL_TYPE)
56+
57+
def delete_all_credentials_for_user():
58+
display.action_description(f"Removing All Credentials for User #{NEW_USER_ID}")
59+
user_credential.delete_all_credentials_for_user(DELETED_USER_ID)
60+
61+
def delete_all_credentials():
62+
display.action_description(f"Removing All Credentials")
63+
user_credential.delete_all_credentials()
64+
65+
def delete_all_credential_types():
66+
display.action_description(f"Removing All Credential Types : {DELETED_CREDENTIAL_TYPE}")
67+
user_credential.delete_all_credential_types(DELETED_CREDENTIAL_TYPE)
68+
69+
def set_admin_pin_code():
70+
display.action_description(f"Setting Admin Pin Code to #{NEW_ADMIN_PIN_CODE}")
71+
user_credential.set_admin_pin_code(NEW_ADMIN_PIN_CODE)
72+
73+
def deactivate_admin_pin_code():
74+
display.action_description(f"Deactivating Admin Pin Code")
75+
user_credential.deactivate_admin_pin_code()
76+
77+
if __name__ == '__main__':
78+
mqtt_manager.add_node()
79+
80+
add_user()
81+
modify_user()
82+
83+
add_credential()
84+
modify_credential()
85+
delete_credential()
86+
87+
delete_user()
88+
89+
delete_all_users()
90+
delete_credential_for_user_by_type()
91+
delete_all_credentials_for_user()
92+
delete_all_credentials()
93+
delete_all_credential_types()
94+
95+
set_admin_pin_code()
96+
deactivate_admin_pin_code()
97+
98+
mqtt_manager.remove_node()

0 commit comments

Comments
 (0)