blob: f5897ee1d085054b097a5d64906ba315ff18e27c [file] [log] [blame]
Mike Frysingerd03e6b52019-08-03 12:49:01 -04001#!/usr/bin/python2
mblighbe630eb2008-08-01 16:41:48 +00002#
3# Copyright 2008 Google Inc. All Rights Reserved.
4
5"""Test for user."""
6
7import unittest, os, sys
8
9import common
10from autotest_lib.cli import cli_mock, user
11
12
13class user_list_unittest(cli_mock.cli_unittest):
14 def test_parse_user_not_required(self):
15 ul = user.user_list()
16 sys.argv = ['atest']
17 (options, leftover) = ul.parse()
18 self.assertEqual([], ul.users)
19 self.assertEqual([], leftover)
20
21
22 def test_parse_with_users(self):
23 ul = user.user_list()
24 ufile = cli_mock.create_file('user0\nuser3\nuser4\n')
mbligh41515392009-07-11 00:13:11 +000025 sys.argv = ['atest', 'user1', '--ulist', ufile.name, 'user3']
mblighbe630eb2008-08-01 16:41:48 +000026 (options, leftover) = ul.parse()
27 self.assertEqualNoOrder(['user0', 'user1','user3', 'user4'],
28 ul.users)
29 self.assertEqual(leftover, [])
mbligh41515392009-07-11 00:13:11 +000030 ufile.clean()
mblighbe630eb2008-08-01 16:41:48 +000031
32
33 def test_parse_with_acl(self):
34 ul = user.user_list()
35 sys.argv = ['atest', '--acl', 'acl0']
36 (options, leftover) = ul.parse()
37 self.assertEqual('acl0', ul.acl)
38 self.assertEqual(leftover, [])
39
40
41 def test_parse_with_access_level(self):
42 ul = user.user_list()
43 sys.argv = ['atest', '--access_level', '3']
44 (options, leftover) = ul.parse()
45 self.assertEqual('3', ul.access_level)
46 self.assertEqual(leftover, [])
47
48
49 def test_parse_with_all(self):
50 ul = user.user_list()
51 ufile = cli_mock.create_file('user0\nuser3\nuser4\n')
mbligh41515392009-07-11 00:13:11 +000052 sys.argv = ['atest', 'user1', '--ulist', ufile.name, 'user3',
mblighbe630eb2008-08-01 16:41:48 +000053 '-l', '4', '-a', 'acl0']
54 (options, leftover) = ul.parse()
55 self.assertEqualNoOrder(['user0', 'user1','user3', 'user4'],
56 ul.users)
57 self.assertEqual('acl0', ul.acl)
58 self.assertEqual('4', ul.access_level)
59 self.assertEqual(leftover, [])
mbligh41515392009-07-11 00:13:11 +000060 ufile.clean()
mblighbe630eb2008-08-01 16:41:48 +000061
62
63 def test_execute_list_all(self):
64 self.run_cmd(argv=['atest', 'user', 'list'],
65 rpcs=[('get_users', {},
66 True,
67 [{u'access_level': 0,
68 u'login': u'user0',
69 u'id': 41},
70 {u'access_level': 0,
71 u'login': u'user5',
72 u'id': 42},
73 {u'access_level': 2,
74 u'login': u'user0',
75 u'id': 3}])],
76 out_words_ok=['user0', 'user5'],
77 out_words_no=['1', '3', '41', '42'])
78
79
80 def test_execute_list_all_with_user(self):
81 self.run_cmd(argv=['atest', 'user', 'list', 'user0'],
82 rpcs=[('get_users', {'login__in': ['user0']},
83 True,
84 [{u'access_level': 2,
85 u'login': u'user0',
86 u'id': 3}])],
87 out_words_ok=['user0'],
88 out_words_no=['2', '3'])
89
90
91 def test_execute_list_all_with_acl(self):
92 self.run_cmd(argv=['atest', 'user', 'list', '--acl', 'acl0'],
showardd9ac4452009-02-07 02:04:37 +000093 rpcs=[('get_users', {'aclgroup__name__in': ['acl0']},
mblighbe630eb2008-08-01 16:41:48 +000094 True,
95 [{u'access_level': 2,
96 u'login': u'user0',
97 u'id': 3}])],
98 out_words_ok=['user0'],
99 out_words_no=['2', '3'])
100
101
102 def test_execute_list_all_with_access_level(self):
103 self.run_cmd(argv=['atest', 'user', 'list', '--access_level', '2'],
104 rpcs=[('get_users', {'access_level__in': ['2']},
105 True,
106 [{u'access_level': 2,
107 u'login': u'user0',
108 u'id': 3}])],
109 out_words_ok=['user0'],
110 out_words_no=['2', '3'])
111
112
113 def test_execute_list_all_verbose(self):
114 self.run_cmd(argv=['atest', 'user', 'list', '--verbose'],
115 rpcs=[('get_users', {},
116 True,
117 [{u'access_level': 0,
118 u'login': u'user0',
119 u'id': 41},
120 {u'access_level': 0,
121 u'login': u'user5',
122 u'id': 42},
123 {u'access_level': 5,
124 u'login': u'user0',
125 u'id': 3}])],
126 out_words_ok=['user0', 'user5', '41', '42', '0', '5'])
127
128
129 def test_execute_list_all_with_user_verbose(self):
130 ufile = cli_mock.create_file('user0 user1\n')
mbligh41515392009-07-11 00:13:11 +0000131 self.run_cmd(argv=['atest', 'user', 'list', '--ulist', ufile.name,
132 '-v'],
mblighbe630eb2008-08-01 16:41:48 +0000133 rpcs=[('get_users', {'login__in': ['user0', 'user1']},
134 True,
135 [{u'access_level': 2,
136 u'login': u'user0',
137 u'id': 3},
138 {u'access_level': 5,
139 u'login': u'user1',
140 u'id': 4}])],
141 out_words_ok=['user0', 'user1', '3', '4', '5'])
mbligh41515392009-07-11 00:13:11 +0000142 ufile.clean()
mblighbe630eb2008-08-01 16:41:48 +0000143
144
145 def test_execute_list_all_with_acl_verbose(self):
146 self.run_cmd(argv=['atest', 'user', 'list', '--acl', 'acl0', '-v'],
showardd9ac4452009-02-07 02:04:37 +0000147 rpcs=[('get_users', {'aclgroup__name__in': ['acl0']},
mblighbe630eb2008-08-01 16:41:48 +0000148 True,
149 [{u'access_level': 2,
150 u'login': u'user0',
151 u'id': 3}])],
152 out_words_ok=['user0', '3', '2'])
153
154
155 def test_execute_list_all_with_access_level_verbose(self):
156 self.run_cmd(argv=['atest', 'user', 'list',
157 '--access_level', '2', '-v'],
158 rpcs=[('get_users', {'access_level__in': ['2']},
159 True,
160 [{u'access_level': 2,
161 u'login': u'user0',
162 u'id': 3}])],
163 out_words_ok=['user0', '2', '3'])
164
165
166if __name__ == '__main__':
167 unittest.main()