def testDownloadSource(self): f = model.ZeroInstallFeed(empty_feed, local_path='/foo') a = model.ZeroInstallImplementation(f, 'foo', None) a.add_download_source('ftp://foo', 1024, None) a.add_download_source('ftp://foo.tgz', 1025, 'foo') assert a.download_sources[0].url == 'ftp://foo' assert a.download_sources[0].size == 1024 assert a.download_sources[0].extract == None assert a.feed is f
def testImpl(self): i = model.Interface('http://foo') a = model.ZeroInstallImplementation(i, 'foo', None) assert a.id == 'foo' assert a.size == a.version == a.user_stability == None assert a.arch == a.upstream_stability == None assert a.dependencies == {} assert a.download_sources == [] assert a.get_stability() is model.testing a.upstream_stability = model.stable assert a.get_stability() is model.stable a.user_stability = model.buggy assert a.get_stability() is model.buggy a.version = model.parse_version('1.2.3') self.assertEquals('1.2.3', a.get_version()) a.version = model.parse_version('1.2.3-rc2-post') self.assertEquals('1.2.3-rc2-post', a.get_version()) assert str(a) == 'foo' b = model.ZeroInstallImplementation(i, 'foo', None) b.version = [1,2,1] assert b > a
def testLocalPath(self): # 0launch --get-selections Local.xml iface = os.path.join(mydir, "Local.xml") driver = Driver(requirements=Requirements(iface), config=self.config) driver.need_download() assert driver.solver.ready s1 = driver.solver.selections xml = s1.toDOM().toxml("utf-8") # Reload selections and check they're the same root = qdom.parse(BytesIO(xml)) s2 = selections.Selections(root) local_path = s2.selections[iface].local_path assert os.path.isdir(local_path), local_path assert not s2.selections[iface].digests, s2.selections[iface].digests # Add a newer implementation and try again feed = self.config.iface_cache.get_feed(iface) impl = model.ZeroInstallImplementation(feed, "foo bar=123", local_path=None) impl.version = model.parse_version('1.0') impl.commands["run"] = model.Command( qdom.Element(namespaces.XMLNS_IFACE, 'command', { 'path': 'dummy', 'name': 'run' }), None) impl.add_download_source('http://localhost/bar.tgz', 1000, None) feed.implementations = {impl.id: impl} assert driver.need_download() assert driver.solver.ready, driver.solver.get_failure_reason() s1 = driver.solver.selections xml = s1.toDOM().toxml("utf-8") root = qdom.parse(BytesIO(xml)) s2 = selections.Selections(root) xml = s2.toDOM().toxml("utf-8") qdom.parse(BytesIO(xml)) assert s2.selections[iface].local_path is None assert not s2.selections[iface].digests, s2.selections[iface].digests assert s2.selections[iface].id == 'foo bar=123'