3 import os
, sys
, unittest
5 from autotest_lib
.client
.common_lib
import control_data
, autotemp
7 ControlData
= control_data
.ControlData
11 DEPENDENCIES = "console, power"
14 # EXPERIMENTAL should implicitly be False
20 TEST_CATEGORY='Stress'
25 class ParseControlTest(unittest
.TestCase
):
27 self
.control_tmp
= autotemp
.tempfile(unique_id
='control_unit',
29 os
.write(self
.control_tmp
.fd
, CONTROL
)
33 self
.control_tmp
.clean()
36 def test_parse_control(self
):
37 cd
= control_data
.parse_control(self
.control_tmp
.name
, True)
38 self
.assertEquals(cd
.author
, "Author")
39 self
.assertEquals(cd
.dependencies
, set(['console', 'power']))
40 self
.assertEquals(cd
.doc
, "doc stuff")
41 self
.assertEquals(cd
.experimental
, False)
42 self
.assertEquals(cd
.name
, "nAmE")
43 self
.assertEquals(cd
.run_verify
, False)
44 self
.assertEquals(cd
.sync_count
, 2)
45 self
.assertEquals(cd
.time
, "short")
46 self
.assertEquals(cd
.test_class
, "kernel")
47 self
.assertEquals(cd
.test_category
, "stress")
48 self
.assertEquals(cd
.test_type
, "client")
51 class SetMethodTests(unittest
.TestCase
):
53 self
.required_vars
= control_data
.REQUIRED_VARS
54 control_data
.REQUIRED_VARS
= set()
58 control_data
.REQUIRED_VARS
= self
.required_vars
62 cd
= ControlData({}, 'filename')
63 cd
._set
_bool
('foo', 'False')
64 self
.assertEquals(cd
.foo
, False)
65 cd
._set
_bool
('foo', True)
66 self
.assertEquals(cd
.foo
, True)
67 cd
._set
_bool
('foo', 'FALSE')
68 self
.assertEquals(cd
.foo
, False)
69 cd
._set
_bool
('foo', 'true')
70 self
.assertEquals(cd
.foo
, True)
71 self
.assertRaises(ValueError, cd
._set
_bool
, 'foo', '')
72 self
.assertRaises(ValueError, cd
._set
_bool
, 'foo', 1)
73 self
.assertRaises(ValueError, cd
._set
_bool
, 'foo', [])
74 self
.assertRaises(ValueError, cd
._set
_bool
, 'foo', None)
78 cd
= ControlData({}, 'filename')
80 self
.assertEquals(cd
.foo
, 0)
81 cd
._set
_int
('foo', '0')
82 self
.assertEquals(cd
.foo
, 0)
83 cd
._set
_int
('foo', '-1', min=-2, max=10)
84 self
.assertEquals(cd
.foo
, -1)
85 self
.assertRaises(ValueError, cd
._set
_int
, 'foo', 0, min=1)
86 self
.assertRaises(ValueError, cd
._set
_int
, 'foo', 1, max=0)
87 self
.assertRaises(ValueError, cd
._set
_int
, 'foo', 'x')
88 self
.assertRaises(ValueError, cd
._set
_int
, 'foo', '')
89 self
.assertRaises(TypeError, cd
._set
_int
, 'foo', None)
93 cd
= ControlData({}, 'filename')
94 cd
._set
_set
('foo', 'a')
95 self
.assertEquals(cd
.foo
, set(['a']))
96 cd
._set
_set
('foo', 'a,b,c')
97 self
.assertEquals(cd
.foo
, set(['a', 'b', 'c']))
98 cd
._set
_set
('foo', ' a , b , c ')
99 self
.assertEquals(cd
.foo
, set(['a', 'b', 'c']))
100 cd
._set
_set
('foo', None)
101 self
.assertEquals(cd
.foo
, set(['None']))
104 def test_string(self
):
105 cd
= ControlData({}, 'filename')
106 cd
._set
_string
('foo', 'a')
107 self
.assertEquals(cd
.foo
, 'a')
108 cd
._set
_string
('foo', 'b')
109 self
.assertEquals(cd
.foo
, 'b')
110 cd
._set
_string
('foo', 'B')
111 self
.assertEquals(cd
.foo
, 'B')
112 cd
._set
_string
('foo', 1)
113 self
.assertEquals(cd
.foo
, '1')
114 cd
._set
_string
('foo', None)
115 self
.assertEquals(cd
.foo
, 'None')
116 cd
._set
_string
('foo', [])
117 self
.assertEquals(cd
.foo
, '[]')
120 def test_option(self
):
122 cd
= ControlData({}, 'filename')
123 cd
._set
_option
('foo', 'a', options
)
124 self
.assertEquals(cd
.foo
, 'a')
125 cd
._set
_option
('foo', 'b', options
)
126 self
.assertEquals(cd
.foo
, 'b')
127 cd
._set
_option
('foo', 'B', options
)
128 self
.assertEquals(cd
.foo
, 'B')
129 self
.assertRaises(ValueError, cd
._set
_option
,
131 self
.assertRaises(ValueError, cd
._set
_option
,
133 self
.assertRaises(ValueError, cd
._set
_option
,
135 self
.assertRaises(ValueError, cd
._set
_option
,
136 'foo', None, options
)
139 # this is so the test can be run in standalone mode
140 if __name__
== '__main__':