diff --git a/sasjs/sasjsconfig.json b/sasjs/sasjsconfig.json index 45681df..780bd1f 100644 --- a/sasjs/sasjsconfig.json +++ b/sasjs/sasjsconfig.json @@ -110,4 +110,4 @@ "contextName": "SAS Job Execution compute context" } ] -} +} \ No newline at end of file diff --git a/tests/viyaonly/mv_deleteviyafolder.test.sas b/tests/viyaonly/mv_deleteviyafolder.test.sas new file mode 100644 index 0000000..594c037 --- /dev/null +++ b/tests/viyaonly/mv_deleteviyafolder.test.sas @@ -0,0 +1,52 @@ +/** + @file + @brief Testing mv_deleteviyafolder macro function + +

SAS Macros

+ @li mf_uid.sas + @li mfv_existfolder.sas + @li mp_assert.sas + @li mp_assertscope.sas + @li mv_createfolder.sas + @li mv_deleteviyafolder.sas + +**/ + +options mprint sgen; + +%let folder=%mf_uid(); +%let tgtfolder=&mcTestAppLoc/temp/&folder; + +/* create a folder */ +%mv_createfolder(path=&tgtfolder) + + +%mp_assert( + iftrue=(%mfv_existfolder(&tgtfolder)=1), + desc=Check if created folder exists +) + +%mp_assertscope(SNAPSHOT) +%mv_deleteviyafolder(path=&tgtfolder) +/* ignore proc json vars */ +%mp_assertscope(COMPARE + ,ignorelist=MCLIB0_JADP1LEN MCLIB0_JADP2LEN MCLIB0_JADVLEN MCLIB2_JADP1LEN + MCLIB2_JADVLEN +) + +%mp_assert( + iftrue=(%mfv_existfolder(&tgtfolder)=0), + desc=Check if deleted folder is gone +) + +/* delete folder with content */ +%mv_createfolder(path=&tgtfolder/content/and/stuff) +%mp_assert( + iftrue=(%mfv_existfolder(&tgtfolder/content/and/stuff)=1), + desc=Check if folder with content exists +) +%mv_deleteviyafolder(path=&tgtfolder) +%mp_assert( + iftrue=(%mfv_existfolder(&tgtfolder)=0), + desc=Check if deleted folder with subfolders is gone +) diff --git a/tests/viyaonly/mv_getjoblog.test.sas b/tests/viyaonly/mv_getjoblog.test.sas index c68248f..7e3e31b 100644 --- a/tests/viyaonly/mv_getjoblog.test.sas +++ b/tests/viyaonly/mv_getjoblog.test.sas @@ -4,6 +4,7 @@

SAS Macros

@li mp_assert.sas + @li mp_assertscope.sas @li mv_createjob.sas @li mv_jobexecute.sas @li mv_jobwaitfor.sas diff --git a/viya/mv_deleteviyafolder.sas b/viya/mv_deleteviyafolder.sas index d69c85b..f83e5cb 100644 --- a/viya/mv_deleteviyafolder.sas +++ b/viya/mv_deleteviyafolder.sas @@ -8,10 +8,16 @@ %mv_deleteviyafolder(path=/Public/test) - @param path= The full path of the folder to be deleted - @param access_token_var= The global macro variable to contain the access token - @param grant_type= valid values are "password" or "authorization_code" (unquoted). - The default is authorization_code. + @param [in] path= The full path of the folder to be deleted + @param [in] access_token_var= (ACCESS_TOKEN) The global macro variable to + contain the access token + @param [in] grant_type= (sas_services) Valid values are: + @li password + @li authorization_code + @li detect - will check if access_token exists, if not will use sas_services + if a SASStudioV session else authorization_code. Default option. + @li sas_services - will use oauth_bearer=sas_services. + @param [in] mdebug= (0) Set to 1 to enable DEBUG messages @version VIYA V.03.04 @@ -29,6 +35,7 @@ %macro mv_deleteviyafolder(path= ,access_token_var=ACCESS_TOKEN ,grant_type=sas_services + ,mdebug=0 ); %local oauth_bearer; %if &grant_type=detect %then %do; @@ -105,14 +112,17 @@ run; %let libref1a=%mf_getuniquelibref(); libname &libref1a JSON fileref=&fname1a; -data _null_; - set &libref1a..items_links; - if href=:'/folders/folders' then return; - if rel='deleteResource' then - call execute('proc http method="DELETE" url='!!quote("&base_uri"!!trim(href)) - !!'; headers "Authorization"="Bearer &&&access_token_var" ' - !!' "Accept"="*/*";run; /**/'); -run; +%if %mf_existds(&libref1a..items_links) %then %do; + data _null_; + set &libref1a..items_links; + if href=:'/folders/folders' then return; + if rel='deleteResource' then + call execute('proc http method="DELETE" url=' + !!quote("&base_uri"!!trim(href)) + !!'; headers "Authorization"="Bearer &&&access_token_var" ' + !!' "Accept"="*/*";run; /**/'); + run; +%end; %put &sysmacroname: perform the delete operation ; %local fname2; @@ -133,9 +143,11 @@ run; %end; %else %put &sysmacroname: &path successfully deleted; -/* clear refs */ -filename &fname1 clear; -filename &fname2 clear; -libname &libref1 clear; +%if &mdebug=0 %then %do; + /* clear refs */ + filename &fname1 clear; + filename &fname2 clear; + libname &libref1 clear; +%end; -%mend mv_deleteviyafolder; \ No newline at end of file +%mend mv_deleteviyafolder; diff --git a/viya/mv_getjobcode.sas b/viya/mv_getjobcode.sas index 0e3703c..40b1509 100644 --- a/viya/mv_getjobcode.sas +++ b/viya/mv_getjobcode.sas @@ -172,6 +172,12 @@ data _null_; else if sourcechar='n' then put '0A'x; else if sourcechar='r' then put '0D'x; else if sourcechar='t' then put '09'x; + else if sourcechar='u' then do; + length uni $4; + input uni $ 4. @@; + sourcechar=unicode('\u'!!uni); + put sourcechar char1.; + end; else do; call symputx('errmsg',"Uncaught escape char: "!!sourcechar,'l'); call symputx('syscc',99);