1# pylint: disable-msg=C0111 2#!/usr/bin/python -u 3 4"""Tests for atomicgroup.""" 5 6import unittest 7 8import common 9from autotest_lib.cli import cli_mock 10 11 12class atomicgroup_unittest(cli_mock.cli_unittest): 13 def setUp(self): 14 super(atomicgroup_unittest, self).setUp() 15 16 17 def run_cmd(self, argv, *args, **kwargs): 18 atomicgroup_argv = ['atest', 'atomicgroup'] + argv 19 super(atomicgroup_unittest, self).run_cmd( 20 argv=atomicgroup_argv, *args, **kwargs) 21 22 23 atomicgroups = [ 24 {'name': 'group0', 25 'description': 'description0', 26 'max_number_of_machines': 3, 27 'invalid': True}, 28 {'name': 'group1', 29 'description': 'description1', 30 'max_number_of_machines': 13, 31 'invalid': False}, 32 {'name': 'group2', 33 'description': 'description2', 34 'max_number_of_machines': 23, 35 'invalid': False}, 36 ] 37 38 39 def test_atomicgroup_list(self): 40 valid_groups = [ag for ag in self.atomicgroups if not ag['invalid']] 41 self.run_cmd(argv=['list'], 42 rpcs=[('get_atomic_groups', {}, 43 True, valid_groups)], 44 out_words_ok=['group1', 'description2', '23', 'True'], 45 out_words_no=['group0', 'description0', 'False'], 46 ) 47 48 49 def test_atomicgroup_list_show_invalid(self): 50 self.run_cmd(argv=['list', '--show-invalid'], 51 rpcs=[('get_atomic_groups', {}, 52 True, self.atomicgroups)], 53 out_words_ok=['group1', 'description2', '23', 'True'], 54 ) 55 56 57 def test_atomicgroup_create(self): 58 self.run_cmd(argv=['create', '-n', '33', '-d', 'Fruits', 'ag-name'], 59 rpcs=[('add_atomic_group', 60 dict(name='ag-name', description='Fruits', 61 max_number_of_machines=33), 62 True, 1)], 63 out_words_ok=['Created', 'atomicgroup', 'ag-name'], 64 ) 65 66 def test_atomicgroup_create_longargs(self): 67 self.run_cmd(argv=['create', '--max_number_of_machines', '33', 68 '--description', 'Fruits', 'ag-name'], 69 rpcs=[('add_atomic_group', 70 dict(name='ag-name', description='Fruits', 71 max_number_of_machines=33), 72 True, 1)], 73 out_words_ok=['Created', 'atomicgroup', 'ag-name'], 74 ) 75 76 77 def test_atomicgroup_delete(self): 78 self.run_cmd(argv=['delete', 'ag-name', '--no-confirmation'], 79 rpcs=[('delete_atomic_group', dict(id='ag-name'), 80 True, None)], 81 out_words_ok=['Deleted', 'atomicgroup', 'ag-name'], 82 ) 83 84 85 def test_atomicgroup_add(self): 86 self.run_cmd(argv=['add', '--label', 'One', 'ag-name'], 87 rpcs=[('atomic_group_add_labels', 88 dict(id='ag-name', labels=['One']), 89 True, None)], 90 out_words_ok=['Added', 'atomicgroup', 'ag-name'], 91 ) 92 93 def test_atomicgroup_remove(self): 94 self.run_cmd(argv=['remove', '--label', 'One', 'ag-name'], 95 rpcs=[('atomic_group_remove_labels', 96 dict(id='ag-name', labels=['One']), 97 True, None)], 98 out_words_ok=['Removed', 'atomicgroup', 'ag-name'], 99 ) 100 101 102if __name__ == '__main__': 103 unittest.main() 104