Mike Frysinger | d03e6b5 | 2019-08-03 12:49:01 -0400 | [diff] [blame] | 1 | #!/usr/bin/python2 |
Dan Shi | 25e1fd4 | 2014-12-19 14:36:42 -0800 | [diff] [blame] | 2 | # pylint: disable-msg=C0111 |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 3 | # |
| 4 | # Copyright 2008 Google Inc. All Rights Reserved. |
| 5 | |
| 6 | """Tests for label.""" |
| 7 | |
Dan Shi | 25e1fd4 | 2014-12-19 14:36:42 -0800 | [diff] [blame] | 8 | import unittest |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 9 | |
| 10 | import common |
Dan Shi | 25e1fd4 | 2014-12-19 14:36:42 -0800 | [diff] [blame] | 11 | from autotest_lib.cli import cli_mock |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 12 | |
| 13 | |
| 14 | class label_list_unittest(cli_mock.cli_unittest): |
| 15 | values = [{u'id': 180, # Valid label |
mbligh | 0887d40 | 2009-01-30 00:50:29 +0000 | [diff] [blame] | 16 | u'platform': False, |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 17 | u'name': u'label0', |
mbligh | 0887d40 | 2009-01-30 00:50:29 +0000 | [diff] [blame] | 18 | u'invalid': False, |
showard | 989f25d | 2008-10-01 11:38:11 +0000 | [diff] [blame] | 19 | u'kernel_config': u'', |
mbligh | 0887d40 | 2009-01-30 00:50:29 +0000 | [diff] [blame] | 20 | u'only_if_needed': False}, |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 21 | {u'id': 338, # Valid label |
mbligh | 0887d40 | 2009-01-30 00:50:29 +0000 | [diff] [blame] | 22 | u'platform': False, |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 23 | u'name': u'label1', |
mbligh | 0887d40 | 2009-01-30 00:50:29 +0000 | [diff] [blame] | 24 | u'invalid': False, |
showard | 989f25d | 2008-10-01 11:38:11 +0000 | [diff] [blame] | 25 | u'kernel_config': u'', |
mbligh | 0887d40 | 2009-01-30 00:50:29 +0000 | [diff] [blame] | 26 | u'only_if_needed': False}, |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 27 | {u'id': 340, # Invalid label |
mbligh | 0887d40 | 2009-01-30 00:50:29 +0000 | [diff] [blame] | 28 | u'platform': False, |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 29 | u'name': u'label2', |
mbligh | 0887d40 | 2009-01-30 00:50:29 +0000 | [diff] [blame] | 30 | u'invalid': True, |
showard | 989f25d | 2008-10-01 11:38:11 +0000 | [diff] [blame] | 31 | u'kernel_config': u'', |
mbligh | 0887d40 | 2009-01-30 00:50:29 +0000 | [diff] [blame] | 32 | u'only_if_needed': False}, |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 33 | {u'id': 350, # Valid platform |
mbligh | 0887d40 | 2009-01-30 00:50:29 +0000 | [diff] [blame] | 34 | u'platform': True, |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 35 | u'name': u'plat0', |
mbligh | 0887d40 | 2009-01-30 00:50:29 +0000 | [diff] [blame] | 36 | u'invalid': False, |
showard | 989f25d | 2008-10-01 11:38:11 +0000 | [diff] [blame] | 37 | u'kernel_config': u'', |
mbligh | 0887d40 | 2009-01-30 00:50:29 +0000 | [diff] [blame] | 38 | u'only_if_needed': False}, |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 39 | {u'id': 420, # Invalid platform |
mbligh | 0887d40 | 2009-01-30 00:50:29 +0000 | [diff] [blame] | 40 | u'platform': True, |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 41 | u'name': u'plat1', |
mbligh | 0887d40 | 2009-01-30 00:50:29 +0000 | [diff] [blame] | 42 | u'invalid': True, |
showard | 989f25d | 2008-10-01 11:38:11 +0000 | [diff] [blame] | 43 | u'kernel_config': u'', |
mbligh | 0887d40 | 2009-01-30 00:50:29 +0000 | [diff] [blame] | 44 | u'only_if_needed': False}] |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 45 | |
| 46 | |
| 47 | def test_label_list_labels_only(self): |
Allen Li | b774aa2 | 2017-02-01 17:42:15 -0800 | [diff] [blame] | 48 | self.run_cmd(argv=['atest', 'label', 'list'], |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 49 | rpcs=[('get_labels', {}, True, self.values)], |
| 50 | out_words_ok=['label0', 'label1', 'label2'], |
| 51 | out_words_no=['plat0', 'plat1']) |
| 52 | |
| 53 | |
| 54 | def test_label_list_labels_only_valid(self): |
Allen Li | b774aa2 | 2017-02-01 17:42:15 -0800 | [diff] [blame] | 55 | self.run_cmd(argv=['atest', 'label', 'list', '-d'], |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 56 | rpcs=[('get_labels', {}, True, self.values)], |
| 57 | out_words_ok=['label0', 'label1'], |
| 58 | out_words_no=['label2', 'plat0', 'plat1']) |
| 59 | |
| 60 | |
| 61 | def test_label_list_labels_and_platforms(self): |
Allen Li | b774aa2 | 2017-02-01 17:42:15 -0800 | [diff] [blame] | 62 | self.run_cmd(argv=['atest', 'label', 'list', '--all'], |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 63 | rpcs=[('get_labels', {}, True, self.values)], |
| 64 | out_words_ok=['label0', 'label1', 'label2', |
| 65 | 'plat0', 'plat1']) |
| 66 | |
| 67 | |
| 68 | def test_label_list_platforms_only(self): |
Allen Li | b774aa2 | 2017-02-01 17:42:15 -0800 | [diff] [blame] | 69 | self.run_cmd(argv=['atest', 'label', 'list', '-t'], |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 70 | rpcs=[('get_labels', {}, True, self.values)], |
| 71 | out_words_ok=['plat0', 'plat1'], |
| 72 | out_words_no=['label0', 'label1', 'label2']) |
| 73 | |
| 74 | |
| 75 | def test_label_list_platforms_only_valid(self): |
| 76 | self.run_cmd(argv=['atest', 'label', 'list', |
Allen Li | b774aa2 | 2017-02-01 17:42:15 -0800 | [diff] [blame] | 77 | '-t', '--valid-only'], |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 78 | rpcs=[('get_labels', {}, True, self.values)], |
| 79 | out_words_ok=['plat0'], |
| 80 | out_words_no=['label0', 'label1', 'label2', |
| 81 | 'plat1']) |
| 82 | |
| 83 | |
| 84 | class label_create_unittest(cli_mock.cli_unittest): |
| 85 | def test_execute_create_two_labels(self): |
Allen Li | b774aa2 | 2017-02-01 17:42:15 -0800 | [diff] [blame] | 86 | self.run_cmd(argv=['atest', 'label', 'create', 'label0', 'label1'], |
showard | 989f25d | 2008-10-01 11:38:11 +0000 | [diff] [blame] | 87 | rpcs=[('add_label', |
| 88 | {'name': 'label0', 'platform': False, |
| 89 | 'only_if_needed': False}, |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 90 | True, 42), |
showard | 989f25d | 2008-10-01 11:38:11 +0000 | [diff] [blame] | 91 | ('add_label', |
| 92 | {'name': 'label1', 'platform': False, |
| 93 | 'only_if_needed': False}, |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 94 | True, 43)], |
| 95 | out_words_ok=['Created', 'label0', 'label1']) |
| 96 | |
| 97 | |
| 98 | def test_execute_create_two_labels_bad(self): |
Allen Li | b774aa2 | 2017-02-01 17:42:15 -0800 | [diff] [blame] | 99 | self.run_cmd(argv=['atest', 'label', 'create', 'label0', 'label1'], |
showard | 989f25d | 2008-10-01 11:38:11 +0000 | [diff] [blame] | 100 | rpcs=[('add_label', |
| 101 | {'name': 'label0', 'platform': False, |
| 102 | 'only_if_needed': False}, |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 103 | True, 3), |
showard | 989f25d | 2008-10-01 11:38:11 +0000 | [diff] [blame] | 104 | ('add_label', |
| 105 | {'name': 'label1', 'platform': False, |
| 106 | 'only_if_needed': False}, |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 107 | False, |
mbligh | 1ef218d | 2009-08-03 16:57:56 +0000 | [diff] [blame] | 108 | '''ValidationError: {'name': |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 109 | 'This value must be unique (label0)'}''')], |
| 110 | out_words_ok=['Created', 'label0'], |
| 111 | out_words_no=['label1'], |
| 112 | err_words_ok=['label1', 'ValidationError']) |
| 113 | |
| 114 | |
| 115 | |
| 116 | class label_delete_unittest(cli_mock.cli_unittest): |
| 117 | def test_execute_delete_labels(self): |
Allen Li | b774aa2 | 2017-02-01 17:42:15 -0800 | [diff] [blame] | 118 | self.run_cmd(argv=['atest', 'label', 'delete', 'label0', 'label1', '--no-confirmation'], |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 119 | rpcs=[('delete_label', {'id': 'label0'}, True, None), |
| 120 | ('delete_label', {'id': 'label1'}, True, None)], |
| 121 | out_words_ok=['Deleted', 'label0', 'label1']) |
| 122 | |
| 123 | |
| 124 | class label_add_unittest(cli_mock.cli_unittest): |
| 125 | def test_execute_add_labels_to_hosts(self): |
| 126 | self.run_cmd(argv=['atest', 'label', 'add', 'label0', |
Allen Li | b774aa2 | 2017-02-01 17:42:15 -0800 | [diff] [blame] | 127 | '--machine', 'host0,host1'], |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 128 | rpcs=[('label_add_hosts', {'id': 'label0', |
| 129 | 'hosts': ['host1', 'host0']}, |
| 130 | True, None)], |
| 131 | out_words_ok=['Added', 'label0', 'host0', 'host1']) |
| 132 | |
| 133 | |
| 134 | class label_remove_unittest(cli_mock.cli_unittest): |
| 135 | def test_execute_remove_labels_from_hosts(self): |
| 136 | self.run_cmd(argv=['atest', 'label', 'remove', 'label0', |
Allen Li | b774aa2 | 2017-02-01 17:42:15 -0800 | [diff] [blame] | 137 | '--machine', 'host0,host1'], |
mbligh | be630eb | 2008-08-01 16:41:48 +0000 | [diff] [blame] | 138 | rpcs=[('label_remove_hosts', {'id': 'label0', |
| 139 | 'hosts': ['host1', 'host0']}, |
| 140 | True, None)], |
| 141 | out_words_ok=['Removed', 'label0', 'host0', 'host1']) |
| 142 | |
| 143 | |
| 144 | if __name__ == '__main__': |
| 145 | unittest.main() |