mirror of
https://git.launchpad.net/ubuntu-dev-tools
synced 2025-03-13 16:11:15 +00:00
remains of mox
This commit is contained in:
parent
88e3d1d6ba
commit
d4f6ef320e
1
debian/control
vendored
1
debian/control
vendored
@ -19,7 +19,6 @@ Build-Depends: dctrl-tools,
|
|||||||
python-distro-info (>= 0.4~),
|
python-distro-info (>= 0.4~),
|
||||||
python-httplib2,
|
python-httplib2,
|
||||||
python-launchpadlib (>= 1.5.7),
|
python-launchpadlib (>= 1.5.7),
|
||||||
python-mox,
|
|
||||||
python-setuptools,
|
python-setuptools,
|
||||||
python-soappy,
|
python-soappy,
|
||||||
python-unittest2
|
python-unittest2
|
||||||
|
@ -28,7 +28,6 @@ import urllib2
|
|||||||
import debian.deb822
|
import debian.deb822
|
||||||
import httplib2
|
import httplib2
|
||||||
import mock
|
import mock
|
||||||
import mox
|
|
||||||
|
|
||||||
import ubuntutools.archive
|
import ubuntutools.archive
|
||||||
from ubuntutools.config import UDTConfig
|
from ubuntutools.config import UDTConfig
|
||||||
@ -83,11 +82,10 @@ class DscVerificationTestCase(unittest.TestCase):
|
|||||||
self.test_bad()
|
self.test_bad()
|
||||||
|
|
||||||
|
|
||||||
class LocalSourcePackageTestCase(mox.MoxTestBase, unittest.TestCase):
|
class LocalSourcePackageTestCase(unittest.TestCase):
|
||||||
SourcePackage = ubuntutools.archive.UbuntuSourcePackage
|
SourcePackage = ubuntutools.archive.UbuntuSourcePackage
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(LocalSourcePackageTestCase, self).setUp()
|
|
||||||
self.workdir = tempfile.mkdtemp(prefix='udt-test')
|
self.workdir = tempfile.mkdtemp(prefix='udt-test')
|
||||||
|
|
||||||
self._stubout('ubuntutools.archive.Distribution')
|
self._stubout('ubuntutools.archive.Distribution')
|
||||||
@ -96,6 +94,9 @@ class LocalSourcePackageTestCase(mox.MoxTestBase, unittest.TestCase):
|
|||||||
self.mock_http = self._stubout('httplib2.Http.request')
|
self.mock_http = self._stubout('httplib2.Http.request')
|
||||||
self.mock_http.side_effect = self.request_proxy
|
self.mock_http.side_effect = self.request_proxy
|
||||||
|
|
||||||
|
self.url_opener = mock.MagicMock(spec=urllib2.OpenerDirector)
|
||||||
|
self.url_opener.open.side_effect = self.urlopen_proxy
|
||||||
|
|
||||||
# Silence the tests a little:
|
# Silence the tests a little:
|
||||||
self._stubout('ubuntutools.logger.Logger.stdout')
|
self._stubout('ubuntutools.logger.Logger.stdout')
|
||||||
self._stubout('ubuntutools.logger.Logger.stderr')
|
self._stubout('ubuntutools.logger.Logger.stderr')
|
||||||
@ -106,7 +107,6 @@ class LocalSourcePackageTestCase(mox.MoxTestBase, unittest.TestCase):
|
|||||||
return patcher.start()
|
return patcher.start()
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
super(LocalSourcePackageTestCase, self).tearDown()
|
|
||||||
shutil.rmtree(self.workdir)
|
shutil.rmtree(self.workdir)
|
||||||
|
|
||||||
def urlopen_proxy(self, url, destname=None):
|
def urlopen_proxy(self, url, destname=None):
|
||||||
@ -196,16 +196,11 @@ class LocalSourcePackageTestCase(mox.MoxTestBase, unittest.TestCase):
|
|||||||
dist = self.SourcePackage.distribution
|
dist = self.SourcePackage.distribution
|
||||||
mirror = UDTConfig.defaults['%s_MIRROR' % dist.upper()]
|
mirror = UDTConfig.defaults['%s_MIRROR' % dist.upper()]
|
||||||
urlbase = '/pool/main/e/example/'
|
urlbase = '/pool/main/e/example/'
|
||||||
url_opener = self.mox.CreateMock(urllib2.OpenerDirector)
|
|
||||||
url_opener.open(mirror + urlbase + 'example_1.0.orig.tar.gz'
|
|
||||||
).WithSideEffects(self.urlopen_proxy)
|
|
||||||
url_opener.open(mirror + urlbase + 'example_1.0-1.debian.tar.xz'
|
|
||||||
).WithSideEffects(self.urlopen_proxy)
|
|
||||||
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.url_opener = self.url_opener
|
||||||
pkg.pull()
|
pkg.pull()
|
||||||
|
|
||||||
def test_mirrors(self):
|
def test_mirrors(self):
|
||||||
@ -213,16 +208,12 @@ class LocalSourcePackageTestCase(mox.MoxTestBase, unittest.TestCase):
|
|||||||
mirror = 'http://mirror'
|
mirror = 'http://mirror'
|
||||||
lpbase = 'https://launchpad.net/ubuntu/+archive/primary/+files/'
|
lpbase = 'https://launchpad.net/ubuntu/+archive/primary/+files/'
|
||||||
urlbase = '/pool/main/e/example/'
|
urlbase = '/pool/main/e/example/'
|
||||||
url_opener = self.mox.CreateMock(urllib2.OpenerDirector)
|
sequence = [self.urlopen_null, self.urlopen_404, self.urlopen_proxy,
|
||||||
url_opener.open(mirror + urlbase + 'example_1.0.orig.tar.gz'
|
self.urlopen_proxy]
|
||||||
).WithSideEffects(self.urlopen_null)
|
def _callable_iter(*args, **kwargs):
|
||||||
url_opener.open(master + urlbase + 'example_1.0.orig.tar.gz'
|
return sequence.pop(0)(*args, **kwargs)
|
||||||
).WithSideEffects(self.urlopen_404)
|
url_opener = mock.MagicMock(spec=urllib2.OpenerDirector)
|
||||||
url_opener.open(lpbase + 'example_1.0.orig.tar.gz'
|
url_opener.open.side_effect = _callable_iter
|
||||||
).WithSideEffects(self.urlopen_proxy)
|
|
||||||
url_opener.open(mirror + urlbase + 'example_1.0-1.debian.tar.xz'
|
|
||||||
).WithSideEffects(self.urlopen_proxy)
|
|
||||||
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])
|
||||||
@ -247,28 +238,19 @@ class DebianLocalSourcePackageTestCase(LocalSourcePackageTestCase):
|
|||||||
lpbase = 'https://launchpad.net/debian/+archive/primary/+files/'
|
lpbase = 'https://launchpad.net/debian/+archive/primary/+files/'
|
||||||
base = '/pool/main/e/example/'
|
base = '/pool/main/e/example/'
|
||||||
|
|
||||||
url_opener = self.mox.CreateMock(urllib2.OpenerDirector)
|
sequence = [self.urlopen_null,
|
||||||
url_opener.open(debian_mirror + base + 'example_1.0.orig.tar.gz'
|
self.urlopen_404,
|
||||||
).WithSideEffects(self.urlopen_null)
|
self.urlopen_404,
|
||||||
url_opener.open(debsec_mirror + base + 'example_1.0.orig.tar.gz'
|
self.urlopen_404,
|
||||||
).WithSideEffects(self.urlopen_404)
|
self.urlopen_404,
|
||||||
url_opener.open(debian_master + base + 'example_1.0.orig.tar.gz'
|
lambda x: BytesIO(
|
||||||
).WithSideEffects(self.urlopen_404)
|
'{"fileinfo": {"hashabc": [{"name": "example_1.0.orig.tar.gz"}]}}'),
|
||||||
url_opener.open(debsec_master + base + 'example_1.0.orig.tar.gz'
|
self.urlopen_file('example_1.0.orig.tar.gz'),
|
||||||
).WithSideEffects(self.urlopen_404)
|
self.urlopen_proxy]
|
||||||
url_opener.open(lpbase + 'example_1.0.orig.tar.gz'
|
def _callable_iter(*args, **kwargs):
|
||||||
).WithSideEffects(self.urlopen_404)
|
return sequence.pop(0)(*args, **kwargs)
|
||||||
url_opener.open('http://snapshot.debian.org/mr/package/example/1.0-1/'
|
url_opener = mock.MagicMock(spec=urllib2.OpenerDirector)
|
||||||
'srcfiles?fileinfo=1'
|
url_opener.open.side_effect = _callable_iter
|
||||||
).WithSideEffects(lambda x: StringIO.StringIO(
|
|
||||||
'{"fileinfo": {"hashabc": [{"name": "example_1.0.orig.tar.gz"}]}}'
|
|
||||||
))
|
|
||||||
url_opener.open('http://snapshot.debian.org/file/hashabc'
|
|
||||||
).WithSideEffects(self.urlopen_file(
|
|
||||||
'example_1.0.orig.tar.gz'))
|
|
||||||
url_opener.open(debian_mirror + base + 'example_1.0-1.debian.tar.xz'
|
|
||||||
).WithSideEffects(self.urlopen_proxy)
|
|
||||||
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,
|
||||||
@ -282,29 +264,17 @@ class DebianLocalSourcePackageTestCase(LocalSourcePackageTestCase):
|
|||||||
lpbase = 'https://launchpad.net/debian/+archive/primary/+files/'
|
lpbase = 'https://launchpad.net/debian/+archive/primary/+files/'
|
||||||
base = '/pool/main/e/example/'
|
base = '/pool/main/e/example/'
|
||||||
self.mock_http.side_effect = self.request_404_then_proxy
|
self.mock_http.side_effect = self.request_404_then_proxy
|
||||||
url_opener = self.mox.CreateMock(urllib2.OpenerDirector)
|
|
||||||
url_opener.open(mirror + base + 'example_1.0.orig.tar.gz'
|
|
||||||
).WithSideEffects(self.urlopen_proxy)
|
|
||||||
url_opener.open(mirror + base + 'example_1.0-1.debian.tar.xz'
|
|
||||||
).WithSideEffects(self.urlopen_proxy)
|
|
||||||
|
|
||||||
def fake_gpg_info(self, message, keyrings=None):
|
patcher = mock.patch.object(debian.deb822.GpgInfo, 'from_sequence')
|
||||||
return debian.deb822.GpgInfo.from_output(
|
self.addCleanup(patcher.stop)
|
||||||
'[GNUPG:] GOODSIG DEADBEEF Joe Developer '
|
mock_gpg_info = patcher.start()
|
||||||
'<joe@example.net>')
|
mock_gpg_info.return_value = debian.deb822.GpgInfo.from_output(
|
||||||
# We have to stub this out without mox because there some versions of
|
'[GNUPG:] GOODSIG DEADBEEF Joe Developer '
|
||||||
# python-debian will pass keyrings=None, others won't.
|
'<joe@example.net>')
|
||||||
# http://code.google.com/p/pymox/issues/detail?id=37
|
|
||||||
self.mox.stubs.Set(debian.deb822.GpgInfo, 'from_sequence',
|
|
||||||
types.MethodType(fake_gpg_info,
|
|
||||||
debian.deb822.GpgInfo,
|
|
||||||
debian.deb822.GpgInfo))
|
|
||||||
|
|
||||||
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.url_opener = self.url_opener
|
||||||
pkg.pull()
|
pkg.pull()
|
||||||
|
|
||||||
def test_dsc_badsig(self):
|
def test_dsc_badsig(self):
|
||||||
@ -313,18 +283,11 @@ class DebianLocalSourcePackageTestCase(LocalSourcePackageTestCase):
|
|||||||
base = '/pool/main/e/example/'
|
base = '/pool/main/e/example/'
|
||||||
self.mock_http.side_effect = self.request_404_then_proxy
|
self.mock_http.side_effect = self.request_404_then_proxy
|
||||||
|
|
||||||
def fake_gpg_info(self, message, keyrings=None):
|
patcher = mock.patch.object(debian.deb822.GpgInfo, 'from_sequence')
|
||||||
return debian.deb822.GpgInfo.from_output(
|
self.addCleanup(patcher.stop)
|
||||||
'[GNUPG:] ERRSIG DEADBEEF')
|
mock_gpg_info = patcher.start()
|
||||||
# We have to stub this out without mox because there some versions of
|
mock_gpg_info.return_value = debian.deb822.GpgInfo.from_output(
|
||||||
# python-debian will pass keyrings=None, others won't.
|
'[GNUPG:] ERRSIG DEADBEEF')
|
||||||
# http://code.google.com/p/pymox/issues/detail?id=37
|
|
||||||
self.mox.stubs.Set(debian.deb822.GpgInfo, 'from_sequence',
|
|
||||||
types.MethodType(fake_gpg_info,
|
|
||||||
debian.deb822.GpgInfo,
|
|
||||||
debian.deb822.GpgInfo))
|
|
||||||
|
|
||||||
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])
|
||||||
|
@ -25,9 +25,6 @@ WHITELIST = [re.compile(': %s$' % x) for x in (
|
|||||||
r"No name '\w+Error' in module 'launchpadlib\.errors'",
|
r"No name '\w+Error' in module 'launchpadlib\.errors'",
|
||||||
# http://www.logilab.org/ticket/51250:
|
# http://www.logilab.org/ticket/51250:
|
||||||
r"Module 'hashlib' has no '(md5|sha(1|224|256|384|512))' member",
|
r"Module 'hashlib' has no '(md5|sha(1|224|256|384|512))' member",
|
||||||
# mox:
|
|
||||||
r"Instance of '.+' has no '(WithSideEffects|MultipleTimes|AndReturn)' "
|
|
||||||
r"member",
|
|
||||||
# pylint doesn't like *args/**kwargs
|
# pylint doesn't like *args/**kwargs
|
||||||
r"Instance of 'Popen' has no '.*' member",
|
r"Instance of 'Popen' has no '.*' member",
|
||||||
)]
|
)]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user