Home | History | Annotate | Download | only in cli
      1 #!/usr/bin/python
      2 #
      3 # Copyright 2008 Google Inc. All Rights Reserved.
      4 
      5 """Tests for test."""
      6 
      7 import unittest, sys, os
      8 
      9 import common
     10 from autotest_lib.cli import cli_mock, topic_common, test
     11 from autotest_lib.client.common_lib import control_data
     12 
     13 CLIENT = control_data.CONTROL_TYPE_NAMES.CLIENT
     14 SERVER = control_data.CONTROL_TYPE_NAMES.SERVER
     15 
     16 class 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 
    156 if __name__ == '__main__':
    157     unittest.main()
    158