55import os , sys , random , tempfile , time
66import commands
77
8- DUMPS_D = "../../pydmidata/ "
8+ DUMPS_D = "private "
99
1010def ascii (s , i ): return "\033 [%d;1m%s\033 [0m" % (30 + i , str (s ))
1111def black (s ): return "\033 [30;1m%s\033 [0m" % (str (s ))
@@ -39,17 +39,22 @@ def white(s): return "\033[37;1m%s\033[0m"%(str(s))
3939total = 0
4040success = 0
4141
42- def test ( r ):
42+ def passed ( ):
4343 global total
4444 global success
45-
4645 total += 1
46+ success += 1
47+ sys .stdout .write ("%s\n " % green ("PASS" ))
48+ def failed ():
49+ global total
50+ total += 1
51+ sys .stdout .write ("%s\n " % red ("FAIL" ))
52+ def test (r ):
4753 if r :
48- sys .stdout .write ("%s\n " % green ("PASS" ))
49- success += 1
54+ passed ()
5055 return True
5156 else :
52- sys . stdout . write ( "%s \n " % red ( "FAIL" ) )
57+ failed ( )
5358 return False
5459
5560total += 1
@@ -58,7 +63,7 @@ def test(r):
5863try :
5964 import dmidecode
6065 success += 1
61- sys . stdout . write ( "%s \n " % green ( "PASS" ) )
66+ passed ( )
6267 sys .stdout .write (" * Version: %s\n " % blue (dmidecode .version ))
6368 sys .stdout .write (" * DMI Version String: %s\n " % blue (dmidecode .dmi ))
6469
@@ -80,8 +85,8 @@ def test(r):
8085
8186 sys .stdout .write (" * Testing that file was actually written..." )
8287 time .sleep (0.1 )
83- test (os .path .exists (DUMP ))
84- os .unlink (DUMP )
88+ if test (os .path .exists (DUMP )):
89+ os .unlink (DUMP )
8590
8691 types = range (0 , 42 )+ range (126 , 128 )
8792 bad_types = [- 1 , - 1000 , 256 ]
@@ -97,40 +102,46 @@ def test(r):
97102 random .shuffle (sections )
98103
99104 for dev in devices :
105+ sys .stdout .write (LINE )
100106 sys .stdout .write (" * Testing %s..." % yellow (dev )); sys .stdout .flush ()
101107 if test (dmidecode .set_dev (dev ) and dmidecode .get_dev () == dev ):
102- sys .stdout .write (LINE )
103108 i = 0
104109 for section in sections :
105- i += 0
106- sys .stdout .write (" * Testing %s (%s/%d)..." % cyan (section ), i , len (sections )); sys .stdout .flush ()
107- output = getattr (dmidecode , section )()
108- test (output is not False )
109- if output : sys .stdout .write (" * %s\n " % black (output .keys ()))
110+ i += 1
111+ sys .stdout .write (" * Testing %s (%d/%d)..." % (cyan (section ), i , len (sections ))); sys .stdout .flush ()
112+ try :
113+ output = getattr (dmidecode , section )()
114+ test (output is not False )
115+ if output :
116+ sys .stdout .write (" * %s\n " % black (output .keys ()))
117+ except LookupError , e :
118+ failed ()
119+ sys .stdout .write (" x %s\n " % red (e ))
110120
111- sys .stdout .write (LINE )
112121 for i in bad_types :
113122 sys .stdout .write (" * Testing bad type %s..." % red (i )); sys .stdout .flush ()
114123 try :
115124 output = dmidecode .type (i )
116125 test (output is False )
117126 except SystemError :
118- sys . stdout . write ( "%s \n " % red ( "FAIL" ) )
127+ failed ( )
119128
120- sys .stdout .write (LINE )
121129 for i in types :
122130 sys .stdout .write (" * Testing type %s..." % red (i )); sys .stdout .flush ()
123- output = dmidecode .type (i )
124- if dmidecode :
125- _output = commands .getoutput ("dmidecode -t %d" % i ).strip ().split ('\n ' )
126- test (len (_output ) == 1 and len (output ) == 0 or True )
127- else :
128- test (output is not False )
129- if output :
130- sys .stdout .write (" * %s\n " % output .keys ())
131+ try :
132+ output = dmidecode .type (i )
133+ if dmidecode :
134+ _output = commands .getoutput ("dmidecode -t %d" % i ).strip ().split ('\n ' )
135+ test (len (_output ) == 1 and len (output ) == 0 or True )
136+ else :
137+ test (output is not False )
138+ if output :
139+ sys .stdout .write (" * %s\n " % output .keys ())
140+ except :
141+ failed ()
131142
132143except ImportError :
133- sys . stdout . write ( "%s \n " % red ( "FAIL" ) )
144+ failed ( )
134145
135146color = red
136147if success == total : color = green
0 commit comments