test: remove test_dsc_missing test

This test class performs 'local source package' tests, but a missing
local dsc file won't perform any local test, it will query the LP server.
The test attempted to narrowly mock out specific network access to
emulate a 'missing' package by trying to return 404 when the url from
SourcePackage._lp_url() is opened, but now that _lp_url() is removed,
a missing local dsc file will result in full querying of the LP api,
which is not as easily mocked.
This commit is contained in:
Dan Streetman 2020-01-25 06:56:41 -05:00
parent 11429b213c
commit fe4d2f08a5

View File

@ -20,10 +20,6 @@ import os.path
import shutil
import tempfile
from io import BytesIO
from urllib.error import HTTPError
from urllib.request import OpenerDirector, urlopen
import httplib2
import ubuntutools.archive
from ubuntutools.test import unittest
@ -83,62 +79,9 @@ class LocalSourcePackageTestCase(unittest.TestCase):
def setUp(self):
self.workdir = tempfile.mkdtemp(prefix='udt-test')
self._stubout('ubuntutools.archive.Distribution')
self.mock_http = self._stubout('httplib2.Http.request')
self.mock_http.side_effect = self.request_proxy
self.url_opener = mock.MagicMock(spec=OpenerDirector)
self.url_opener.open.side_effect = self.urlopen_proxy
def _stubout(self, stub):
patcher = mock.patch(stub)
self.addCleanup(patcher.stop)
return patcher.start()
def tearDown(self):
shutil.rmtree(self.workdir)
def urlopen_proxy(self, url, destname=None):
"urllib2 proxy for grabbing the file from test-data"
if destname is None:
destname = os.path.basename(url)
destpath = os.path.join(os.path.abspath('test-data'), destname)
return urlopen('file://' + destpath)
def urlopen_file(self, filename):
"Wrapper for urlopen_proxy for named files"
return lambda url: self.urlopen_proxy(url, filename)
def urlopen_null(self, url):
"urlopen for zero length files"
return BytesIO(b'')
def urlopen_404(self, url):
"urlopen for errors"
raise HTTPError(url, 404, "Not Found", {}, None)
def request_proxy(self, url, destname=None):
"httplib2 proxy for grabbing the file from test-data"
if destname is None:
destname = os.path.basename(url)
destpath = os.path.join(os.path.abspath('test-data'), destname)
response = httplib2.Response({})
with open(destpath, 'rb') as f:
body = f.read()
return response, body
def request_404(self, url):
"httplib2 for errors"
response = httplib2.Response({'status': 404})
return response, "I'm a 404 Error"
def request_404_then_proxy(self, url, destname=None):
"mock side_effect callable to chain request 404 & proxy"
if self.mock_http.called:
return self.request_proxy(url, destname)
return self.request_404(url)
def test_local_copy(self):
pkg = self.SourcePackage(package='example',
version='1.0-1',
@ -190,11 +133,3 @@ class LocalSourcePackageTestCase(unittest.TestCase):
workdir=self.workdir,
verify_signature=False)
pkg.pull()
def test_dsc_missing(self):
self.mock_http.side_effect = self.request_404
pkg = self.SourcePackage(package='example',
version='1.0-1',
component='main',
workdir=self.workdir)
self.assertRaises(ubuntutools.archive.DownloadError, pkg.pull)