blob: bbe81aefc0a6d319690e5585964a68d5eda039ac [file] [log] [blame]
Mike Frysingerd03e6b52019-08-03 12:49:01 -04001#!/usr/bin/python2
Dan Shi25e1fd42014-12-19 14:36:42 -08002# pylint: disable-msg=C0111
mblighbe630eb2008-08-01 16:41:48 +00003#
4# Copyright 2008 Google Inc. All Rights Reserved.
5
6"""Tests for label."""
7
Dan Shi25e1fd42014-12-19 14:36:42 -08008import unittest
mblighbe630eb2008-08-01 16:41:48 +00009
10import common
Dan Shi25e1fd42014-12-19 14:36:42 -080011from autotest_lib.cli import cli_mock
mblighbe630eb2008-08-01 16:41:48 +000012
13
14class label_list_unittest(cli_mock.cli_unittest):
15 values = [{u'id': 180, # Valid label
mbligh0887d402009-01-30 00:50:29 +000016 u'platform': False,
mblighbe630eb2008-08-01 16:41:48 +000017 u'name': u'label0',
mbligh0887d402009-01-30 00:50:29 +000018 u'invalid': False,
showard989f25d2008-10-01 11:38:11 +000019 u'kernel_config': u'',
mbligh0887d402009-01-30 00:50:29 +000020 u'only_if_needed': False},
mblighbe630eb2008-08-01 16:41:48 +000021 {u'id': 338, # Valid label
mbligh0887d402009-01-30 00:50:29 +000022 u'platform': False,
mblighbe630eb2008-08-01 16:41:48 +000023 u'name': u'label1',
mbligh0887d402009-01-30 00:50:29 +000024 u'invalid': False,
showard989f25d2008-10-01 11:38:11 +000025 u'kernel_config': u'',
mbligh0887d402009-01-30 00:50:29 +000026 u'only_if_needed': False},
mblighbe630eb2008-08-01 16:41:48 +000027 {u'id': 340, # Invalid label
mbligh0887d402009-01-30 00:50:29 +000028 u'platform': False,
mblighbe630eb2008-08-01 16:41:48 +000029 u'name': u'label2',
mbligh0887d402009-01-30 00:50:29 +000030 u'invalid': True,
showard989f25d2008-10-01 11:38:11 +000031 u'kernel_config': u'',
mbligh0887d402009-01-30 00:50:29 +000032 u'only_if_needed': False},
mblighbe630eb2008-08-01 16:41:48 +000033 {u'id': 350, # Valid platform
mbligh0887d402009-01-30 00:50:29 +000034 u'platform': True,
mblighbe630eb2008-08-01 16:41:48 +000035 u'name': u'plat0',
mbligh0887d402009-01-30 00:50:29 +000036 u'invalid': False,
showard989f25d2008-10-01 11:38:11 +000037 u'kernel_config': u'',
mbligh0887d402009-01-30 00:50:29 +000038 u'only_if_needed': False},
mblighbe630eb2008-08-01 16:41:48 +000039 {u'id': 420, # Invalid platform
mbligh0887d402009-01-30 00:50:29 +000040 u'platform': True,
mblighbe630eb2008-08-01 16:41:48 +000041 u'name': u'plat1',
mbligh0887d402009-01-30 00:50:29 +000042 u'invalid': True,
showard989f25d2008-10-01 11:38:11 +000043 u'kernel_config': u'',
mbligh0887d402009-01-30 00:50:29 +000044 u'only_if_needed': False}]
mblighbe630eb2008-08-01 16:41:48 +000045
46
47 def test_label_list_labels_only(self):
Allen Lib774aa22017-02-01 17:42:15 -080048 self.run_cmd(argv=['atest', 'label', 'list'],
mblighbe630eb2008-08-01 16:41:48 +000049 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 Lib774aa22017-02-01 17:42:15 -080055 self.run_cmd(argv=['atest', 'label', 'list', '-d'],
mblighbe630eb2008-08-01 16:41:48 +000056 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 Lib774aa22017-02-01 17:42:15 -080062 self.run_cmd(argv=['atest', 'label', 'list', '--all'],
mblighbe630eb2008-08-01 16:41:48 +000063 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 Lib774aa22017-02-01 17:42:15 -080069 self.run_cmd(argv=['atest', 'label', 'list', '-t'],
mblighbe630eb2008-08-01 16:41:48 +000070 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 Lib774aa22017-02-01 17:42:15 -080077 '-t', '--valid-only'],
mblighbe630eb2008-08-01 16:41:48 +000078 rpcs=[('get_labels', {}, True, self.values)],
79 out_words_ok=['plat0'],
80 out_words_no=['label0', 'label1', 'label2',
81 'plat1'])
82
83
84class label_create_unittest(cli_mock.cli_unittest):
85 def test_execute_create_two_labels(self):
Allen Lib774aa22017-02-01 17:42:15 -080086 self.run_cmd(argv=['atest', 'label', 'create', 'label0', 'label1'],
showard989f25d2008-10-01 11:38:11 +000087 rpcs=[('add_label',
88 {'name': 'label0', 'platform': False,
89 'only_if_needed': False},
mblighbe630eb2008-08-01 16:41:48 +000090 True, 42),
showard989f25d2008-10-01 11:38:11 +000091 ('add_label',
92 {'name': 'label1', 'platform': False,
93 'only_if_needed': False},
mblighbe630eb2008-08-01 16:41:48 +000094 True, 43)],
95 out_words_ok=['Created', 'label0', 'label1'])
96
97
98 def test_execute_create_two_labels_bad(self):
Allen Lib774aa22017-02-01 17:42:15 -080099 self.run_cmd(argv=['atest', 'label', 'create', 'label0', 'label1'],
showard989f25d2008-10-01 11:38:11 +0000100 rpcs=[('add_label',
101 {'name': 'label0', 'platform': False,
102 'only_if_needed': False},
mblighbe630eb2008-08-01 16:41:48 +0000103 True, 3),
showard989f25d2008-10-01 11:38:11 +0000104 ('add_label',
105 {'name': 'label1', 'platform': False,
106 'only_if_needed': False},
mblighbe630eb2008-08-01 16:41:48 +0000107 False,
mbligh1ef218d2009-08-03 16:57:56 +0000108 '''ValidationError: {'name':
mblighbe630eb2008-08-01 16:41:48 +0000109 '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
116class label_delete_unittest(cli_mock.cli_unittest):
117 def test_execute_delete_labels(self):
Allen Lib774aa22017-02-01 17:42:15 -0800118 self.run_cmd(argv=['atest', 'label', 'delete', 'label0', 'label1', '--no-confirmation'],
mblighbe630eb2008-08-01 16:41:48 +0000119 rpcs=[('delete_label', {'id': 'label0'}, True, None),
120 ('delete_label', {'id': 'label1'}, True, None)],
121 out_words_ok=['Deleted', 'label0', 'label1'])
122
123
124class 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 Lib774aa22017-02-01 17:42:15 -0800127 '--machine', 'host0,host1'],
mblighbe630eb2008-08-01 16:41:48 +0000128 rpcs=[('label_add_hosts', {'id': 'label0',
129 'hosts': ['host1', 'host0']},
130 True, None)],
131 out_words_ok=['Added', 'label0', 'host0', 'host1'])
132
133
134class 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 Lib774aa22017-02-01 17:42:15 -0800137 '--machine', 'host0,host1'],
mblighbe630eb2008-08-01 16:41:48 +0000138 rpcs=[('label_remove_hosts', {'id': 'label0',
139 'hosts': ['host1', 'host0']},
140 True, None)],
141 out_words_ok=['Removed', 'label0', 'host0', 'host1'])
142
143
144if __name__ == '__main__':
145 unittest.main()