8
8
from landscape.manager.usermanager import UserManagerDBusObject
9
9
from landscape.user.tests.helpers import FakeUserProvider
10
10
from landscape.tests.helpers import LandscapeIsolatedTest
11
from landscape.tests.helpers import MakePathHelper, RemoteBrokerHelper
11
from landscape.tests.helpers import RemoteBrokerHelper
12
12
from landscape.tests.mocker import ANY
15
15
class UserMonitorNoManagerTest(LandscapeIsolatedTest):
17
helpers = [MakePathHelper, RemoteBrokerHelper]
17
helpers = [RemoteBrokerHelper]
20
20
super(UserMonitorNoManagerTest, self).setUp()
62
62
self.remote, self.broker_service.reactor,
63
63
self.broker_service.config, self.broker_service.bus,
65
self.shadow_file = self.make_path("""\
65
self.shadow_file = self.makeFile("""\
66
66
jdoe:$1$xFlQvTqe$cBtrNEDOIKMy/BuJoUdeG0:13348:0:99999:7:::
67
67
psmith:!:13348:0:99999:7:::
68
68
sbarnes:$1$q7sz09uw$q.A3526M/SHu8vUb.Jo1A/:13349:0:99999:7:::
84
84
def test_wb_resynchronize_event(self):
86
86
When a C{resynchronize} event occurs any cached L{UserChange}
87
snapshots should be cleared.
87
snapshots should be cleared and a new message with users generated.
89
89
def resynchronize_complete(result, plugin):
91
def resynchronization_new_messages(result):
93
self.broker_service.message_store.get_pending_messages(),
94
[{"create-group-members": {u"webdev":[u"jdoe"]},
95
"create-groups": [{"gid": 1000, "name": u"webdev"}],
96
"create-users": [{"enabled": True, "home-phone": None,
97
"location": None, "name": u"JD",
98
"primary-gid": 1000, "uid": 1000,
100
"work-phone": None}],
90
103
persist = plugin._persist
91
104
self.assertTrue(persist.get("users"))
92
105
self.assertTrue(persist.get("groups"))
93
self.monitor.reactor.fire("resynchronize")
94
self.assertFalse(persist.get("users"))
95
self.assertFalse(persist.get("groups"))
107
self.broker_service.message_store.get_pending_messages(),
108
[{"create-group-members": {u"webdev":[u"jdoe"]},
109
"create-groups": [{"gid": 1000, "name": u"webdev"}],
110
"create-users": [{"enabled": True, "home-phone": None,
111
"location": None, "name": u"JD",
112
"primary-gid": 1000, "uid": 1000,
113
"username": u"jdoe", "work-phone": None}],
115
# Clear all the messages from the message store
116
self.broker_service.message_store.delete_all_messages()
117
deferred = self.monitor.reactor.fire("resynchronize")[0]
118
deferred.addCallback(resynchronization_new_messages)
97
121
users = [("jdoe", "x", 1000, 1000, "JD,,,,", "/home/jdoe", "/bin/sh")]
98
122
groups = [("webdev", "x", 1000, ["jdoe"])]