• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/python
2#
3# Copyright 2008 Google Inc. All Rights Reserved.
4
5"""Tests for test."""
6
7import unittest
8
9import common
10from autotest_lib.cli import cli_mock
11from autotest_lib.client.common_lib import control_data
12
13CLIENT = control_data.CONTROL_TYPE_NAMES.CLIENT
14SERVER = control_data.CONTROL_TYPE_NAMES.SERVER
15
16class test_list_unittest(cli_mock.cli_unittest):
17    values = [{u'description': u'unknown',
18               u'test_type': CLIENT,
19               u'test_class': u'Canned Test Sets',
20               u'path': u'client/tests/test0/control',
21               u'id': 138,
22               u'name': u'test0',
23               u'experimental': False},
24              {u'description': u'unknown',
25               u'test_type': SERVER,
26               u'test_class': u'Kernel',
27               u'path': u'server/tests/test1/control',
28               u'id': 139,
29               u'name': u'test1',
30               u'experimental': False},
31              {u'description': u'unknown',
32               u'test_type': CLIENT,
33               u'test_class': u'Canned Test Sets',
34               u'path': u'client/tests/test2/control.readprofile',
35               u'id': 140,
36               u'name': u'test2',
37               u'experimental': False},
38              {u'description': u'unknown',
39               u'test_type': SERVER,
40               u'test_class': u'Canned Test Sets',
41               u'path': u'server/tests/test3/control',
42               u'id': 142,
43               u'name': u'test3',
44               u'experimental': False},
45              {u'description': u'Random stuff to check that things are ok',
46               u'test_type': CLIENT,
47               u'test_class': u'Hardware',
48               u'path': u'client/tests/test4/control.export',
49               u'id': 143,
50               u'name': u'test4',
51               u'experimental': True}]
52
53
54    def test_test_list_tests_default(self):
55        self.run_cmd(argv=['atest', 'test', 'list'],
56                     rpcs=[('get_tests', {'experimental': False},
57                            True, self.values)],
58                     out_words_ok=['test0', 'test1', 'test2',
59                                   'test3', 'test4'],
60                     out_words_no=['Random', 'control.export'])
61
62
63    def test_test_list_tests_all(self):
64        self.run_cmd(argv=['atest', 'test', 'list', '--all'],
65                     rpcs=[('get_tests', {},
66                            True, self.values)],
67                     out_words_ok=['test0', 'test1', 'test2',
68                                   'test3', 'test4'],
69                     out_words_no=['Random', 'control.export'])
70
71
72    def test_test_list_tests_exp(self):
73        self.run_cmd(argv=['atest', 'test', 'list', '--experimental'],
74                     rpcs=[('get_tests', {'experimental': True},
75                            True,
76                            [{u'description': u'Random stuff',
77                              u'test_type': CLIENT,
78                              u'test_class': u'Hardware',
79                              u'path': u'client/tests/test4/control.export',
80                              u'id': 143,
81                              u'name': u'test4',
82                              u'experimental': True}])],
83                     out_words_ok=['test4'],
84                     out_words_no=['Random', 'control.export'])
85
86
87    def test_test_list_tests_select_one(self):
88        filtered = [val for val in self.values if val['name'] in ['test3']]
89        self.run_cmd(argv=['atest', 'test', 'list', 'test3'],
90                     rpcs=[('get_tests', {'name__in': ['test3'],
91                                          'experimental': False},
92                            True, filtered)],
93                     out_words_ok=['test3'],
94                     out_words_no=['test0', 'test1', 'test2', 'test4',
95                                   'unknown'])
96
97
98    def test_test_list_tests_select_two(self):
99        filtered = [val for val in self.values
100                    if val['name'] in ['test3', 'test1']]
101        self.run_cmd(argv=['atest', 'test', 'list', 'test3,test1'],
102                     rpcs=[('get_tests', {'name__in': ['test1', 'test3'],
103                                          'experimental': False},
104                            True, filtered)],
105                     out_words_ok=['test3', 'test1', SERVER],
106                     out_words_no=['test0', 'test2', 'test4',
107                                   'unknown', CLIENT])
108
109
110    def test_test_list_tests_select_two_space(self):
111        filtered = [val for val in self.values
112                    if val['name'] in ['test3', 'test1']]
113        self.run_cmd(argv=['atest', 'test', 'list', 'test3', 'test1'],
114                     rpcs=[('get_tests', {'name__in': ['test1', 'test3'],
115                                          'experimental': False},
116                            True, filtered)],
117                     out_words_ok=['test3', 'test1', SERVER],
118                     out_words_no=['test0', 'test2', 'test4',
119                                   'unknown', CLIENT])
120
121
122    def test_test_list_tests_all_verbose(self):
123        self.run_cmd(argv=['atest', 'test', 'list', '-v'],
124                     rpcs=[('get_tests', {'experimental': False},
125                            True, self.values)],
126                     out_words_ok=['test0', 'test1', 'test2',
127                                   'test3', 'test4', 'client/tests',
128                                   'server/tests'],
129                     out_words_no=['Random'])
130
131
132    def test_test_list_tests_all_desc(self):
133        self.run_cmd(argv=['atest', 'test', 'list', '-d'],
134                     rpcs=[('get_tests', {'experimental': False},
135                            True, self.values)],
136                     out_words_ok=['test0', 'test1', 'test2',
137                                   'test3', 'test4', 'unknown', 'Random'],
138                     out_words_no=['client/tests', 'server/tests'])
139
140
141    def test_test_list_tests_all_desc_verbose(self):
142        self.run_cmd(argv=['atest', 'test', 'list', '-d', '-v'],
143                     rpcs=[('get_tests', {'experimental': False},
144                            True, self.values)],
145                     out_words_ok=['test0', 'test1', 'test2',
146                                   'test3', 'test4', 'client/tests',
147                                   'server/tests', 'unknown', 'Random' ])
148
149
150if __name__ == '__main__':
151    unittest.main()
152