def test_run_apt_update_no_run_update_notifier_stamp_in_interval(self):
"""
The L{PackageReporter.run_apt_update} doesn't runs apt-update if the
interval is passed but the stamp file from update-notifier-common
reports that 'apt-get update' has been run in the interval.
"""
self.reporter._apt_sources_have_changed = lambda: False
# The interval for the apt-update stamp file is expired.
self.makeFile("", path=self.config.update_stamp_filename)
expired_time = time.time() - self.config.apt_update_interval - 1
os.utime(
self.config.update_stamp_filename, (expired_time, expired_time))
# The interval for the update-notifier-common stamp file is not
# expired.
self.reporter.update_notifier_stamp = self.makeFile("")
debug_patcher = mock.patch.object(reporter.logging, "debug")
debug_mock = debug_patcher.start()
self.addCleanup(debug_patcher.stop)
deferred = Deferred()
def do_test():
result = self.reporter.run_apt_update()
def callback(args):
out, err, code = args
self.assertEqual("", out)
self.assertEqual("", err)
self.assertEqual(0, code)
debug_mock.assert_called_once_with(
("'%s' didn't run, conditions not met"
) % self.reporter.apt_update_filename)
result.addCallback(callback)
self.reactor.advance(0)
result.chainDeferred(deferred)
reactor.callWhenRunning(do_test)
return deferred
评论列表
文章目录