~evfool/software-center/lp934414

« back to all changes in this revision

Viewing changes to tests/test_dataprovider.py

  • Committer: Michael Vogt
  • Date: 2012-10-05 06:54:05 UTC
  • mfrom: (3206.4.6 dbus-idle-timeout)
  • Revision ID: michael.vogt@ubuntu.com-20121005065405-3ejaw4iidohxlkmu
mergedĀ lp:~mvo/software-center/dbus-idle-timeout

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
import time
5
5
import unittest
6
6
 
 
7
from gi.repository import GObject
 
8
 
7
9
from dbus.mainloop.glib import DBusGMainLoop
8
10
DBusGMainLoop(set_as_default=True)
9
11
 
10
 
from mock import Mock
 
12
from mock import (
 
13
    Mock,
 
14
    patch,
 
15
    )
11
16
 
12
17
from tests.utils import (
13
18
    kill_process,
162
167
        self.assertEqual(len(result), 20)
163
168
 
164
169
 
 
170
class IdleTimeoutTestCase(unittest.TestCase):
 
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
 
 
185
    @patch.object(SoftwareCenterDataProvider, "IDLE_TIMEOUT")
 
186
    @patch.object(SoftwareCenterDataProvider, "IDLE_CHECK_INTERVAL")
 
187
    def test_idle_timeout(self, mock_timeout, mock_interval):
 
188
        mock_timeout = 1
 
189
        mock_timeout  # pyflakes
 
190
        mock_interval = 1
 
191
        mock_interval  # pyflakes
 
192
 
 
193
        now = time.time()
 
194
        provider = SoftwareCenterDataProvider(
 
195
            self.bus_name, main_loop=self.loop)
 
196
        provider  # pyflakes
 
197
        self.loop.run()
 
198
        # ensure this exited within a reasonable timeout
 
199
        self.assertTrue((time.time() - now) < 5)
 
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)
 
209
 
 
210
 
165
211
if __name__ == "__main__":
166
212
    #import logging
167
213
    #logging.basicConfig(level=logging.DEBUG)