Publicado el :
Prueba / Macro CREATION_INTERNE

Pruebas unitarias para mp_zip y mp_unzip

Este código también está disponible en: Deutsch English Français
En espera de validación
Este programa ejecuta una serie de tres pruebas para verificar la robustez de las macros de compresión SASjs (mp_zip y mp_unzip). Los escenarios cubiertos son: 1) La compresión de un archivo de texto único. 2) La compresión de una lista de archivos referenciados en una tabla SAS©. 3) La compresión de un directorio completo. Cada prueba es seguida de una etapa de descompresión y una aserción (mp_assert) que compara el contenido de los archivos extraídos con el contenido original para garantizar la integridad de los datos.
Análisis de datos

Type : CREATION_INTERNE


Todos los datos y archivos de prueba se generan dinámicamente en el directorio WORK o en un subdirectorio temporal ('zipme') durante la ejecución del script.

1 Bloque de código
DATA STEP Data
Explicación :
Inicialización del entorno de prueba (rutas) y creación de un archivo de texto ficticio para el primer escenario.
¡Copiado!
1%let work=%sysfunc(pathname(work));
2%let root=&work/zipme;
3 
4/* TEST 1 - zip a file */
5%mf_mkdir(&root)
6 
7DATA _null_;
8 file "&root/test.txt";
9 put "houston, this is a test";
10RUN;
2 Bloque de código
MACRO
Explicación :
Ejecución de la Prueba 1: Compresión del archivo único, descompresión, lectura del resultado y validación mediante mp_assert.
¡Copiado!
1%mp_zip(in=&root/test.txt
2 ,type=FILE
3 ,outpath=&work
4 ,outname=myFile
5)
6 
7%mp_unzip(ziploc="&work/myFile.zip",outdir=&work)
8 
9DATA _null_;
10 INFILE "&work/test.txt";
11 INPUT;
12 call symputx('content1',_infile_);
13 putlog _infile_;
14RUN;
15 
16%mp_assert(
17 iftrue=(
18 %str(&content1)=%str(houston, this is a test)
19 ),
20 desc=Checking IF file zip / unzip works,
21 outds=work.test_results
22)
3 Bloque de código
DATA STEP Data
¡Copiado!
1/* TEST 2 - zip a dataset of files */
2DATA _null_;
3 file "&root/test2.txt";
4 put "houston, this is test2";
5RUN;
6LIBNAME tmp "&root";
7DATA tmp.test;
8 filepath="&root/test2.txt";
9RUN;
4 Bloque de código
MACRO
Explicación :
Ejecución de la Prueba 2: Compresión basada en la tabla SAS (type=DATASET), descompresión y validación del contenido.
¡Copiado!
1%mp_zip(in=tmp.test
2 ,incol=filepath
3 ,type=DATASET
4 ,outpath=&work
5 ,outname=myFile2
6)
7 
8%mp_unzip(ziploc="&work/myFile2.zip",outdir=&work)
9 
10DATA _null_;
11 INFILE "&work/test2.txt";
12 INPUT;
13 call symputx('content2',_infile_);
14 putlog _infile_;
15RUN;
16 
17%mp_assert(
18 iftrue=(
19 %str(&content2)=%str(houston, this is test2)
20 ),
21 desc=Checking IF file zip / unzip from a dataset works,
22 outds=work.test_results
23)
5 Bloque de código
MACRO
Explicación :
Ejecución de la Prueba 3: Compresión de un directorio completo (type=DIRECTORY), descompresión en una nueva carpeta 'out3' y validación de la presencia de los dos archivos originales.
¡Copiado!
1/* TEST 3 - zip a dataset of files */
2%mf_mkdir(&work/out3)
3 
4%mp_zip(in=&root
5 ,type=DIRECTORY
6 ,outpath=&work
7 ,outname=myFile3
8)
9 
10%mp_unzip(ziploc="&work/myFile3.zip",outdir=&work/out3)
11 
12DATA _null_;
13 INFILE "&work/out3/test.txt";
14 INPUT;
15 call symputx('content3a',_infile_);
16 putlog _infile_;
17RUN;
18DATA _null_;
19 INFILE "&work/out3/test2.txt";
20 INPUT;
21 call symputx('content3b',_infile_);
22 putlog _infile_;
23RUN;
24 
25%mp_assert(
26 iftrue=(
27 %str(&content3a)=%str(houston, this is a test)
28 and
29 %str(&content3b)=%str(houston, this is test2)
30 ),
31 desc=Checking IF file zip / unzip from a directory works,
32 outds=work.test_results
33)
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.