aptpkg_dir='.apt-dht'
+class MirrorError(Exception):
+ """Exception raised when there's a problem with the mirror."""
+
class MirrorManager:
"""Manages all requests for mirror objects."""
if site in self.apt_caches and baseDir in self.apt_caches[site]:
return self.apt_caches[site][baseDir].findHash(path)
d = defer.Deferred()
- d.errback("Not Found")
+ d.errback(MirrorError("Site Not Found"))
return d
class TestMirrorManager(unittest.TestCase):
"%s hashes don't match: %s != %s" % (path, found_hash[0], true_hash))
def test_findHash(self):
- self.packagesFile = os.popen('ls -Sr /var/lib/apt/lists/ | grep -E "Packages$" | tail -n 1').read().rstrip('\n')
- self.sourcesFile = os.popen('ls -Sr /var/lib/apt/lists/ | grep -E "Sources$" | tail -n 1').read().rstrip('\n')
+ self.packagesFile = os.popen('ls -Sr /var/lib/apt/lists/ | grep -E "_main_.*Packages$" | tail -n 1').read().rstrip('\n')
+ self.sourcesFile = os.popen('ls -Sr /var/lib/apt/lists/ | grep -E "_main_.*Sources$" | tail -n 1').read().rstrip('\n')
for f in os.walk('/var/lib/apt/lists').next()[2]:
if f[-7:] == "Release" and self.packagesFile.startswith(f[:-7]):
self.releaseFile = f
d = self.client.findHash(idx_path)
d.addCallback(self.verifyHash, idx_path, idx_hash)
- d.addCallback(lastDefer.callback)
+ d.addBoth(lastDefer.callback)
return lastDefer
def tearDown(self):