1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
#!/usr/bin/python
import mock
import sys
GIDNUMBER = 'pw_gid'
HOMEDIRECTORY = 'pw_dir'
class UsersTest(mock.TestCase):
def setUp(self):
self.setupModules(["_isys", "block", "ConfigParser"])
self.fs = mock.DiskIO()
self.anaconda = mock.Mock()
self.anaconda.security.auth.find.return_value = -1
import pyanaconda.users
pyanaconda.users.log = mock.Mock()
pyanaconda.users.iutil = mock.Mock()
pyanaconda.users.iutil.mkdirChain = mock.Mock()
pyanaconda.users.os = mock.Mock()
pyanaconda.users.os.fork.return_value=False
pyanaconda.users.os.waitpid.return_value=(1, 1)
pyanaconda.users.os.WEXITSTATUS.return_value=0
pyanaconda.users.libuser.admin = mock.Mock()
pyanaconda.users.libuser.GIDNUMBER = GIDNUMBER
pyanaconda.users.libuser.HOMEDIRECTORY = HOMEDIRECTORY
pyanaconda.users.libuser.admin().lookupGroupByName.return_value = False
pyanaconda.users.libuser.admin().lookupUserByName.return_value = False
pyanaconda.users.libuser.admin().initGroup().get.return_value = ['']
pyanaconda.users.libuser.admin().initGroup().reset_mock()
pyanaconda.users.libuser.admin().reset_mock()
def tearDown(self):
self.tearDownModules()
def create_group_test(self):
import pyanaconda.users
GROUP = 'Group'
GID = 100
group_dict = { "name" : GROUP,
"gid" : GID,
"root" : ""
}
usr = pyanaconda.users.Users(self.anaconda)
self.assertTrue(usr.createGroup(GROUP, **group_dict))
methods = pyanaconda.users.libuser.admin().method_calls[:]
try:
if methods[2][0] == 'addGroup':
methods.pop()
except:
pass
self.assertEqual(methods,
[('lookupGroupByName', (GROUP,), {}), ('initGroup', (GROUP,), {}),])
self.assertEqual(
pyanaconda.users.libuser.admin().initGroup().method_calls,
[('set', (GIDNUMBER, GID), {})])
def create_user_test(self):
import pyanaconda.users
USER = 'TestUser'
PASS = 'abcde'
user_dict = { "name" : USER,
"password" : PASS,
"groups" : [],
"homedir" : "",
"isCrypted" : False,
"shell" : "",
"uid" : None,
"root" : ""
}
usr = pyanaconda.users.Users(self.anaconda)
self.assertTrue(usr.createUser(USER, **user_dict))
self.assertTrue(pyanaconda.users.iutil.mkdirChain.called)
methods = [x[0] for x in pyanaconda.users.libuser.admin().method_calls]
self.assertEqual(methods,
['lookupUserByName', 'initUser', 'initGroup', 'addUser','addGroup',
'setpassUser', 'lookupGroupByName'])
self.assertEqual(pyanaconda.users.libuser.admin().initUser.call_args_list,
[((USER,), {})])
self.assertEqual(pyanaconda.users.libuser.admin().initGroup.call_args_list,
[((USER,), {})])
self.assertEqual(pyanaconda.users.libuser.admin().initUser().method_calls,
[('set', (GIDNUMBER, ['']), {}),
('set', (HOMEDIRECTORY, '/home/%s' % USER), {})]
)
self.assertEqual(pyanaconda.users.libuser.admin().initGroup().method_calls,
[('get', (GIDNUMBER,), {})])
def check_user_exists_test(self):
import pyanaconda.users
USER = 'TestUser'
usr = pyanaconda.users.Users(self.anaconda)
self.assertTrue(usr.checkUserExists(USER, root=''))
self.assertEqual(pyanaconda.users.libuser.admin().method_calls,
[('lookupUserByName', (USER,), {})])
def get_pass_algo_md5_test(self):
import pyanaconda.users
usr = pyanaconda.users.Users(self.anaconda)
self.assertEqual(usr.getPassAlgo(), None)
def set_user_password_test(self):
import pyanaconda.users
USER = 'TestUser'
PASS = 'abcde'
CRYPTED = False
LOCK = False
usr = pyanaconda.users.Users(self.anaconda)
usr.setUserPassword(USER, PASS, CRYPTED, LOCK)
methods = [x[0] for x in pyanaconda.users.libuser.admin().method_calls]
self.assertEqual(methods,
['lookupUserByName', 'setpassUser', 'modifyUser'])
def set_root_password_test(self):
import pyanaconda.users
usr = pyanaconda.users.Users(self.anaconda)
usr.setRootPassword()
methods = [x[0] for x in pyanaconda.users.libuser.admin().method_calls]
self.assertEqual(methods,
['lookupUserByName', 'setpassUser', 'modifyUser'])
|