-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtests.py
More file actions
82 lines (56 loc) · 2.96 KB
/
Copy pathtests.py
File metadata and controls
82 lines (56 loc) · 2.96 KB
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
import unittest
import StringIO
from mock import patch, sentinel, MagicMock
import toopher
import pam_toopher
import common
class ToopherPamAuthenticateTests(unittest.TestCase):
def setUp(self):
pamh = MagicMock()
pamh.PAM_IGNORE = sentinel.PAM_IGNORE
pamh.PAM_AUTH_ERR = sentinel.PAM_AUTH_ERR
pamh.get_user.return_value = sentinel.PAM_USER
self.pamh = pamh
self.flags = None
self.argv = []
get_system_config_patcher = patch("pam_toopher.get_system_config")
self.addCleanup(get_system_config_patcher.stop)
self.get_system_config_mock = get_system_config_patcher.start()
self.get_system_config_mock.return_value = common.get_system_config(StringIO.StringIO())
get_api_object_patcher = patch("pam_toopher.get_api_object")
self.addCleanup(get_api_object_patcher.stop)
self.get_api_object_mock = get_api_object_patcher.start()
self.get_api_object_mock.return_value = MagicMock(spec=toopher.ToopherApi)
system_config_options = self.get_system_config_mock.return_value[common.SYSTEM_CONFIG_OPTIONS_SECTION]
self.group_available = MagicMock()
self.group_available.gr_name = system_config_options[common.SYSTEM_CONFIG_OPTIONS_KEY_AVAILABLE_GROUP]
self.group_available.gr_mem = []
self.group_required = MagicMock()
self.group_required.gr_name = system_config_options[common.SYSTEM_CONFIG_OPTIONS_KEY_REQUIRED_GROUP]
self.group_required.gr_mem = []
grp_patcher = patch("pam_toopher.grp")
self.addCleanup(grp_patcher.stop)
grp_mock = grp_patcher.start()
grp_mock.getgrall.return_value = [self.group_available,
self.group_required]
def set_availability_to_groups(self):
self.get_system_config_mock.return_value[common.SYSTEM_CONFIG_OPTIONS_SECTION][common.SYSTEM_CONFIG_OPTIONS_KEY_AVAILABILITY] = "groups"
def add_user_to_group_available(self):
self.group_available.gr_mem.append(self.pamh.get_user.return_value)
def add_user_to_group_required(self):
self.group_required.gr_mem.append(self.pamh.get_user.return_value)
def test_available_but_unpaired_returns_ignore(self):
ret_val = pam_toopher.pam_sm_authenticate(self.pamh, self.flags, self.argv)
self.assertEqual(ret_val, sentinel.PAM_IGNORE)
def test_group_availability_for_unpaired_user(self):
self.set_availability_to_groups()
self.add_user_to_group_available()
ret_val = pam_toopher.pam_sm_authenticate(self.pamh, self.flags, self.argv)
self.assertEqual(ret_val, sentinel.PAM_IGNORE)
def test_group_required_for_unpaired_user(self):
self.set_availability_to_groups()
self.add_user_to_group_required()
ret_val = pam_toopher.pam_sm_authenticate(self.pamh, self.flags, self.argv)
self.assertEqual(ret_val, sentinel.PAM_AUTH_ERR)
if __name__ == '__main__':
unittest.main()