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