103 lines
3.7 KiB
Python
Executable file
103 lines
3.7 KiB
Python
Executable file
# pylint: disable-msg=C0111
|
|
#!/usr/bin/python -u
|
|
|
|
"""Tests for atomicgroup."""
|
|
|
|
import unittest
|
|
|
|
import common
|
|
from autotest_lib.cli import cli_mock
|
|
|
|
|
|
class atomicgroup_unittest(cli_mock.cli_unittest):
|
|
def setUp(self):
|
|
super(atomicgroup_unittest, self).setUp()
|
|
|
|
|
|
def run_cmd(self, argv, *args, **kwargs):
|
|
atomicgroup_argv = ['atest', 'atomicgroup'] + argv
|
|
super(atomicgroup_unittest, self).run_cmd(
|
|
argv=atomicgroup_argv, *args, **kwargs)
|
|
|
|
|
|
atomicgroups = [
|
|
{'name': 'group0',
|
|
'description': 'description0',
|
|
'max_number_of_machines': 3,
|
|
'invalid': True},
|
|
{'name': 'group1',
|
|
'description': 'description1',
|
|
'max_number_of_machines': 13,
|
|
'invalid': False},
|
|
{'name': 'group2',
|
|
'description': 'description2',
|
|
'max_number_of_machines': 23,
|
|
'invalid': False},
|
|
]
|
|
|
|
|
|
def test_atomicgroup_list(self):
|
|
valid_groups = [ag for ag in self.atomicgroups if not ag['invalid']]
|
|
self.run_cmd(argv=['list'],
|
|
rpcs=[('get_atomic_groups', {},
|
|
True, valid_groups)],
|
|
out_words_ok=['group1', 'description2', '23', 'True'],
|
|
out_words_no=['group0', 'description0', 'False'],
|
|
)
|
|
|
|
|
|
def test_atomicgroup_list_show_invalid(self):
|
|
self.run_cmd(argv=['list', '--show-invalid'],
|
|
rpcs=[('get_atomic_groups', {},
|
|
True, self.atomicgroups)],
|
|
out_words_ok=['group1', 'description2', '23', 'True'],
|
|
)
|
|
|
|
|
|
def test_atomicgroup_create(self):
|
|
self.run_cmd(argv=['create', '-n', '33', '-d', 'Fruits', 'ag-name'],
|
|
rpcs=[('add_atomic_group',
|
|
dict(name='ag-name', description='Fruits',
|
|
max_number_of_machines=33),
|
|
True, 1)],
|
|
out_words_ok=['Created', 'atomicgroup', 'ag-name'],
|
|
)
|
|
|
|
def test_atomicgroup_create_longargs(self):
|
|
self.run_cmd(argv=['create', '--max_number_of_machines', '33',
|
|
'--description', 'Fruits', 'ag-name'],
|
|
rpcs=[('add_atomic_group',
|
|
dict(name='ag-name', description='Fruits',
|
|
max_number_of_machines=33),
|
|
True, 1)],
|
|
out_words_ok=['Created', 'atomicgroup', 'ag-name'],
|
|
)
|
|
|
|
|
|
def test_atomicgroup_delete(self):
|
|
self.run_cmd(argv=['delete', 'ag-name', '--no-confirmation'],
|
|
rpcs=[('delete_atomic_group', dict(id='ag-name'),
|
|
True, None)],
|
|
out_words_ok=['Deleted', 'atomicgroup', 'ag-name'],
|
|
)
|
|
|
|
|
|
def test_atomicgroup_add(self):
|
|
self.run_cmd(argv=['add', '--label', 'One', 'ag-name'],
|
|
rpcs=[('atomic_group_add_labels',
|
|
dict(id='ag-name', labels=['One']),
|
|
True, None)],
|
|
out_words_ok=['Added', 'atomicgroup', 'ag-name'],
|
|
)
|
|
|
|
def test_atomicgroup_remove(self):
|
|
self.run_cmd(argv=['remove', '--label', 'One', 'ag-name'],
|
|
rpcs=[('atomic_group_remove_labels',
|
|
dict(id='ag-name', labels=['One']),
|
|
True, None)],
|
|
out_words_ok=['Removed', 'atomicgroup', 'ag-name'],
|
|
)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|