/usr/share/doc/python3-pycurl/tests
NameSizeModeActions
certs/-0755rm
ext/-0755rm
fake-curl/-0755rm
fixtures/-0755rm
matrix/-0755rm
tmp/-0755rm
__pycache__/-0755rm
app.py40880644editdlrm
appmanager.py13800644editdlrm
cadata_test.py14520644editdlrm
certinfo_test.py34680644editdlrm
close_socket_cb_test.py21680644editdlrm
curl_object_test.py48830644editdlrm
debug_test.py22750644editdlrm
default_write_cb_test.py30390644editdlrm
error_constants_test.py6620644editdlrm
error_test.py29010644editdlrm
failonerror_test.py35090644editdlrm
ftp_test.py15370644editdlrm
global_init_test.py10630644editdlrm
header_cb_test.py15600644editdlrm
header_test.py18480644editdlrm
high_level_curl_test.py6320644editdlrm
info_constants_test.py3870644editdlrm
internals_test.py66740644editdlrm
matrix.py68160644editdlrm
multi_option_constants_test.py25030644editdlrm
multi_socket_test.py30490644editdlrm
multi_test.py123130644editdlrm
multi_timer_test.py26950644editdlrm
open_socket_cb_test.py47610644editdlrm
option_constants_test.py163710644editdlrm
perform_test.py21790644editdlrm
procmgr.py27310644editdlrm
protocol_constants_test.py16790644editdlrm
readdata_test.py96230644editdlrm
read_cb_test.py43400644editdlrm
relative_url_test.py5510644editdlrm
reload_test.py4300644editdlrm
reset_test.py26990644editdlrm
resolve_test.py7800644editdlrm
run-quickstart.sh7680755editdlrm
run.sh6900755editdlrm
runwsgi.py37330644editdlrm
seek_cb_constants_test.py8330644editdlrm
setopt_lifecycle_test.py17970644editdlrm
setopt_string_test.py8160644editdlrm
setopt_test.py37730644editdlrm
setopt_unicode_test.py10920644editdlrm
setup_test.py100350644editdlrm
share_test.py17260644editdlrm
sockopt_cb_test.py24530644editdlrm
unset_range_test.py14820644editdlrm
user_agent_string_test.py8200644editdlrm
util.py82910644editdlrm
version_comparison_test.py5140644editdlrm
version_constants_test.py20560644editdlrm
version_test.py3130644editdlrm
vsftpd.conf2940644editdlrm
weakref_test.py4430644editdlrm
write_abort_test.py11940644editdlrm
write_cb_bogus_test.py13810644editdlrm
write_test.py100480644editdlrm
write_to_stringio_test.py12280644editdlrm
xferinfo_cb_test.py21470644editdlrm
__init__.py5350644editdlrm
Edit: /usr/share/doc/python3-pycurl/tests/matrix.py (6816B)
import os, os.path, subprocess, shutil try: from urllib.request import urlopen except ImportError: from urllib import urlopen python_versions = ['2.6.8', '2.7.5', '3.1.5', '3.2.5', '3.3.5', '3.4.1'] libcurl_versions = ['7.19.0', '7.46.0'] libcurl_meta = { '7.19.0': { 'patches': [ 'curl-7.19.0-sslv2-c66b0b32fba-modified.patch', #'curl-7.19.0-sslv2-2b0e09b0f98.patch', ], }, } root = os.path.abspath(os.path.dirname(__file__)) class in_dir: def __init__(self, dir): self.dir = dir def __enter__(self): self.oldwd = os.getcwd() os.chdir(self.dir) def __exit__(self, type, value, traceback): os.chdir(self.oldwd) def subprocess_check_call(cmd, **kwargs): try: subprocess.check_call(cmd, **kwargs) except OSError as exc: message = exc.args[0] message = '%s while trying to execute %s' % (message, str(cmd)) args = tuple([message] + exc.args[1:]) raise type(exc)(args) def fetch(url, archive=None): if archive is None: archive = os.path.basename(url) if not os.path.exists(archive): sys.stdout.write("Fetching %s\n" % url) io = urlopen(url) with open('.tmp.%s' % archive, 'wb') as f: while True: chunk = io.read(65536) if len(chunk) == 0: break f.write(chunk) os.rename('.tmp.%s' % archive, archive) def build(archive, dir, prefix, meta=None): if not os.path.exists(dir): sys.stdout.write("Building %s\n" % archive) subprocess_check_call(['tar', 'xf', archive]) with in_dir(dir): if meta and 'patches' in meta: for patch in meta['patches']: patch_path = os.path.join(root, 'matrix', patch) subprocess_check_call(['patch', '-p1', '-i', patch_path]) subprocess_check_call(['./configure', '--prefix=%s' % prefix]) if 'post-configure' in meta: for cmd in meta['post-configure']: subprocess_check_call(cmd, shell=True) subprocess_check_call(['make']) subprocess_check_call(['make', 'install']) def run_matrix(python_versions, libcurl_versions): for python_version in python_versions: url = 'http://www.python.org/ftp/python/%s/Python-%s.tgz' % (python_version, python_version) archive = os.path.basename(url) fetch(url, archive) dir = archive.replace('.tgz', '') prefix = os.path.abspath('i/%s' % dir) build(archive, dir, prefix) for libcurl_version in libcurl_versions: url = 'https://curl.haxx.se/download/curl-%s.tar.gz' % libcurl_version archive = os.path.basename(url) fetch(url, archive) dir = archive.replace('.tar.gz', '') prefix = os.path.abspath('i/%s' % dir) build(archive, dir, prefix, meta=libcurl_meta.get(libcurl_version)) fetch('https://raw.github.com/pypa/virtualenv/1.7/virtualenv.py', 'virtualenv-1.7.py') fetch('https://raw.github.com/pypa/virtualenv/1.9.1/virtualenv.py', 'virtualenv-1.9.1.py') if not os.path.exists('venv'): os.mkdir('venv') for python_version in python_versions: python_version_pieces = [int(piece) for piece in python_version.split('.')[:2]] for libcurl_version in libcurl_versions: python_prefix = os.path.abspath('i/Python-%s' % python_version) libcurl_prefix = os.path.abspath('i/curl-%s' % libcurl_version) venv = os.path.abspath('venv/Python-%s-curl-%s' % (python_version, libcurl_version)) if os.path.exists(venv): shutil.rmtree(venv) fetch('https://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg') fetch('https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg') # I had virtualenv 1.8.2 installed systemwide which # did not work with python 3.0: # http://stackoverflow.com/questions/1422361/why-am-i-getting-this-error-related-to-pip-and-easy-install-when-trying-to-set # so, use known versions everywhere # md5=89e68df89faf1966bcbd99a0033fbf8e fetch('https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz') subprocess_check_call(['python', 'virtualenv-1.9.1.py', venv, '-p', '%s/bin/python%d.%d' % (python_prefix, python_version_pieces[0], python_version_pieces[1]), '--no-site-packages', '--never-download']) curl_config_path = os.path.join(libcurl_prefix, 'bin/curl-config') curl_lib_path = os.path.join(libcurl_prefix, 'lib') with in_dir('pycurl'): extra_patches = [] extra_env = [] deps_cmd = 'pip install -r requirements-dev.txt' extra_patches = ' && '.join(extra_patches) extra_env = ' '.join(extra_env) cmd = ''' make clean && . %(venv)s/bin/activate && %(deps_cmd)s && %(extra_patches)s python -V && LD_LIBRARY_PATH=%(curl_lib_path)s PYCURL_CURL_CONFIG=%(curl_config_path)s %(extra_env)s make test ''' % dict( venv=venv, deps_cmd=deps_cmd, extra_patches=extra_patches, curl_lib_path=curl_lib_path, curl_config_path=curl_config_path, extra_env=extra_env ) print(cmd) subprocess_check_call(cmd, shell=True) if __name__ == '__main__': import sys def main(): import optparse parser = optparse.OptionParser() parser.add_option('-p', '--python', help='Specify python version to test against') parser.add_option('-c', '--curl', help='Specify libcurl version to test against') options, args = parser.parse_args() if options.python: python_version = options.python if python_version in python_versions: chosen_python_versions = [python_version] else: chosen_python_versions = [v for v in python_versions if v.startswith(python_version)] if len(chosen_python_versions) != 1: raise Exception('Bogus python version requested: %s' % python_version) else: chosen_python_versions = python_versions if options.curl: chosen_libcurl_versions = [options.curl] else: chosen_libcurl_versions = libcurl_versions run_matrix(chosen_python_versions, chosen_libcurl_versions) main()