3
3
from landscape.lib.persist import Persist
4
from landscape.lib.twisted_util import gather_results
4
5
from landscape.manager.plugin import SUCCEEDED, FAILED
5
6
from landscape.monitor.usermonitor import UserMonitor
6
7
from landscape.manager.usermanager import (
332
333
result.addCallback(handle_callback)
336
def test_many_remove_user_events(self):
338
The L{UserManager} can handle multiple remove-user events at the same
341
users = [("foo", "x", 1000, 1000, "Foo,,,,", "/home/foo", "/bin/zsh"),
342
("bar", "x", 1001, 1001, "Bar,,,,", "/home/bar", "/bin/zsh")]
343
self.setup_environment(users, [], None)
345
def handle_callback(ignored):
346
messages = self.broker_service.message_store.get_pending_messages()
347
# Ignore the message created by plugin.run.
348
messages = sorted(messages[1:3],
349
key=lambda message: message["operation-id"])
350
self.assertMessages(messages,
351
[{"type": "operation-result",
353
"operation-id": 39, "timestamp": 0,
354
"result-text": "remove_user succeeded"},
355
{"type": "operation-result",
357
"operation-id": 40, "timestamp": 0,
358
"result-text": "remove_user succeeded"}])
362
results.append(self.manager.dispatch_message({"username": "foo",
364
"type": "remove-user",
365
"operation-id": 39}))
366
results.append(self.manager.dispatch_message({"username": "bar",
368
"type": "remove-user",
369
"operation-id": 40}))
370
return gather_results(results).addCallback(handle_callback)
335
372
def test_failing_remove_user_event(self):
337
374
When a C{remove-user} event is received, and the user doesn't exist, we