blob: f776e98f18d88d3b2f7e226fea90f82ba682804c [file] [log] [blame]
mblighbe630eb2008-08-01 16:41:48 +00001#!/usr/bin/python
2#
3# Copyright 2008 Google Inc. All Rights Reserved.
4
5"""Tests for test."""
6
7import unittest, sys, os
8
9import common
10from autotest_lib.cli import cli_mock, topic_common, test
Aviv Keshet3dd8beb2013-05-13 17:36:04 -070011from autotest_lib.client.common_lib import control_data
mblighbe630eb2008-08-01 16:41:48 +000012
Aviv Keshet3dd8beb2013-05-13 17:36:04 -070013CLIENT = control_data.CONTROL_TYPE_NAMES.CLIENT
14SERVER = control_data.CONTROL_TYPE_NAMES.SERVER
mblighbe630eb2008-08-01 16:41:48 +000015
16class test_list_unittest(cli_mock.cli_unittest):
17 values = [{u'description': u'unknown',
Aviv Keshet3dd8beb2013-05-13 17:36:04 -070018 u'test_type': CLIENT,
mblighbe630eb2008-08-01 16:41:48 +000019 u'test_class': u'Canned Test Sets',
20 u'path': u'client/tests/test0/control',
21 u'synch_type': u'Asynchronous',
22 u'id': 138,
mbligh140a23c2008-10-29 16:55:21 +000023 u'name': u'test0',
24 u'experimental': False},
mblighbe630eb2008-08-01 16:41:48 +000025 {u'description': u'unknown',
Aviv Keshet3dd8beb2013-05-13 17:36:04 -070026 u'test_type': SERVER,
mblighbe630eb2008-08-01 16:41:48 +000027 u'test_class': u'Kernel',
28 u'path': u'server/tests/test1/control',
29 u'synch_type': u'Asynchronous',
30 u'id': 139,
mbligh140a23c2008-10-29 16:55:21 +000031 u'name': u'test1',
32 u'experimental': False},
mblighbe630eb2008-08-01 16:41:48 +000033 {u'description': u'unknown',
Aviv Keshet3dd8beb2013-05-13 17:36:04 -070034 u'test_type': CLIENT,
mblighbe630eb2008-08-01 16:41:48 +000035 u'test_class': u'Canned Test Sets',
36 u'path': u'client/tests/test2/control.readprofile',
37 u'synch_type': u'Asynchronous',
38 u'id': 140,
mbligh140a23c2008-10-29 16:55:21 +000039 u'name': u'test2',
40 u'experimental': False},
mblighbe630eb2008-08-01 16:41:48 +000041 {u'description': u'unknown',
Aviv Keshet3dd8beb2013-05-13 17:36:04 -070042 u'test_type': SERVER,
mblighbe630eb2008-08-01 16:41:48 +000043 u'test_class': u'Canned Test Sets',
44 u'path': u'server/tests/test3/control',
45 u'synch_type': u'Asynchronous',
46 u'id': 142,
mbligh140a23c2008-10-29 16:55:21 +000047 u'name': u'test3',
48 u'experimental': False},
mblighbe630eb2008-08-01 16:41:48 +000049 {u'description': u'Random stuff to check that things are ok',
Aviv Keshet3dd8beb2013-05-13 17:36:04 -070050 u'test_type': CLIENT,
mblighbe630eb2008-08-01 16:41:48 +000051 u'test_class': u'Hardware',
52 u'path': u'client/tests/test4/control.export',
53 u'synch_type': u'Asynchronous',
54 u'id': 143,
mbligh140a23c2008-10-29 16:55:21 +000055 u'name': u'test4',
56 u'experimental': True}]
57
58
59 def test_test_list_tests_default(self):
60 self.run_cmd(argv=['atest', 'test', 'list'],
61 rpcs=[('get_tests', {'experimental': False},
62 True, self.values)],
63 out_words_ok=['test0', 'test1', 'test2',
64 'test3', 'test4'],
65 out_words_no=['Random', 'control.export'])
mblighbe630eb2008-08-01 16:41:48 +000066
67
68 def test_test_list_tests_all(self):
mbligh140a23c2008-10-29 16:55:21 +000069 self.run_cmd(argv=['atest', 'test', 'list', '--all'],
70 rpcs=[('get_tests', {},
71 True, self.values)],
mblighbe630eb2008-08-01 16:41:48 +000072 out_words_ok=['test0', 'test1', 'test2',
73 'test3', 'test4'],
74 out_words_no=['Random', 'control.export'])
75
76
mbligh140a23c2008-10-29 16:55:21 +000077 def test_test_list_tests_exp(self):
78 self.run_cmd(argv=['atest', 'test', 'list', '--experimental'],
79 rpcs=[('get_tests', {'experimental': True},
80 True,
81 [{u'description': u'Random stuff',
Aviv Keshet3dd8beb2013-05-13 17:36:04 -070082 u'test_type': CLIENT,
mbligh140a23c2008-10-29 16:55:21 +000083 u'test_class': u'Hardware',
84 u'path': u'client/tests/test4/control.export',
85 u'synch_type': u'Asynchronous',
86 u'id': 143,
87 u'name': u'test4',
88 u'experimental': True}])],
89 out_words_ok=['test4'],
90 out_words_no=['Random', 'control.export'])
91
92
mblighbe630eb2008-08-01 16:41:48 +000093 def test_test_list_tests_select_one(self):
94 filtered = [val for val in self.values if val['name'] in ['test3']]
95 self.run_cmd(argv=['atest', 'test', 'list', 'test3'],
mbligh140a23c2008-10-29 16:55:21 +000096 rpcs=[('get_tests', {'name__in': ['test3'],
97 'experimental': False},
mblighbe630eb2008-08-01 16:41:48 +000098 True, filtered)],
99 out_words_ok=['test3'],
100 out_words_no=['test0', 'test1', 'test2', 'test4',
101 'unknown'])
102
103
104 def test_test_list_tests_select_two(self):
105 filtered = [val for val in self.values
106 if val['name'] in ['test3', 'test1']]
107 self.run_cmd(argv=['atest', 'test', 'list', 'test3,test1'],
mbligh140a23c2008-10-29 16:55:21 +0000108 rpcs=[('get_tests', {'name__in': ['test1', 'test3'],
109 'experimental': False},
mblighbe630eb2008-08-01 16:41:48 +0000110 True, filtered)],
Aviv Keshet3dd8beb2013-05-13 17:36:04 -0700111 out_words_ok=['test3', 'test1', SERVER],
mblighbe630eb2008-08-01 16:41:48 +0000112 out_words_no=['test0', 'test2', 'test4',
Aviv Keshet3dd8beb2013-05-13 17:36:04 -0700113 'unknown', CLIENT])
mblighbe630eb2008-08-01 16:41:48 +0000114
115
116 def test_test_list_tests_select_two_space(self):
117 filtered = [val for val in self.values
118 if val['name'] in ['test3', 'test1']]
119 self.run_cmd(argv=['atest', 'test', 'list', 'test3', 'test1'],
mbligh140a23c2008-10-29 16:55:21 +0000120 rpcs=[('get_tests', {'name__in': ['test1', 'test3'],
121 'experimental': False},
mblighbe630eb2008-08-01 16:41:48 +0000122 True, filtered)],
Aviv Keshet3dd8beb2013-05-13 17:36:04 -0700123 out_words_ok=['test3', 'test1', SERVER],
mblighbe630eb2008-08-01 16:41:48 +0000124 out_words_no=['test0', 'test2', 'test4',
Aviv Keshet3dd8beb2013-05-13 17:36:04 -0700125 'unknown', CLIENT])
mblighbe630eb2008-08-01 16:41:48 +0000126
127
128 def test_test_list_tests_all_verbose(self):
129 self.run_cmd(argv=['atest', 'test', 'list', '-v'],
mbligh140a23c2008-10-29 16:55:21 +0000130 rpcs=[('get_tests', {'experimental': False},
131 True, self.values)],
mblighbe630eb2008-08-01 16:41:48 +0000132 out_words_ok=['test0', 'test1', 'test2',
133 'test3', 'test4', 'client/tests',
134 'server/tests'],
135 out_words_no=['Random'])
136
137
138 def test_test_list_tests_all_desc(self):
139 self.run_cmd(argv=['atest', 'test', 'list', '-d'],
mbligh140a23c2008-10-29 16:55:21 +0000140 rpcs=[('get_tests', {'experimental': False},
141 True, self.values)],
mblighbe630eb2008-08-01 16:41:48 +0000142 out_words_ok=['test0', 'test1', 'test2',
143 'test3', 'test4', 'unknown', 'Random'],
144 out_words_no=['client/tests', 'server/tests'])
145
146
147 def test_test_list_tests_all_desc_verbose(self):
148 self.run_cmd(argv=['atest', 'test', 'list', '-d', '-v'],
mbligh140a23c2008-10-29 16:55:21 +0000149 rpcs=[('get_tests', {'experimental': False},
150 True, self.values)],
mblighbe630eb2008-08-01 16:41:48 +0000151 out_words_ok=['test0', 'test1', 'test2',
152 'test3', 'test4', 'client/tests',
153 'server/tests', 'unknown', 'Random' ])
154
155
156if __name__ == '__main__':
157 unittest.main()