summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentina Mukhamedzhanova <vmukhame@redhat.com>2014-10-03 09:41:00 +0200
committerValentina Mukhamedzhanova <vmukhame@redhat.com>2014-10-03 09:41:00 +0200
commit50d6cdf870ecc9f32e7ef62e3331d44be393e775 (patch)
tree2e88b98ec343183b9d6ae6dac5da42fe453bba12
parente948f189a9ac37b6a3d690972084ca0bc515f11f (diff)
downloadurlgrabber-50d6cdf870ecc9f32e7ef62e3331d44be393e775.tar.gz
Revert "Ported test suite"
This reverts commit 8560a386c3ea1e868a8e294c1e318a6ee5319580.
-rw-r--r--test/grabberperf.py28
-rw-r--r--test/munittest.py94
-rw-r--r--test/runtests.py2
-rw-r--r--test/test_byterange.py10
-rw-r--r--test/test_grabber.py58
-rw-r--r--test/test_mirror.py17
6 files changed, 101 insertions, 108 deletions
diff --git a/test/grabberperf.py b/test/grabberperf.py
index d9142fa..820da2c 100644
--- a/test/grabberperf.py
+++ b/test/grabberperf.py
@@ -21,15 +21,11 @@
import sys
import os
+from os.path import dirname, join as joinpath
import tempfile
import time
-import six
-
-# Hack for Python 3
-sys.path.insert(0, os.path.expandvars(os.path.abspath('..')))
-from os.path import dirname, join as joinpath
-from urlgrabber import grabber
+import urlgrabber.grabber as grabber
from urlgrabber.grabber import URLGrabber, urlgrab, urlopen, urlread
from urlgrabber.progress import text_progress_meter
@@ -52,7 +48,7 @@ def main():
os.unlink(tempdst)
def setuptemp(size):
- if DEBUG: print('writing %d KB to temporary file (%s).' % (size / 1024, tempsrc))
+ if DEBUG: print 'writing %d KB to temporary file (%s).' % (size / 1024, tempsrc)
file = open(tempsrc, 'w', 1024)
chars = '0123456789'
for i in range(size):
@@ -69,9 +65,9 @@ def speedtest(size):
try:
from urlgrabber.progress import text_progress_meter
- except ImportError as e:
+ except ImportError, e:
tpm = None
- print('not using progress meter')
+ print 'not using progress meter'
else:
tpm = text_progress_meter(fo=open('/dev/null', 'w'))
@@ -87,15 +83,15 @@ def speedtest(size):
# module.
# get it nicely cached before we start comparing
- if DEBUG: print('pre-caching')
+ if DEBUG: print 'pre-caching'
for i in range(100):
urlgrab(tempsrc, tempdst, copy_local=1, throttle=None, proxies=proxies)
- if DEBUG: print('running speed test.')
+ if DEBUG: print 'running speed test.'
reps = 500
for i in range(reps):
if DEBUG:
- six.print_('\r%4i/%-4i' % (i+1, reps), end=' ')
+ print '\r%4i/%-4i' % (i+1, reps),
sys.stdout.flush()
t = time.time()
urlgrab(tempsrc, tempdst,
@@ -115,14 +111,14 @@ def speedtest(size):
while 1:
s = in_fo.read(1024 * 8)
if not s: break
- out_fo.write(s if not six.PY3 else s.encode('utf-8'))
+ out_fo.write(s)
in_fo.close()
out_fo.close()
none_times.append(1000 * (time.time() - t))
- if DEBUG: print('\r')
+ if DEBUG: print '\r'
- print("%d KB Results:" % (size / 1024))
+ print "%d KB Results:" % (size / 1024)
print_result('full', full_times)
print_result('raw', raw_times)
print_result('none', none_times)
@@ -135,7 +131,7 @@ def print_result(label, result_list):
for i in result_list: mean += i
mean = mean/len(result_list)
median = result_list[int(len(result_list)/2)]
- print(format % (label, mean, median, result_list[0], result_list[-1]))
+ print format % (label, mean, median, result_list[0], result_list[-1])
if __name__ == '__main__':
main()
diff --git a/test/munittest.py b/test/munittest.py
index 7e7969e..16a61ae 100644
--- a/test/munittest.py
+++ b/test/munittest.py
@@ -103,9 +103,9 @@ SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
import time
import sys
import traceback
+import string
import os
import types
-import collections
##############################################################################
# Exported classes and functions
@@ -190,7 +190,7 @@ class TestResult:
def _exc_info_to_string(self, err):
"""Converts a sys.exc_info()-style tuple of values into a string."""
- return ''.join(traceback.format_exception(*err))
+ return string.join(traceback.format_exception(*err), '')
def __repr__(self):
return "<%s run=%i errors=%i failures=%i>" % \
@@ -251,8 +251,8 @@ class TestCase:
testMethod = getattr(self, methodName)
self._testMethodDoc = testMethod.__doc__
except AttributeError:
- raise ValueError("no such test method in %s: %s" % \
- (self.__class__, methodName))
+ raise ValueError, "no such test method in %s: %s" % \
+ (self.__class__, methodName)
def setUp(self):
"Hook method for setting up the test fixture before exercising it."
@@ -276,7 +276,7 @@ class TestCase:
the specified test method's docstring.
"""
doc = self._testMethodDoc
- return doc and doc.split("\n")[0].strip() or None
+ return doc and string.strip(string.split(doc, "\n")[0]) or None
def id(self):
return "%s.%s" % (_strclass(self.__class__), self._testMethodName)
@@ -361,15 +361,15 @@ class TestCase:
def fail(self, msg=None):
"""Fail immediately, with the given message."""
- raise self.failureException(msg)
+ raise self.failureException, msg
def failIf(self, expr, msg=None):
"Fail the test if the expression is true."
- if expr: raise self.failureException(msg)
+ if expr: raise self.failureException, msg
def failUnless(self, expr, msg=None):
"""Fail the test unless the expression is true."""
- if not expr: raise self.failureException(msg)
+ if not expr: raise self.failureException, msg
def failUnlessRaises(self, excClass, callableObj, *args, **kwargs):
"""Fail unless an exception of class excClass is thrown
@@ -386,21 +386,23 @@ class TestCase:
else:
if hasattr(excClass,'__name__'): excName = excClass.__name__
else: excName = str(excClass)
- raise self.failureException(excName)
+ raise self.failureException, excName
def failUnlessEqual(self, first, second, msg=None):
"""Fail if the two objects are unequal as determined by the '=='
operator.
"""
if not first == second:
- raise self.failureException(msg or '%s != %s' % (repr(first), repr(second)))
+ raise self.failureException, \
+ (msg or '%s != %s' % (`first`, `second`))
def failIfEqual(self, first, second, msg=None):
"""Fail if the two objects are equal as determined by the '=='
operator.
"""
if first == second:
- raise self.failureException(msg or '%s == %s' % (repr(first), repr(second)))
+ raise self.failureException, \
+ (msg or '%s == %s' % (`first`, `second`))
def failUnlessAlmostEqual(self, first, second, places=7, msg=None):
"""Fail if the two objects are unequal as determined by their
@@ -411,7 +413,8 @@ class TestCase:
as significant digits (measured from the most significant digit).
"""
if round(second-first, places) != 0:
- raise self.failureException(msg or '%s != %s within %s places' % (repr(first), repr(second), repr(places) ))
+ raise self.failureException, \
+ (msg or '%s != %s within %s places' % (`first`, `second`, `places` ))
def failIfAlmostEqual(self, first, second, places=7, msg=None):
"""Fail if the two objects are equal as determined by their
@@ -422,7 +425,8 @@ class TestCase:
as significant digits (measured from the most significant digit).
"""
if round(second-first, places) == 0:
- raise self.failureException(msg or '%s == %s within %s places' % (repr(first), repr(second), repr(places)))
+ raise self.failureException, \
+ (msg or '%s == %s within %s places' % (`first`, `second`, `places`))
assertEqual = assertEquals = failUnlessEqual
@@ -438,15 +442,15 @@ class TestCase:
def skip(self, msg=None):
"""Skip the test"""
- raise self.skipException(msg)
+ raise self.skipException, msg
def skipIf(self, expr, msg=None):
"Skip the test if the expression is true."
- if expr: raise self.skipException(msg)
+ if expr: raise self.skipException, msg
def skipUnless(self, expr, msg=None):
"""Skip the test unless the expression is true."""
- if not expr: raise self.skipException(msg)
+ if not expr: raise self.skipException, msg
@@ -550,7 +554,7 @@ class FunctionTestCase(TestCase):
def shortDescription(self):
if self._description is not None: return self._description
doc = self._testFunc.__doc__
- return doc and doc.split("\n")[0].strip() or None
+ return doc and string.strip(string.split(doc, "\n")[0]) or None
@@ -563,12 +567,13 @@ class TestLoader:
criteria and returning them wrapped in a Test
"""
testMethodPrefix = 'test'
+ sortTestMethodsUsing = cmp
suiteClass = TestSuite
def loadTestsFromTestCase(self, testCaseClass):
"""Return a suite of all tests cases contained in testCaseClass"""
name_list = self.getTestCaseNames(testCaseClass)
- instance_list = list(map(testCaseClass, name_list))
+ instance_list = map(testCaseClass, name_list)
description = getattr(testCaseClass, '__doc__') \
or testCaseClass.__name__
description = (description.splitlines()[0]).strip()
@@ -580,7 +585,7 @@ class TestLoader:
tests = []
for name in dir(module):
obj = getattr(module, name)
- if (isinstance(obj, type) and
+ if (isinstance(obj, (type, types.ClassType)) and
issubclass(obj, TestCase) and
not obj in [TestCase, FunctionTestCase]):
tests.append(self.loadTestsFromTestCase(obj))
@@ -598,15 +603,15 @@ class TestLoader:
The method optionally resolves the names relative to a given module.
"""
- parts = name.split('.')
+ parts = string.split(name, '.')
if module is None:
if not parts:
- raise ValueError("incomplete test name: %s" % name)
+ raise ValueError, "incomplete test name: %s" % name
else:
parts_copy = parts[:]
while parts_copy:
try:
- module = __import__('.'.join(parts_copy,))
+ module = __import__(string.join(parts_copy,'.'))
break
except ImportError:
del parts_copy[-1]
@@ -619,19 +624,20 @@ class TestLoader:
import unittest
if type(obj) == types.ModuleType:
return self.loadTestsFromModule(obj)
- elif (isinstance(obj, type) and
+ elif (isinstance(obj, (type, types.ClassType)) and
issubclass(obj, unittest.TestCase)):
return self.loadTestsFromTestCase(obj)
elif type(obj) == types.UnboundMethodType:
- return obj.__self__.__class__(obj.__name__)
- elif isinstance(obj, collections.Callable):
+ return obj.im_class(obj.__name__)
+ elif callable(obj):
test = obj()
if not isinstance(test, unittest.TestCase) and \
not isinstance(test, unittest.TestSuite):
- raise ValueError("calling %s returned %s, not a test" % (obj,test))
+ raise ValueError, \
+ "calling %s returned %s, not a test" % (obj,test)
return test
else:
- raise ValueError("don't know how to make test from: %s" % obj)
+ raise ValueError, "don't know how to make test from: %s" % obj
def loadTestsFromNames(self, names, module=None):
"""Return a suite of all tests cases found using the given sequence
@@ -645,13 +651,14 @@ class TestLoader:
def getTestCaseNames(self, testCaseClass):
"""Return a sorted sequence of method names found within testCaseClass
"""
- testFnNames = list(filter(lambda n,p=self.testMethodPrefix: n[:len(p)] == p,
- dir(testCaseClass)))
+ testFnNames = filter(lambda n,p=self.testMethodPrefix: n[:len(p)] == p,
+ dir(testCaseClass))
for baseclass in testCaseClass.__bases__:
for testFnName in self.getTestCaseNames(baseclass):
if testFnName not in testFnNames: # handle overridden methods
testFnNames.append(testFnName)
- testFnNames.sort()
+ if self.sortTestMethodsUsing:
+ testFnNames.sort(self.sortTestMethodsUsing)
return testFnNames
@@ -663,20 +670,21 @@ defaultTestLoader = TestLoader()
# Patches for old functions: these functions should be considered obsolete
##############################################################################
-def _makeLoader(prefix, suiteClass=None):
+def _makeLoader(prefix, sortUsing, suiteClass=None):
loader = TestLoader()
+ loader.sortTestMethodsUsing = sortUsing
loader.testMethodPrefix = prefix
if suiteClass: loader.suiteClass = suiteClass
return loader
-def getTestCaseNames(testCaseClass, prefix):
- return _makeLoader(prefix).getTestCaseNames(testCaseClass)
+def getTestCaseNames(testCaseClass, prefix, sortUsing=cmp):
+ return _makeLoader(prefix, sortUsing).getTestCaseNames(testCaseClass)
-def makeSuite(testCaseClass, prefix='test',suiteClass=TestSuite):
- return _makeLoader(prefix, suiteClass).loadTestsFromTestCase(testCaseClass)
+def makeSuite(testCaseClass, prefix='test', sortUsing=cmp, suiteClass=TestSuite):
+ return _makeLoader(prefix, sortUsing, suiteClass).loadTestsFromTestCase(testCaseClass)
-def findTestCases(module, prefix='test',suiteClass=TestSuite):
- return _makeLoader(prefix, suiteClass).loadTestsFromModule(module)
+def findTestCases(module, prefix='test', sortUsing=cmp, suiteClass=TestSuite):
+ return _makeLoader(prefix, sortUsing, suiteClass).loadTestsFromModule(module)
##############################################################################
@@ -817,8 +825,8 @@ class TextTestRunner:
self.stream.writeln()
if not result.wasSuccessful():
self.stream.write("FAILED (")
- failed, errored, skipped = list(map(len, \
- (result.failures, result.errors, result.skipped)))
+ failed, errored, skipped = map(len, \
+ (result.failures, result.errors, result.skipped))
if failed:
self.stream.write("failures=%d" % failed)
if errored:
@@ -863,7 +871,7 @@ Examples:
argv=None, testRunner=None, testLoader=defaultTestLoader):
if type(module) == type(''):
self.module = __import__(module)
- for part in module.split('.')[1:]:
+ for part in string.split(module,'.')[1:]:
self.module = getattr(self.module, part)
else:
self.module = module
@@ -878,8 +886,8 @@ Examples:
self.runTests()
def usageExit(self, msg=None):
- if msg: print(msg)
- print(self.USAGE % self.__dict__)
+ if msg: print msg
+ print self.USAGE % self.__dict__
sys.exit(2)
def parseArgs(self, argv):
@@ -902,7 +910,7 @@ Examples:
else:
self.testNames = (self.defaultTest,)
self.createTests()
- except getopt.error as msg:
+ except getopt.error, msg:
self.usageExit(msg)
def createTests(self):
diff --git a/test/runtests.py b/test/runtests.py
index 78a5974..c48bd1d 100644
--- a/test/runtests.py
+++ b/test/runtests.py
@@ -54,7 +54,7 @@ def parse_args():
return (descriptions,verbosity)
def usage():
- print(__doc__)
+ print __doc__
if __name__ == '__main__':
main()
diff --git a/test/test_byterange.py b/test/test_byterange.py
index 0863be8..0f75807 100644
--- a/test/test_byterange.py
+++ b/test/test_byterange.py
@@ -24,11 +24,8 @@
# $Id: test_byterange.py,v 1.6 2004/03/31 17:02:00 mstenner Exp $
import sys
-import six
-from io import StringIO
-
-import urlgrabber
+from cStringIO import StringIO
from urlgrabber.byterange import RangeableFileObject
from base_test_code import *
@@ -40,7 +37,7 @@ class RangeableFileObjectTestCase(TestCase):
# 0 1 2 3 4 5 6 7 8 9
# 0123456789012345678901234567890123456789012345678901234567 890123456789012345678901234567890
self.test = 'Why cannot we write the entire 24 volumes of Encyclopaedia\nBrittanica on the head of a pin?\n'
- self.fo = StringIO(unicode(self.test) if not six.PY3 else self.test)
+ self.fo = StringIO(self.test)
self.rfo = RangeableFileObject(self.fo, (20,69))
def tearDown(self):
@@ -64,8 +61,7 @@ class RangeableFileObjectTestCase(TestCase):
def test_readall(self):
"""RangeableFileObject.read(): to end of file."""
- text_compat = unicode(self.test) if not six.PY3 else self.test
- rfo = RangeableFileObject(StringIO(text_compat),(11,))
+ rfo = RangeableFileObject(StringIO(self.test),(11,))
self.assertEquals(self.test[11:],rfo.read())
def test_readline(self):
diff --git a/test/test_grabber.py b/test/test_grabber.py
index bd36d66..8e45d25 100644
--- a/test/test_grabber.py
+++ b/test/test_grabber.py
@@ -24,13 +24,11 @@
# $Id: test_grabber.py,v 1.31 2006/12/08 00:14:16 mstenner Exp $
import sys
-import six
import os
-import tempfile, random, os
-from six.moves import urllib
+import string, tempfile, random, cStringIO, os
+import urllib2
import socket
-from io import StringIO
from base_test_code import *
import urlgrabber
@@ -43,12 +41,12 @@ class FileObjectTests(TestCase):
def setUp(self):
self.filename = tempfile.mktemp()
- fo = open(self.filename, 'wb')
- fo.write(reference_data.encode('utf-8'))
+ fo = file(self.filename, 'wb')
+ fo.write(reference_data)
fo.close()
- self.fo_input = StringIO(unicode(reference_data) if not six.PY3 else reference_data)
- self.fo_output = StringIO()
+ self.fo_input = cStringIO.StringIO(reference_data)
+ self.fo_output = cStringIO.StringIO()
(url, parts) = grabber.default_grabber.opts.urlparser.parse(
self.filename, grabber.default_grabber.opts)
self.wrapper = grabber.PyCurlFileObject(
@@ -75,7 +73,7 @@ class FileObjectTests(TestCase):
def test_readlines(self):
"PyCurlFileObject .readlines() method"
li = self.wrapper.readlines()
- self.fo_output.write(''.join(li))
+ self.fo_output.write(string.join(li, ''))
self.assert_(reference_data == self.fo_output.getvalue())
def test_smallread(self):
@@ -92,7 +90,7 @@ class HTTPTests(TestCase):
filename = tempfile.mktemp()
grabber.urlgrab(ref_http, filename)
- fo = open(filename, 'rb' if not six.PY3 else 'r')
+ fo = file(filename, 'rb')
contents = fo.read()
fo.close()
@@ -138,7 +136,7 @@ class URLGrabberTestCase(TestCase):
def setUp(self):
- self.meter = text_progress_meter( fo=StringIO() )
+ self.meter = text_progress_meter( fo=cStringIO.StringIO() )
pass
def tearDown(self):
@@ -151,7 +149,7 @@ class URLGrabberTestCase(TestCase):
values into the URLGrabber constructor and checks that
they've been set properly.
"""
- opener = urllib.request.OpenerDirector()
+ opener = urllib2.OpenerDirector()
g = URLGrabber( progress_obj=self.meter,
throttle=0.9,
bandwidth=20,
@@ -227,13 +225,13 @@ class URLParserTestCase(TestCase):
self.assertEquals(parts, urllist[2])
else:
if url == urllist[1] and parts == urllist[2]:
- print('OK: %s' % urllist[0])
+ print 'OK: %s' % urllist[0]
else:
- print('ERROR: %s' % urllist[0])
- print(' ' + urllist[1])
- print(' ' + url)
- print(' ' + urllist[2])
- print(' ' + parts)
+ print 'ERROR: %s' % urllist[0]
+ print ' ' + urllist[1]
+ print ' ' + url
+ print ' ' + urllist[2]
+ print ' ' + parts
url_tests_all = (
@@ -382,7 +380,7 @@ class CheckfuncTestCase(TestCase):
if hasattr(obj, 'filename'):
# we used urlgrab
- fo = open(obj.filename)
+ fo = file(obj.filename)
data = fo.read()
fo.close()
else:
@@ -449,12 +447,12 @@ class RegetTestBase:
except: pass
def _make_half_zero_file(self):
- fo = open(self.filename, 'wb' if not six.PY3 else 'w')
- fo.write('0'*int(self.hl))
+ fo = file(self.filename, 'wb')
+ fo.write('0'*self.hl)
fo.close()
def _read_file(self):
- fo = open(self.filename, 'rb' if not six.PY3 else 'r')
+ fo = file(self.filename, 'rb')
data = fo.read()
fo.close()
return data
@@ -472,7 +470,7 @@ class FTPRegetTests(RegetTestBase, TestCase):
# this tests to see if the server is available. If it's not,
# then these tests will be skipped
try:
- fo = urllib.request.urlopen(self.url).close()
+ fo = urllib2.urlopen(self.url).close()
except IOError:
self.skip()
@@ -482,8 +480,8 @@ class FTPRegetTests(RegetTestBase, TestCase):
self.grabber.urlgrab(self.url, self.filename, reget='simple')
data = self._read_file()
- self.assertEquals(data[:int(self.hl)], '0'*int(self.hl))
- self.assertEquals(data[int(self.hl):], self.ref[int(self.hl):])
+ self.assertEquals(data[:self.hl], '0'*self.hl)
+ self.assertEquals(data[self.hl:], self.ref[self.hl:])
class HTTPRegetTests(FTPRegetTests):
def setUp(self):
@@ -500,8 +498,8 @@ class HTTPRegetTests(FTPRegetTests):
self.grabber.urlgrab(self.url, self.filename, reget='check_timestamp')
data = self._read_file()
- self.assertEquals(data[:int(self.hl)], '0'*int(self.hl))
- self.assertEquals(data[int(self.hl):], self.ref[int(self.hl):])
+ self.assertEquals(data[:self.hl], '0'*self.hl)
+ self.assertEquals(data[self.hl:], self.ref[self.hl:])
except NotImplementedError:
self.skip()
@@ -523,7 +521,7 @@ class FileRegetTests(HTTPRegetTests):
def setUp(self):
self.ref = short_reference_data
tmp = tempfile.mktemp()
- tmpfo = open(tmp, 'wb' if not six.PY3 else 'w')
+ tmpfo = file(tmp, 'wb')
tmpfo.write(self.ref)
tmpfo.close()
self.tmp = tmp
@@ -547,7 +545,7 @@ class ProFTPDSucksTests(TestCase):
def setUp(self):
self.url = ref_proftp
try:
- fo = urllib.request.urlopen(self.url).close()
+ fo = urllib2.urlopen(self.url).close()
except IOError:
self.skip()
@@ -594,7 +592,7 @@ class ProxyFTPAuthTests(ProxyHTTPAuthTests):
if not self.have_proxy():
self.skip()
try:
- fo = urllib.request.urlopen(self.url).close()
+ fo = urllib2.urlopen(self.url).close()
except IOError:
self.skip()
self.g = URLGrabber()
diff --git a/test/test_mirror.py b/test/test_mirror.py
index c46cd33..7f493d0 100644
--- a/test/test_mirror.py
+++ b/test/test_mirror.py
@@ -24,9 +24,8 @@
# $Id: test_mirror.py,v 1.12 2005/10/22 21:57:27 mstenner Exp $
import sys
-import six
import os
-import string, tempfile, random, os
+import string, tempfile, random, cStringIO, os
import urlgrabber.grabber
from urlgrabber.grabber import URLGrabber, URLGrabError, URLGrabberOptions
@@ -269,8 +268,7 @@ class ActionTests(TestCase):
self.assertEquals(self.g.calls, expected_calls)
self.assertEquals(urlgrabber.mirror.DEBUG.logs, expected_logs)
-from six.moves import _thread as thread
-import socket
+import thread, socket
LOCALPORT = 'localhost', 2000
class HttpReplyCode(TestCase):
@@ -284,14 +282,11 @@ class HttpReplyCode(TestCase):
while 1:
c, a = s.accept()
if self.exit: c.close(); break
- ending_compat = '\r\n\r\n' if not six.PY3 else b'\r\n\r\n'
- while not c.recv(4096).endswith(ending_compat): pass
- http_compat = 'HTTP/1.1 %d %s\r\n' % self.reply
- c.sendall(http_compat if not six.PY3 else http_compat.encode('utf-8'))
+ while not c.recv(4096).endswith('\r\n\r\n'): pass
+ c.sendall('HTTP/1.1 %d %s\r\n' % self.reply)
if self.content is not None:
- cont_length_compat = 'Content-Length: %d\r\n\r\n' % len(self.content)
- c.sendall(cont_length_compat if not six.PY3 else cont_length_compat.encode('utf-8'))
- c.sendall(self.content if not six.PY3 else self.content.encode('utf-8'))
+ c.sendall('Content-Length: %d\r\n\r\n' % len(self.content))
+ c.sendall(self.content)
c.close()
s.close()
self.exit = False