145 lines
5.7 KiB
Python
Executable file
145 lines
5.7 KiB
Python
Executable file
# pylint: disable-msg=C0111
|
|
#!/usr/bin/python
|
|
#
|
|
# Copyright 2008 Google Inc. All Rights Reserved.
|
|
|
|
"""Tests for label."""
|
|
|
|
import unittest
|
|
|
|
import common
|
|
from autotest_lib.cli import cli_mock
|
|
|
|
|
|
class label_list_unittest(cli_mock.cli_unittest):
|
|
values = [{u'id': 180, # Valid label
|
|
u'platform': False,
|
|
u'name': u'label0',
|
|
u'invalid': False,
|
|
u'kernel_config': u'',
|
|
u'only_if_needed': False},
|
|
{u'id': 338, # Valid label
|
|
u'platform': False,
|
|
u'name': u'label1',
|
|
u'invalid': False,
|
|
u'kernel_config': u'',
|
|
u'only_if_needed': False},
|
|
{u'id': 340, # Invalid label
|
|
u'platform': False,
|
|
u'name': u'label2',
|
|
u'invalid': True,
|
|
u'kernel_config': u'',
|
|
u'only_if_needed': False},
|
|
{u'id': 350, # Valid platform
|
|
u'platform': True,
|
|
u'name': u'plat0',
|
|
u'invalid': False,
|
|
u'kernel_config': u'',
|
|
u'only_if_needed': False},
|
|
{u'id': 420, # Invalid platform
|
|
u'platform': True,
|
|
u'name': u'plat1',
|
|
u'invalid': True,
|
|
u'kernel_config': u'',
|
|
u'only_if_needed': False}]
|
|
|
|
|
|
def test_label_list_labels_only(self):
|
|
self.run_cmd(argv=['atest', 'label', 'list'],
|
|
rpcs=[('get_labels', {}, True, self.values)],
|
|
out_words_ok=['label0', 'label1', 'label2'],
|
|
out_words_no=['plat0', 'plat1'])
|
|
|
|
|
|
def test_label_list_labels_only_valid(self):
|
|
self.run_cmd(argv=['atest', 'label', 'list', '-d'],
|
|
rpcs=[('get_labels', {}, True, self.values)],
|
|
out_words_ok=['label0', 'label1'],
|
|
out_words_no=['label2', 'plat0', 'plat1'])
|
|
|
|
|
|
def test_label_list_labels_and_platforms(self):
|
|
self.run_cmd(argv=['atest', 'label', 'list', '--all'],
|
|
rpcs=[('get_labels', {}, True, self.values)],
|
|
out_words_ok=['label0', 'label1', 'label2',
|
|
'plat0', 'plat1'])
|
|
|
|
|
|
def test_label_list_platforms_only(self):
|
|
self.run_cmd(argv=['atest', 'label', 'list', '-t'],
|
|
rpcs=[('get_labels', {}, True, self.values)],
|
|
out_words_ok=['plat0', 'plat1'],
|
|
out_words_no=['label0', 'label1', 'label2'])
|
|
|
|
|
|
def test_label_list_platforms_only_valid(self):
|
|
self.run_cmd(argv=['atest', 'label', 'list',
|
|
'-t', '--valid-only'],
|
|
rpcs=[('get_labels', {}, True, self.values)],
|
|
out_words_ok=['plat0'],
|
|
out_words_no=['label0', 'label1', 'label2',
|
|
'plat1'])
|
|
|
|
|
|
class label_create_unittest(cli_mock.cli_unittest):
|
|
def test_execute_create_two_labels(self):
|
|
self.run_cmd(argv=['atest', 'label', 'create', 'label0', 'label1'],
|
|
rpcs=[('add_label',
|
|
{'name': 'label0', 'platform': False,
|
|
'only_if_needed': False},
|
|
True, 42),
|
|
('add_label',
|
|
{'name': 'label1', 'platform': False,
|
|
'only_if_needed': False},
|
|
True, 43)],
|
|
out_words_ok=['Created', 'label0', 'label1'])
|
|
|
|
|
|
def test_execute_create_two_labels_bad(self):
|
|
self.run_cmd(argv=['atest', 'label', 'create', 'label0', 'label1'],
|
|
rpcs=[('add_label',
|
|
{'name': 'label0', 'platform': False,
|
|
'only_if_needed': False},
|
|
True, 3),
|
|
('add_label',
|
|
{'name': 'label1', 'platform': False,
|
|
'only_if_needed': False},
|
|
False,
|
|
'''ValidationError: {'name':
|
|
'This value must be unique (label0)'}''')],
|
|
out_words_ok=['Created', 'label0'],
|
|
out_words_no=['label1'],
|
|
err_words_ok=['label1', 'ValidationError'])
|
|
|
|
|
|
|
|
class label_delete_unittest(cli_mock.cli_unittest):
|
|
def test_execute_delete_labels(self):
|
|
self.run_cmd(argv=['atest', 'label', 'delete', 'label0', 'label1', '--no-confirmation'],
|
|
rpcs=[('delete_label', {'id': 'label0'}, True, None),
|
|
('delete_label', {'id': 'label1'}, True, None)],
|
|
out_words_ok=['Deleted', 'label0', 'label1'])
|
|
|
|
|
|
class label_add_unittest(cli_mock.cli_unittest):
|
|
def test_execute_add_labels_to_hosts(self):
|
|
self.run_cmd(argv=['atest', 'label', 'add', 'label0',
|
|
'--machine', 'host0,host1'],
|
|
rpcs=[('label_add_hosts', {'id': 'label0',
|
|
'hosts': ['host1', 'host0']},
|
|
True, None)],
|
|
out_words_ok=['Added', 'label0', 'host0', 'host1'])
|
|
|
|
|
|
class label_remove_unittest(cli_mock.cli_unittest):
|
|
def test_execute_remove_labels_from_hosts(self):
|
|
self.run_cmd(argv=['atest', 'label', 'remove', 'label0',
|
|
'--machine', 'host0,host1'],
|
|
rpcs=[('label_remove_hosts', {'id': 'label0',
|
|
'hosts': ['host1', 'host0']},
|
|
True, None)],
|
|
out_words_ok=['Removed', 'label0', 'host0', 'host1'])
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|