Test de la macro ms_getusers

Ce code est également disponible en : Deutsch English Español
Niveau de difficulté
Débutant
Publié le :
Attention : Ce code nécessite des droits administrateur.
Ce script effectue un test complet de la macro `ms_getusers`. Il commence par vérifier l'étanchéité des variables (scope) pour s'assurer que la macro ne pollue pas l'environnement global. Ensuite, il simule un scénario d'administration en créant un groupe unique via `ms_creategroup`, en y ajoutant un utilisateur via `ms_adduser2group`, et en vérifiant que `ms_getusers` extrait correctement ce nouveau membre.
Analyse des données

Type : MIXTE


Le script génère ses propres données de test (création de groupe) via des macros d'administration et interroge les métadonnées du système (utilisateurs/groupes) via la macro testée.

1 Bloc de code
MACRO CALL Data
Explication :
Initialisation du test de portée (scope snapshot), exécution de la macro `ms_getusers` pour récupérer tous les utilisateurs, vérification qu'aucune variable n'a fuité (sauf exceptions listées), et assertion que la table de sortie contient au moins une observation.
Copié !
1%mp_assertscope(SNAPSHOT)
2%ms_getusers(outds=work.test1,mdebug=&sasjs_mdebug)
3%mp_assertscope(COMPARE
4 ,ignorelist=MCLIB0_JADP1LEN MCLIB0_JADPNUM MCLIB0_JADVLEN
5)
6 
7%mp_assertdsobs(work.test1,test=ATLEAST 1)
2 Bloc de code
DATA STEP Data
Explication :
Génération d'un nom de groupe unique et création de ce groupe via `ms_creategroup`. L'identifiant du groupe généré (groupid) est récupéré dans une macro-variable `gid` via un Data Step.
Copié !
1/* create a group */
2%let group=%substr(%mf_getuniquename(),1,8);
3%ms_creategroup(&group, desc=some desc,mdebug=&sasjs_mdebug,outds=work.group)
4%let gid=0;
5DATA _null_;
6 SET work.group;
7 call symputx('gid',groupid);
8RUN;
3 Bloc de code
MACRO CALL
Explication :
Ajout de l'utilisateur avec l'ID 1 au groupe nouvellement créé via `ms_adduser2group`, puis extraction des membres de ce groupe spécifique dans la table `test2`.
Copié !
1/* add a member */
2%ms_adduser2group(uid=1,gid=&gid)
3 
4/* extract the members */
5%ms_getusers(group=&group,outds=test2)
4 Bloc de code
MACRO CALL
Explication :
Vérification finale : le script parcourt la table résultante pour confirmer la présence de l'utilisateur (ID 1) et utilise `mp_assert` pour valider le succès du test dans les résultats.
Copié !
1/* check the user is in the output list */
2%let checkid=0;
3DATA _null_;
4 SET work.test2;
5 IF id=1 THEN call symputx('checkid',1);
6RUN;
7%mp_assert(
8 iftrue=(&checkid=1),
9 desc=Checking that admin user was created in the new group,
10 outds=work.test_results
11)
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.