unittest: adjust package list format with the change of backend.
[platform/upstream/mic.git] / tests / testbase.py
1 #!/usr/bin/python
2 import os 
3 import sys
4 import subprocess, re, shutil, glob
5 import gettext
6
7 _ = gettext.lgettext
8 COLOR_BLACK = "\033[00m"
9 COLOR_RED = "\033[1;31m"
10
11 PRESCRIPTS = """
12 patch -s < ks.p
13 patch -s < conf.p
14 sudo mv /etc/mic/mic.conf /etc/mic/orig.conf
15 sudo mv test.conf /etc/mic/mic.conf 
16 """
17 POSTSCRIPTS = """
18 sudo mv -f /etc/mic/orig.conf /etc/mic/mic.conf
19 """
20
21 def PrepEnv(cases_dir, case, work_env):
22     """prepare working env"""
23     for one in glob.glob(os.path.join(cases_dir, 'base', '*')):
24         shutil.copy(one, work_env)
25     for other in glob.glob(os.path.join(cases_dir, 'test-'+case, '*')):
26         shutil.copy(other, work_env)
27  
28 def ImgCheck(work_env):
29     """check image generate"""
30     genImage = False
31     for root, dirs, files in os.walk(work_env):
32         for name in files:
33             #add raw check support and  XXX.tar file check support
34             m = re.match(r'.*\.(img|raw|iso|usbimg|tar)', name) or re.match(r'system-release',name)
35             if m:
36                 genImage = True
37                 break
38     return genImage
39
40 def RunandCheck(object, work_env):
41     """run mic-image-creator command and check something"""
42     ret = False  
43   
44     cwd = os.getcwd()
45     os.chdir(work_env)
46     os.system(PRESCRIPTS)
47     
48     #set value of "expect"
49     expect = None
50     if "expect" in os.listdir(work_env):
51         exp_f = open('expect', 'r')
52         exp = exp_f.read()
53         if len(exp) > 0:
54             expect = exp.strip()
55     #set cmdline    
56     opt_f = open('options','r')
57     args = opt_f.read().strip()+' test.ks'
58     
59     print args
60     proc = subprocess.Popen(args,stdout = sys.stdout ,stderr=subprocess.PIPE,shell=True)
61     errorinfo = proc.communicate()[1]
62     #check    
63     if expect:
64         if errorinfo.find(expect) != -1:#FIXME
65             ret =True
66     else:
67         proc.wait()
68         ret = ImgCheck(work_env)
69     os.system(POSTSCRIPTS)    
70     os.chdir(cwd)
71     
72     try:
73         object.assertTrue(ret)
74     except object.failureException:
75         raise object.failureException(_("%s%s%s") %(COLOR_RED,errorinfo,COLOR_BLACK))