mirror of
https://git.launchpad.net/ubuntu-dev-tools
synced 2025-04-20 06:41:09 +00:00
Update the ubuntutools.archive test suite to handle the proxy change.
This commit is contained in:
commit
c58f620d09
@ -110,7 +110,7 @@ class Dsc(debian.deb822.Dsc):
|
||||
if (size != their_checksums[name][0] or
|
||||
checksum != their_checksums[name][1]):
|
||||
return False
|
||||
return True # one checksum is good enough
|
||||
return True # one checksum is good enough
|
||||
return True
|
||||
|
||||
|
||||
@ -154,6 +154,10 @@ class SourcePackage(object):
|
||||
|
||||
self.version = debian.debian_support.Version(version)
|
||||
|
||||
# uses default proxies from the environment
|
||||
proxy = urllib2.ProxyHandler()
|
||||
self.url_opener = urllib2.build_opener(proxy)
|
||||
|
||||
@property
|
||||
def lp_spph(self):
|
||||
"Return the LP Source Package Publishing History entry"
|
||||
@ -317,10 +321,8 @@ class SourcePackage(object):
|
||||
if parsed.scheme == 'file':
|
||||
in_ = open(parsed.path, 'r')
|
||||
else:
|
||||
proxy = urllib2.ProxyHandler() # uses default proxy from environment
|
||||
opener = urllib2.build_opener(proxy)
|
||||
try:
|
||||
in_ = opener.open(url)
|
||||
in_ = self.url_opener.open(url)
|
||||
except urllib2.URLError:
|
||||
return False
|
||||
|
||||
@ -498,7 +500,7 @@ class DebianSourcePackage(SourcePackage):
|
||||
"python-simplejson")
|
||||
|
||||
try:
|
||||
srcfiles = json.load(urllib2.urlopen(
|
||||
srcfiles = json.load(self.url_opener.open(
|
||||
'http://snapshot.debian.org'
|
||||
'/mr/package/%s/%s/srcfiles?fileinfo=1'
|
||||
% (self.source, self.version.full_version)))
|
||||
|
@ -1,6 +1,6 @@
|
||||
# test_archive.py - Test suite for ubuntutools.archive
|
||||
#
|
||||
# Copyright (C) 2010, Stefano Rivera <stefanor@ubuntu.com>
|
||||
# Copyright (C) 2010-2012, Stefano Rivera <stefanor@ubuntu.com>
|
||||
#
|
||||
# Permission to use, copy, modify, and/or distribute this software for any
|
||||
# purpose with or without fee is hereby granted, provided that the above
|
||||
@ -36,6 +36,7 @@ from ubuntutools.test import unittest
|
||||
|
||||
from ubuntutools.test.example_package import ExamplePackage
|
||||
|
||||
|
||||
def setUpModule():
|
||||
if not os.path.exists('test-data/example-0.1-1.dsc'):
|
||||
ex_pkg = ExamplePackage()
|
||||
@ -67,7 +68,7 @@ class DscVerificationTestCase(mox.MoxTestBase, unittest.TestCase):
|
||||
fn = 'test-data/example_1.0.orig.tar.gz'
|
||||
with open(fn, 'rb') as f:
|
||||
data = f.read()
|
||||
data = data[:-1] + chr(ord(data[-1]) ^ 8)
|
||||
data = data[:-1] + chr(ord(data[-1]) ^ 8)
|
||||
self.mox.StubOutWithMock(__builtin__, 'open')
|
||||
open(fn, 'rb').AndReturn(StringIO.StringIO(data))
|
||||
self.mox.ReplayAll()
|
||||
@ -95,9 +96,6 @@ class LocalSourcePackageTestCase(mox.MoxTestBase, unittest.TestCase):
|
||||
self.mox.StubOutWithMock(ubuntutools.archive, 'Distribution')
|
||||
self.mox.StubOutWithMock(ubuntutools.archive, 'rmadison')
|
||||
|
||||
self.real_urlopen = urllib2.urlopen
|
||||
self.mox.StubOutWithMock(urllib2, 'urlopen')
|
||||
|
||||
self.real_http = httplib2.Http()
|
||||
self.mox.StubOutWithMock(httplib2, 'Http')
|
||||
self.mock_http = self.mox.CreateMock(httplib2.Http)
|
||||
@ -115,7 +113,7 @@ class LocalSourcePackageTestCase(mox.MoxTestBase, unittest.TestCase):
|
||||
if destname is None:
|
||||
destname = os.path.basename(url)
|
||||
destpath = os.path.join(os.path.abspath('test-data'), destname)
|
||||
return self.real_urlopen('file://' + destpath)
|
||||
return urllib2.urlopen('file://' + destpath)
|
||||
|
||||
def urlopen_file(self, filename):
|
||||
"Wrapper for urlopen_proxy for named files"
|
||||
@ -195,14 +193,16 @@ class LocalSourcePackageTestCase(mox.MoxTestBase, unittest.TestCase):
|
||||
self.mock_http.request('https://launchpad.net/%s/+archive/primary/'
|
||||
'+files/example_1.0-1.dsc' % dist
|
||||
).WithSideEffects(self.request_proxy)
|
||||
urllib2.urlopen(mirror + urlbase + 'example_1.0.orig.tar.gz'
|
||||
url_opener = self.mox.CreateMock(urllib2.OpenerDirector)
|
||||
url_opener.open(mirror + urlbase + 'example_1.0.orig.tar.gz'
|
||||
).WithSideEffects(self.urlopen_proxy)
|
||||
urllib2.urlopen(mirror + urlbase + 'example_1.0-1.debian.tar.gz'
|
||||
url_opener.open(mirror + urlbase + 'example_1.0-1.debian.tar.gz'
|
||||
).WithSideEffects(self.urlopen_proxy)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
pkg = self.SourcePackage('example', '1.0-1', 'main',
|
||||
workdir=self.workdir)
|
||||
pkg.url_opener = url_opener
|
||||
pkg.pull()
|
||||
|
||||
def test_mirrors(self):
|
||||
@ -213,18 +213,20 @@ class LocalSourcePackageTestCase(mox.MoxTestBase, unittest.TestCase):
|
||||
httplib2.Http().AndReturn(self.mock_http)
|
||||
self.mock_http.request(lpbase + 'example_1.0-1.dsc'
|
||||
).WithSideEffects(self.request_proxy)
|
||||
urllib2.urlopen(mirror + urlbase + 'example_1.0.orig.tar.gz'
|
||||
url_opener = self.mox.CreateMock(urllib2.OpenerDirector)
|
||||
url_opener.open(mirror + urlbase + 'example_1.0.orig.tar.gz'
|
||||
).WithSideEffects(self.urlopen_null)
|
||||
urllib2.urlopen(master + urlbase + 'example_1.0.orig.tar.gz'
|
||||
url_opener.open(master + urlbase + 'example_1.0.orig.tar.gz'
|
||||
).WithSideEffects(self.urlopen_404)
|
||||
urllib2.urlopen(lpbase + 'example_1.0.orig.tar.gz'
|
||||
url_opener.open(lpbase + 'example_1.0.orig.tar.gz'
|
||||
).WithSideEffects(self.urlopen_proxy)
|
||||
urllib2.urlopen(mirror + urlbase + 'example_1.0-1.debian.tar.gz'
|
||||
url_opener.open(mirror + urlbase + 'example_1.0-1.debian.tar.gz'
|
||||
).WithSideEffects(self.urlopen_proxy)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
pkg = self.SourcePackage('example', '1.0-1', 'main',
|
||||
workdir=self.workdir, mirrors=[mirror])
|
||||
pkg.url_opener = url_opener
|
||||
pkg.pull()
|
||||
|
||||
def test_dsc_missing(self):
|
||||
@ -253,31 +255,33 @@ class DebianLocalSourcePackageTestCase(LocalSourcePackageTestCase):
|
||||
httplib2.Http().AndReturn(self.mock_http)
|
||||
self.mock_http.request(lpbase + 'example_1.0-1.dsc'
|
||||
).WithSideEffects(self.request_proxy)
|
||||
urllib2.urlopen(debian_mirror + base + 'example_1.0.orig.tar.gz'
|
||||
url_opener = self.mox.CreateMock(urllib2.OpenerDirector)
|
||||
url_opener.open(debian_mirror + base + 'example_1.0.orig.tar.gz'
|
||||
).WithSideEffects(self.urlopen_null)
|
||||
urllib2.urlopen(debsec_mirror + base + 'example_1.0.orig.tar.gz'
|
||||
url_opener.open(debsec_mirror + base + 'example_1.0.orig.tar.gz'
|
||||
).WithSideEffects(self.urlopen_404)
|
||||
urllib2.urlopen(debian_master + base + 'example_1.0.orig.tar.gz'
|
||||
url_opener.open(debian_master + base + 'example_1.0.orig.tar.gz'
|
||||
).WithSideEffects(self.urlopen_404)
|
||||
urllib2.urlopen(debsec_master + base + 'example_1.0.orig.tar.gz'
|
||||
url_opener.open(debsec_master + base + 'example_1.0.orig.tar.gz'
|
||||
).WithSideEffects(self.urlopen_404)
|
||||
urllib2.urlopen(lpbase + 'example_1.0.orig.tar.gz'
|
||||
url_opener.open(lpbase + 'example_1.0.orig.tar.gz'
|
||||
).WithSideEffects(self.urlopen_404)
|
||||
urllib2.urlopen('http://snapshot.debian.org/mr/package/example/1.0-1/'
|
||||
url_opener.open('http://snapshot.debian.org/mr/package/example/1.0-1/'
|
||||
'srcfiles?fileinfo=1'
|
||||
).WithSideEffects(lambda x: StringIO.StringIO(
|
||||
'{"fileinfo": {"hashabc": [{"name": "example_1.0.orig.tar.gz"}]}}'
|
||||
))
|
||||
urllib2.urlopen('http://snapshot.debian.org/file/hashabc'
|
||||
url_opener.open('http://snapshot.debian.org/file/hashabc'
|
||||
).WithSideEffects(self.urlopen_file(
|
||||
'example_1.0.orig.tar.gz'))
|
||||
urllib2.urlopen(debian_mirror + base + 'example_1.0-1.debian.tar.gz'
|
||||
url_opener.open(debian_mirror + base + 'example_1.0-1.debian.tar.gz'
|
||||
).WithSideEffects(self.urlopen_proxy)
|
||||
self.mox.ReplayAll()
|
||||
|
||||
pkg = self.SourcePackage('example', '1.0-1', 'main',
|
||||
workdir=self.workdir, mirrors=[debian_mirror,
|
||||
debsec_mirror])
|
||||
pkg.url_opener = url_opener
|
||||
pkg.pull()
|
||||
pkg.unpack()
|
||||
|
||||
@ -291,9 +295,10 @@ class DebianLocalSourcePackageTestCase(LocalSourcePackageTestCase):
|
||||
httplib2.Http().AndReturn(self.mock_http)
|
||||
self.mock_http.request(mirror + base + 'example_1.0-1.dsc'
|
||||
).WithSideEffects(self.request_proxy)
|
||||
urllib2.urlopen(mirror + base + 'example_1.0.orig.tar.gz'
|
||||
url_opener = self.mox.CreateMock(urllib2.OpenerDirector)
|
||||
url_opener.open(mirror + base + 'example_1.0.orig.tar.gz'
|
||||
).WithSideEffects(self.urlopen_proxy)
|
||||
urllib2.urlopen(mirror + base + 'example_1.0-1.debian.tar.gz'
|
||||
url_opener.open(mirror + base + 'example_1.0-1.debian.tar.gz'
|
||||
).WithSideEffects(self.urlopen_proxy)
|
||||
|
||||
def fake_gpg_info(self, message, keyrings=None):
|
||||
@ -312,6 +317,7 @@ class DebianLocalSourcePackageTestCase(LocalSourcePackageTestCase):
|
||||
|
||||
pkg = self.SourcePackage('example', '1.0-1', 'main',
|
||||
workdir=self.workdir, mirrors=[mirror])
|
||||
pkg.url_opener = url_opener
|
||||
pkg.pull()
|
||||
|
||||
def test_dsc_badsig(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user