~free.ekanayaka/landscape-client/lucid-1.4.4-0ubuntu0.10.04

« back to all changes in this revision

Viewing changes to landscape/monitor/tests/test_usermonitor.py

  • Committer: Bazaar Package Importer
  • Author(s): Free Ekanayaka
  • Date: 2009-12-16 10:50:05 UTC
  • mfrom: (1.1.12 upstream)
  • Revision ID: james.westby@ubuntu.com-20091216105005-svplwdorkgz6vja7
Tags: 1.4.0-0ubuntu0.10.04.0
* New upstream release with several bug fixes:
  - Fix landscape daemons fail to start when too many groups are
    available (LP: #456124)
  - Fix landscape programs wake up far too much. (LP: #340843)
  - Fix Package manager fails with 'no such table: task' (LP #465846)
  - Fix test suite leaving temporary files around (LP #476418)
  - Fix the 1hr long wait for user data to be uploaded following a
    resynchronisation (LP #369000)

* Add support for Ubuntu release upgrades:
  - Add helper function to fetch many files at once (LP: #450629)
  - Handle release-upgrade messages in the packagemanager
    plugin (LP: #455217)
  - Add a release-upgrader task handler (LP: #462543)
  - Support upgrade-tool environment variables (LP: #463321)

* Add initial support for Smart package locking:
  - Detect and report changes about Smart package locks (#488108)

* Packaging fixes:
  - Turn unnecessary Pre-Depends on python-gobject into a regular Depends
  - If it's empty, remove /etc/landscape upon purge

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
13
13
 
14
14
 
15
15
class UserMonitorNoManagerTest(LandscapeIsolatedTest):
16
16
 
17
 
    helpers = [MakePathHelper, RemoteBrokerHelper]
 
17
    helpers = [RemoteBrokerHelper]
18
18
 
19
19
    def setUp(self):
20
20
        super(UserMonitorNoManagerTest, self).setUp()
53
53
 
54
54
class UserMonitorTest(LandscapeIsolatedTest):
55
55
 
56
 
    helpers = [MakePathHelper, RemoteBrokerHelper]
 
56
    helpers = [RemoteBrokerHelper]
57
57
 
58
58
    def setUp(self):
59
59
        super(UserMonitorTest, self).setUp()
62
62
            self.remote, self.broker_service.reactor,
63
63
            self.broker_service.config, self.broker_service.bus,
64
64
            self.persist)
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):
85
85
        """
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.
88
88
        """
89
89
        def resynchronize_complete(result, plugin):
 
90
 
 
91
            def resynchronization_new_messages(result):
 
92
                self.assertMessages(
 
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,
 
99
                                        "username": u"jdoe",
 
100
                                        "work-phone": None}],
 
101
                                        "type": "users"}])
 
102
 
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"))
 
106
            self.assertMessages(
 
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}],
 
114
                                    "type": "users"}])
 
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)
 
119
            return deferred
96
120
 
97
121
        users = [("jdoe", "x", 1000, 1000, "JD,,,,", "/home/jdoe", "/bin/sh")]
98
122
        groups = [("webdev", "x", 1000, ["jdoe"])]