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