本文整理汇总了Python中zeroinstall.injector.driver.Driver.download_uncached_implementations方法的典型用法代码示例。如果您正苦于以下问题:Python Driver.download_uncached_implementations方法的具体用法?Python Driver.download_uncached_implementations怎么用?Python Driver.download_uncached_implementations使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类zeroinstall.injector.driver.Driver
的用法示例。
在下文中一共展示了Driver.download_uncached_implementations方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testImplMirrorFails
# 需要导入模块: from zeroinstall.injector.driver import Driver [as 别名]
# 或者: from zeroinstall.injector.driver.Driver import download_uncached_implementations [as 别名]
def testImplMirrorFails(self):
with resourcewarnings_suppressed():
trust.trust_db.trust_key('DE937DD411906ACF7C263B396FCF121BE2390E0B', 'example.com:8000')
run_server('/Hello.xml',
'/6FCF121BE2390E0B.gpg',
server.Give404('/HelloWorld.tgz'),
server.Give404('/0mirror/archive/http%3A%23%23example.com%3A8000%23HelloWorld.tgz'),
server.Give404('/0mirror/feeds/http/example.com:8000/Hello.xml/impl/sha1=3ce644dc725f1d21cfcf02562c76f375944b266a'))
driver = Driver(requirements = Requirements('http://example.com:8000/Hello.xml'), config = self.config)
self.config.mirror = 'http://example.com:8000/0mirror'
refreshed = driver.solve_with_downloads()
tasks.wait_for_blocker(refreshed)
assert driver.solver.ready
getLogger().setLevel(logging.ERROR)
try:
downloaded = driver.download_uncached_implementations()
tasks.wait_for_blocker(downloaded)
assert 0
except download.DownloadError as ex:
assert 'Missing: HelloWorld.tgz' in str(ex), ex
self.assertEqual([
'http://example.com:8000/Hello.xml',
'http://example.com:8000/6FCF121BE2390E0B.gpg',
# The original archive:
'http://example.com:8000/HelloWorld.tgz',
# Mirror of original archive:
'http://example.com:8000/0mirror/archive/http%3A%23%23example.com%3A8000%23HelloWorld.tgz',
# Mirror of implementation:
'http://example.com:8000/0mirror/feeds/http/example.com:8000/Hello.xml/impl/sha1=3ce644dc725f1d21cfcf02562c76f375944b266a'
], traced_downloads)
示例2: testLocalFeedMirror
# 需要导入模块: from zeroinstall.injector.driver import Driver [as 别名]
# 或者: from zeroinstall.injector.driver.Driver import download_uncached_implementations [as 别名]
def testLocalFeedMirror(self):
with resourcewarnings_suppressed():
# This is like testImplMirror, except we have a local feed.
run_server(server.Give404('/HelloWorld.tgz'),
'/0mirror/archive/http%3A%23%23example.com%3A8000%23HelloWorld.tgz')
iface_uri = model.canonical_iface_uri('Hello.xml')
driver = Driver(requirements = Requirements(iface_uri), config = self.config)
self.config.mirror = 'http://example.com:8000/0mirror'
refreshed = driver.solve_with_downloads()
tasks.wait_for_blocker(refreshed)
assert driver.solver.ready
getLogger().setLevel(logging.ERROR)
downloaded = driver.download_uncached_implementations()
tasks.wait_for_blocker(downloaded)
path = self.config.stores.lookup_any(driver.solver.selections.selections[iface_uri].digests)
assert os.path.exists(os.path.join(path, 'HelloWorld', 'main'))
示例3: testMirrors
# 需要导入模块: from zeroinstall.injector.driver import Driver [as 别名]
# 或者: from zeroinstall.injector.driver.Driver import download_uncached_implementations [as 别名]
def testMirrors(self):
with resourcewarnings_suppressed():
getLogger().setLevel(logging.ERROR)
trust.trust_db.trust_key('DE937DD411906ACF7C263B396FCF121BE2390E0B', 'example.com:8000')
run_server(server.Give404('/Hello.xml'),
'/0mirror/feeds/http/example.com:8000/Hello.xml/latest.xml',
'/0mirror/keys/6FCF121BE2390E0B.gpg',
server.Give404('/HelloWorld.tgz'),
'/0mirror/archive/http%3A%23%23example.com%3A8000%23HelloWorld.tgz')
driver = Driver(requirements = Requirements('http://example.com:8000/Hello.xml'), config = self.config)
self.config.mirror = 'http://example.com:8000/0mirror'
refreshed = driver.solve_with_downloads()
tasks.wait_for_blocker(refreshed)
assert driver.solver.ready
#getLogger().setLevel(logging.WARN)
downloaded = driver.download_uncached_implementations()
tasks.wait_for_blocker(downloaded)
path = self.config.stores.lookup_any(driver.solver.selections.selections['http://example.com:8000/Hello.xml'].digests)
assert os.path.exists(os.path.join(path, 'HelloWorld', 'main'))
示例4: testImplMirror
# 需要导入模块: from zeroinstall.injector.driver import Driver [as 别名]
# 或者: from zeroinstall.injector.driver.Driver import download_uncached_implementations [as 别名]
def testImplMirror(self):
with resourcewarnings_suppressed():
# This is like testMirror, except we have a different archive (that generates the same content),
# rather than an exact copy of the unavailable archive.
trust.trust_db.trust_key('DE937DD411906ACF7C263B396FCF121BE2390E0B', 'example.com:8000')
run_server('/Hello.xml',
'/6FCF121BE2390E0B.gpg',
server.Give404('/HelloWorld.tgz'),
server.Give404('/0mirror/archive/http%3A%2F%2Flocalhost%3A8000%2FHelloWorld.tgz'),
'/0mirror/feeds/http/example.com:8000/Hello.xml/impl/sha1=3ce644dc725f1d21cfcf02562c76f375944b266a')
driver = Driver(requirements = Requirements('http://example.com:8000/Hello.xml'), config = self.config)
self.config.mirror = 'http://example.com:8000/0mirror'
refreshed = driver.solve_with_downloads()
tasks.wait_for_blocker(refreshed)
assert driver.solver.ready
getLogger().setLevel(logging.ERROR)
downloaded = driver.download_uncached_implementations()
tasks.wait_for_blocker(downloaded)
path = self.config.stores.lookup_any(driver.solver.selections.selections['http://example.com:8000/Hello.xml'].digests)
assert os.path.exists(os.path.join(path, 'HelloWorld', 'main'))
示例5: _check_for_updates
# 需要导入模块: from zeroinstall.injector.driver import Driver [as 别名]
# 或者: from zeroinstall.injector.driver.Driver import download_uncached_implementations [as 别名]
def _check_for_updates(requirements, verbose, app):
if app is not None:
old_sels = app.get_selections()
from zeroinstall.injector.driver import Driver
from zeroinstall.injector.config import load_config
background_handler = BackgroundHandler(requirements.interface_uri, requirements.interface_uri)
background_config = load_config(background_handler)
root_iface = background_config.iface_cache.get_interface(requirements.interface_uri).get_name()
background_handler.title = root_iface
driver = Driver(config = background_config, requirements = requirements)
logger.info(_("Checking for updates to '%s' in a background process"), root_iface)
if verbose:
background_handler.notify("Zero Install", _("Checking for updates to '%s'...") % root_iface, timeout = 1)
network_state = background_handler.get_network_state()
if network_state not in (_NetworkState.NM_STATE_CONNECTED_SITE, _NetworkState.NM_STATE_CONNECTED_GLOBAL):
logger.info(_("Not yet connected to network (status = %d). Sleeping for a bit..."), network_state)
import time
time.sleep(120)
if network_state in (_NetworkState.NM_STATE_DISCONNECTED, _NetworkState.NM_STATE_ASLEEP):
logger.info(_("Still not connected to network. Giving up."))
sys.exit(1)
else:
logger.info(_("NetworkManager says we're on-line. Good!"))
background_config.freshness = 0 # Don't bother trying to refresh when getting the interface
refresh = driver.solve_with_downloads(force = True) # (causes confusing log messages)
tasks.wait_for_blocker(refresh)
if background_handler.need_gui or driver.get_uncached_implementations():
if verbose:
background_handler.notify("Zero Install",
_("Updates ready to download for '%s'.") % root_iface,
timeout = 1)
# Run the GUI if possible...
from zeroinstall import helpers
gui_args = ['--refresh', '--systray', '--download'] + requirements.get_as_options()
new_sels = helpers.get_selections_gui(requirements.interface_uri, gui_args, use_gui = None)
if new_sels is None:
sys.exit(0) # Cancelled by user
elif new_sels is helpers.DontUseGUI:
tasks.wait_for_blocker(driver.download_uncached_implementations())
new_sels = driver.solver.selections
if app is None:
background_handler.notify("Zero Install",
_("{name} updated.").format(name = root_iface),
timeout = 1)
else:
if verbose:
background_handler.notify("Zero Install", _("No updates to download."), timeout = 1)
new_sels = driver.solver.selections
if app is not None:
assert driver.solver.ready
from zeroinstall.support import xmltools
if not xmltools.nodes_equal(new_sels.toDOM(), old_sels.toDOM()):
app.set_selections(new_sels)
background_handler.notify("Zero Install",
_("{app} updated.").format(app = app.get_name()),
timeout = 1)
app.set_last_checked()
sys.exit(0)