def test_download_http_nocancel(self): '''download_url(), HTTP, no cancelling''' self.stop_capture() ui = sandbox.TestUI() # temporary file httpd.start(8427, OSLib.inst.workdir) (fname, h) = ui.download_url('http://localhost:8427/stuff') httpd.stop() self.assertEqual(open(fname).read(), self.big_file_contents) os.unlink(fname) self.assertRaises(IndexError, ui.pop_error) # we got progress reports self.assertEqual(ui.cur_progress, [ 'http://localhost:8427/stuff', len(self.big_file_contents), len(self.big_file_contents) ]) # specified file name dest = os.path.join(OSLib.inst.workdir, 'destfile') httpd.start(8427, OSLib.inst.workdir) (fname, h) = ui.download_url('http://localhost:8427/stuff', dest) httpd.stop() self.assertEqual(fname, dest) self.assertEqual(open(dest).read(), self.big_file_contents) os.unlink(dest) self.assertRaises(IndexError, ui.pop_error) # we got progress reports self.assertEqual(ui.cur_progress, [ 'http://localhost:8427/stuff', len(self.big_file_contents), len(self.big_file_contents) ]) # nonexisting file httpd.start(8427, OSLib.inst.workdir) (fname, h) = ui.download_url('http://localhost:8427/nonexisting') httpd.stop() self.assertEqual(fname, None) # one error message about download failure self.assert_(ui.pop_error()) self.assertRaises(IndexError, ui.pop_error) # nonexisting server httpd.start(8427, OSLib.inst.workdir) (fname, h) = ui.download_url('http://i.do.not.exist:8080/nonexisting') httpd.stop() self.assertEqual(fname, None) # one error message about download failure self.assert_(ui.pop_error()) self.assertRaises(IndexError, ui.pop_error)
def test_download_http_nocancel(self): '''download_url(), HTTP, no cancelling''' self.stop_capture() ui = sandbox.TestUI() # temporary file httpd.start(8427, OSLib.inst.workdir) (fname, h) = ui.download_url('http://localhost:8427/stuff') httpd.stop() self.assertEqual(open(fname).read(), self.big_file_contents) os.unlink(fname) self.assertRaises(IndexError, ui.pop_error) # we got progress reports self.assertEqual(ui.cur_progress, ['http://localhost:8427/stuff', len(self.big_file_contents), len(self.big_file_contents)]) # specified file name dest = os.path.join(OSLib.inst.workdir, 'destfile') httpd.start(8427, OSLib.inst.workdir) (fname, h) = ui.download_url('http://localhost:8427/stuff', dest) httpd.stop() self.assertEqual(fname, dest) self.assertEqual(open(dest).read(), self.big_file_contents) os.unlink(dest) self.assertRaises(IndexError, ui.pop_error) # we got progress reports self.assertEqual(ui.cur_progress, ['http://localhost:8427/stuff', len(self.big_file_contents), len(self.big_file_contents)]) # nonexisting file httpd.start(8427, OSLib.inst.workdir) (fname, h) = ui.download_url('http://localhost:8427/nonexisting') httpd.stop() self.assertEqual(fname, None) # one error message about download failure self.assert_(ui.pop_error()) self.assertRaises(IndexError, ui.pop_error) # nonexisting server httpd.start(8427, OSLib.inst.workdir) (fname, h) = ui.download_url('http://i.do.not.exist:8080/nonexisting') httpd.stop() self.assertEqual(fname, None) # one error message about download failure self.assert_(ui.pop_error()) self.assertRaises(IndexError, ui.pop_error)
def test_download_local_nocancel(self): '''download_url(), local file://, no cancelling''' ui = sandbox.TestUI() # temporary file (fname, h) = ui.download_url('file://' + self.big_file) self.assertEqual(open(fname).read(), self.big_file_contents) os.unlink(fname) self.assertRaises(IndexError, ui.pop_error) # we got progress reports self.assertEqual(ui.cur_progress, [ 'file://' + self.big_file, len(self.big_file_contents), len(self.big_file_contents) ]) # specified file name dest = os.path.join(OSLib.inst.workdir, 'destfile') (fname, h) = ui.download_url('file://' + self.big_file, dest) self.assertEqual(fname, dest) self.assertEqual(open(dest).read(), self.big_file_contents) os.unlink(dest) self.assertRaises(IndexError, ui.pop_error) # we got progress reports self.assertEqual(ui.cur_progress, [ 'file://' + self.big_file, len(self.big_file_contents), len(self.big_file_contents) ]) # nonexisting file (fname, h) = ui.download_url('file://junk/nonexisting') self.assertEqual(fname, None) # one error message about download failure self.assert_(ui.pop_error()) self.assertRaises(IndexError, ui.pop_error)
def test_download_local_nocancel(self): '''download_url(), local file://, no cancelling''' ui = sandbox.TestUI() # temporary file (fname, h) = ui.download_url('file://' + self.big_file) self.assertEqual(open(fname).read(), self.big_file_contents) os.unlink(fname) self.assertRaises(IndexError, ui.pop_error) # we got progress reports self.assertEqual(ui.cur_progress, ['file://' + self.big_file, len(self.big_file_contents), len(self.big_file_contents)]) # specified file name dest = os.path.join(OSLib.inst.workdir, 'destfile') (fname, h) = ui.download_url('file://' + self.big_file, dest) self.assertEqual(fname, dest) self.assertEqual(open(dest).read(), self.big_file_contents) os.unlink(dest) self.assertRaises(IndexError, ui.pop_error) # we got progress reports self.assertEqual(ui.cur_progress, ['file://' + self.big_file, len(self.big_file_contents), len(self.big_file_contents)]) # nonexisting file (fname, h) = ui.download_url('file://junk/nonexisting') self.assertEqual(fname, None) # one error message about download failure self.assert_(ui.pop_error()) self.assertRaises(IndexError, ui.pop_error)
def test_set_handler_enable_error(self): '''set_handler_enable() on errors''' open(os.path.join(OSLib.inst.handler_dir, 'h.py'), 'w').write('import jockey.handlers' + sandbox.h_nochangemod) sys.argv = ['ui-test'] ui = sandbox.TestUI() self.stop_capture() for h_id in ui.backend().available(): self.assert_( jockey.ui.bool(ui.backend().handler_info(h_id)['enabled'])) if 'can_change' in ui.backend().handler_info(h_id): no_change_h = h_id else: change_h = h_id assert no_change_h assert change_h # change an unchangeable handler # note: don't set a confirmation response, it shouldn't ask here self.assertEqual(ui.set_handler_enable(no_change_h, 'enable', True), False) self.assertEqual(ui.pop_error()[1], 'I must live') self.assertRaises(IndexError, ui.pop_error) self.assertEqual(ui.set_handler_enable(no_change_h, 'disable', True), False) self.assertEqual(ui.pop_error()[1], 'I must live') self.assertRaises(IndexError, ui.pop_error) self.assertEqual(ui.set_handler_enable(no_change_h, 'toggle', True), False) self.assertEqual(ui.pop_error()[1], 'I must live') self.assertRaises(IndexError, ui.pop_error) # invalid operation self.assertRaises(ValueError, ui.set_handler_enable, no_change_h, 'foo', True) # package install failure ui.backend().handlers['kmod:mint'].package = 'pretzel' self.assertEqual( jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']), False) OSLib.inst.pending_install_remove_exception = 'OMGbroken' self.assertEqual(ui.set_handler_enable('kmod:mint', 'enable', False), False) self.assertEqual( jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']), False) # one error message about install failure (etitle, etext) = ui.pop_error() self.assert_('OMGbroken' in etext, '%s: %s' % (etitle, etext)) self.assertRaises(IndexError, ui.pop_error) # install it now self.assertEqual(ui.set_handler_enable('kmod:mint', 'enable', False), True) self.assertEqual( jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']), True) # package removal failure OSLib.inst.pending_install_remove_exception = 'OMGZombie' self.assertEqual(ui.set_handler_enable('kmod:mint', 'disable', False), False) self.assertEqual( jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']), True) # one error message about removal failure (etitle, etext) = ui.pop_error() self.assert_('OMGZombie' in etext, '%s: %s' % (etitle, etext)) self.assertRaises(IndexError, ui.pop_error)
def test_set_handler_enable_error(self): '''set_handler_enable() on errors''' open (os.path.join(OSLib.inst.handler_dir, 'h.py'), 'w').write( 'import jockey.handlers' + sandbox.h_nochangemod) sys.argv = ['ui-test'] ui = sandbox.TestUI() self.stop_capture() for h_id in ui.backend().available(): self.assert_(jockey.ui.bool(ui.backend().handler_info(h_id)['enabled'])) if 'can_change' in ui.backend().handler_info(h_id): no_change_h = h_id else: change_h = h_id assert no_change_h assert change_h # change an unchangeable handler # note: don't set a confirmation response, it shouldn't ask here self.assertEqual(ui.set_handler_enable(no_change_h, 'enable', True), False) self.assertEqual(ui.pop_error()[1], 'I must live') self.assertRaises(IndexError, ui.pop_error) self.assertEqual(ui.set_handler_enable(no_change_h, 'disable', True), False) self.assertEqual(ui.pop_error()[1], 'I must live') self.assertRaises(IndexError, ui.pop_error) self.assertEqual(ui.set_handler_enable(no_change_h, 'toggle', True), False) self.assertEqual(ui.pop_error()[1], 'I must live') self.assertRaises(IndexError, ui.pop_error) # invalid operation self.assertRaises(ValueError, ui.set_handler_enable, no_change_h, 'foo', True) # package install failure ui.backend().handlers['kmod:mint'].package = 'pretzel' self.assertEqual(jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']), False) OSLib.inst.pending_install_remove_exception = 'OMGbroken' self.assertEqual(ui.set_handler_enable('kmod:mint', 'enable', False), False) self.assertEqual(jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']), False) # one error message about install failure (etitle, etext) = ui.pop_error() self.assert_('OMGbroken' in etext, '%s: %s' % (etitle, etext)) self.assertRaises(IndexError, ui.pop_error) # install it now self.assertEqual(ui.set_handler_enable('kmod:mint', 'enable', False), True) self.assertEqual(jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']), True) # package removal failure OSLib.inst.pending_install_remove_exception = 'OMGZombie' self.assertEqual(ui.set_handler_enable('kmod:mint', 'disable', False), False) self.assertEqual(jockey.ui.bool(ui.backend().handler_info('kmod:mint')['enabled']), True) # one error message about removal failure (etitle, etext) = ui.pop_error() self.assert_('OMGZombie' in etext, '%s: %s' % (etitle, etext)) self.assertRaises(IndexError, ui.pop_error)