~mvo/software-center/dbus-idle-timeout

« back to all changes in this revision

Viewing changes to tests/test_dataprovider.py

  • Committer: Michael Vogt
  • Date: 2012-10-01 08:51:17 UTC
  • Revision ID: michael.vogt@ubuntu.com-20121001085117-0jrh31rtlab9qeqb
add activity_timeout updates

Show diffs side-by-side

added added

removed removed

Lines of Context:
169
169
 
170
170
class IdleTimeoutTestCase(unittest.TestCase):
171
171
 
 
172
    def setUp(self):
 
173
        self.loop = GObject.MainLoop(GObject.main_context_default())
 
174
 
 
175
        # setup bus
 
176
        dbus_service_name = DBUS_BUS_NAME 
 
177
        proc, dbus_address = start_dbus_daemon()
 
178
        bus = dbus.bus.BusConnection(dbus_address)
 
179
        # run the checks
 
180
        self.bus_name = dbus.service.BusName(dbus_service_name, bus)
 
181
 
 
182
    def tearDown(self):
 
183
        self.loop.quit()
 
184
 
172
185
    @patch.object(SoftwareCenterDataProvider, "IDLE_TIMEOUT")
173
186
    @patch.object(SoftwareCenterDataProvider, "IDLE_CHECK_INTERVAL")
174
187
    def test_idle_timeout(self, mock_timeout, mock_interval):
177
190
        mock_interval = 1
178
191
        mock_interval  # pyflakes
179
192
 
180
 
        loop = GObject.MainLoop(GObject.main_context_default())
181
 
 
182
 
        # setup bus
183
 
        dbus_service_name = DBUS_BUS_NAME 
184
 
        proc, dbus_address = start_dbus_daemon()
185
 
        bus = dbus.bus.BusConnection(dbus_address)
186
 
        # run the checks
187
 
        bus_name = dbus.service.BusName(dbus_service_name, bus)
188
193
        now = time.time()
189
 
        provider = SoftwareCenterDataProvider(bus_name, main_loop=loop)
 
194
        provider = SoftwareCenterDataProvider(
 
195
            self.bus_name, main_loop=self.loop)
190
196
        provider  # pyflakes
191
 
        loop.run()
 
197
        self.loop.run()
192
198
        # ensure this exited within a reasonable timeout
193
199
        self.assertTrue((time.time() - now) < 5)
194
200
 
 
201
    def test_idle_timeout_updates(self):
 
202
        provider = SoftwareCenterDataProvider(
 
203
            self.bus_name, main_loop=self.loop)
 
204
        t1 = provider._activity_timestamp
 
205
        time.sleep(0.1)
 
206
        provider.GetAvailableCategories()
 
207
        t2 = provider._activity_timestamp
 
208
        self.assertTrue(t1 < t2)
195
209
 
196
210
if __name__ == "__main__":
197
211
    #import logging