1#!/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 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'synch_type': u'Asynchronous', 22 u'id': 138, 23 u'name': u'test0', 24 u'experimental': False}, 25 {u'description': u'unknown', 26 u'test_type': SERVER, 27 u'test_class': u'Kernel', 28 u'path': u'server/tests/test1/control', 29 u'synch_type': u'Asynchronous', 30 u'id': 139, 31 u'name': u'test1', 32 u'experimental': False}, 33 {u'description': u'unknown', 34 u'test_type': CLIENT, 35 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, 39 u'name': u'test2', 40 u'experimental': False}, 41 {u'description': u'unknown', 42 u'test_type': SERVER, 43 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, 47 u'name': u'test3', 48 u'experimental': False}, 49 {u'description': u'Random stuff to check that things are ok', 50 u'test_type': CLIENT, 51 u'test_class': u'Hardware', 52 u'path': u'client/tests/test4/control.export', 53 u'synch_type': u'Asynchronous', 54 u'id': 143, 55 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']) 66 67 68 def test_test_list_tests_all(self): 69 self.run_cmd(argv=['atest', 'test', 'list', '--all'], 70 rpcs=[('get_tests', {}, 71 True, self.values)], 72 out_words_ok=['test0', 'test1', 'test2', 73 'test3', 'test4'], 74 out_words_no=['Random', 'control.export']) 75 76 77 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', 82 u'test_type': CLIENT, 83 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 93 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'], 96 rpcs=[('get_tests', {'name__in': ['test3'], 97 'experimental': False}, 98 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'], 108 rpcs=[('get_tests', {'name__in': ['test1', 'test3'], 109 'experimental': False}, 110 True, filtered)], 111 out_words_ok=['test3', 'test1', SERVER], 112 out_words_no=['test0', 'test2', 'test4', 113 'unknown', CLIENT]) 114 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'], 120 rpcs=[('get_tests', {'name__in': ['test1', 'test3'], 121 'experimental': False}, 122 True, filtered)], 123 out_words_ok=['test3', 'test1', SERVER], 124 out_words_no=['test0', 'test2', 'test4', 125 'unknown', CLIENT]) 126 127 128 def test_test_list_tests_all_verbose(self): 129 self.run_cmd(argv=['atest', 'test', 'list', '-v'], 130 rpcs=[('get_tests', {'experimental': False}, 131 True, self.values)], 132 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'], 140 rpcs=[('get_tests', {'experimental': False}, 141 True, self.values)], 142 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'], 149 rpcs=[('get_tests', {'experimental': False}, 150 True, self.values)], 151 out_words_ok=['test0', 'test1', 'test2', 152 'test3', 'test4', 'client/tests', 153 'server/tests', 'unknown', 'Random' ]) 154 155 156if __name__ == '__main__': 157 unittest.main() 158