Tizen 2.0 Release
[platform/framework/web/web-ui-fw.git] / libs / js / jquery-mobile-1.2.0 / node_modules / grunt / node_modules / gzip-js / node_modules / deflate-js / test / deflate.py
1 import os
2 from colorama import Fore
3 from helpers import deflate, inflate, run_cmd
4
5 outDirDefault = 'test-outs'
6 testDirDefault = 'test-files'
7
8 """
9 Run a single test
10
11 @param tFile- required; the full path to the file to run
12 @param level- optional (default: all); the compression level [1-9]
13 @param delete- optional (default: True); whether to delete the gzipped files
14 @return True if all tests passed; False if at least one test failed
15 """
16 def runTest(tFile, level=None, delete=True, outDir=outDirDefault):
17         passed = True
18         if level == None:
19                 for x in range(1, 10):
20                         if runTest(tFile, x, delete) == False:
21                                 passed = False
22
23                 return passed
24
25         # make the test-outs directory
26         try:
27                 os.mkdir(outDir)
28         except:
29                 pass
30
31         out1 = os.path.join(outDir, '%(file)s.%(level)d.deflate' % {'file': os.path.basename(tFile), 'level' : level})
32         out2 = os.path.join(outDir, '%(file)s.%(level)d.out.deflate' % {'file': os.path.basename(tFile), 'level' : level})
33
34         outData = deflate(tFile, outfile=out1, level=level)
35         run_cmd('../bin/deflate.js --level %(level)d --file %(file)s --output %(output)s' % {'level' : level, 'file' : tFile, 'output' : out2})
36
37         result = run_cmd('diff %(file1)s %(file2)s' % {'file1' : out1, 'file2' : out2})
38         if result['returncode'] == 0:
39                 status = Fore.GREEN + 'PASSED' + Fore.RESET
40         else:
41                 passed = False
42                 status = Fore.RED + 'FAILED' + Fore.RESET
43         
44         print 'Level %(level)d: %(status)s' % {'level' : level, 'status' : status}
45
46         if delete == True:
47                 os.remove(out1)
48                 os.remove(out2)
49
50         return passed
51
52 """
53 Runs all tests on the given level. This iterates throuth the testDir directory defined above.
54
55 @param level- The level to run on [1-9] (default: None, runs on all levels all)
56 @param delete- Whether to delete output files after the test is run
57 @return True if all levels passed, False if at least one failed
58 """
59 def runAll(level=None, delete=True, testDir=testDirDefault, outDir=outDirDefault):
60         # make the test-outs directory
61         try:
62                 os.mkdir(outDir)
63         except:
64                 pass
65
66         passed = True
67         for tFile in os.listdir(testDir):
68                 fullPath = os.path.join(testDir, tFile)
69
70                 print Fore.YELLOW + tFile + Fore.RESET
71
72                 if runTest(fullPath, level, delete) == False:
73                         passed = False
74
75                 print ''
76         
77         # if we deletede all the files that were created, delete the directory
78         if delete == True:
79                 os.rmdir(outDir)
80                 return passed