~ubuntu-branches/ubuntu/trusty/jockey/trusty

« back to all changes in this revision

Viewing changes to tests/http.py

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2011-03-08 16:08:06 UTC
  • mfrom: (2.1.31 upstream)
  • Revision ID: james.westby@ubuntu.com-20110308160806-udbldxcrfk734zsi
Tags: 0.9.2-0ubuntu1
* New upstream bug fix release:
  - Add X.org video driver ABI checking. (This was already cherrypicked
    in an earlier upload)
  - Drop our own verified_https.py and implement GPG fingerprint SSL
    checking with pycurl, which gets along with proxies. (LP: #729185)
  - Some code cleanup and more test cases.
* debian/control: Add python-pycurl dependency.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
# with this program; if not, write to the Free Software Foundation, Inc.,
19
19
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20
20
 
21
 
import traceback, time, urllib, os, signal
 
21
import traceback, time, urllib, os, signal, ssl
22
22
import SimpleHTTPServer, BaseHTTPServer
23
23
 
24
24
__server_pid = None
25
25
 
26
 
def start(port, dir):
 
26
def start(port, dir, use_ssl=False, certfile=None):
27
27
    '''Start HTTP server on given port and directory
28
28
 
 
29
    If use_ssl is True, this starts a HTTPS server. In that case, a certificate
 
30
    file can be given.
 
31
 
29
32
    This listens on localhost only.
30
33
    '''
31
34
    global __server_pid
41
44
            os.chdir(dir)
42
45
            httpd = BaseHTTPServer.HTTPServer(('localhost', port),
43
46
                SimpleHTTPServer.SimpleHTTPRequestHandler)
44
 
            # first request is for startup check, second for the actual test
 
47
            if use_ssl:
 
48
                httpd.socket = ssl.wrap_socket (httpd.socket,
 
49
                        certfile=certfile, server_side=True)
45
50
            httpd.serve_forever()
46
51
            os._exit(0)
47
52
        except:
54
59
        while True:
55
60
            time.sleep(0.1)
56
61
            try:
57
 
                f = urllib.urlopen('http://localhost:%i' % port)
 
62
                f = urllib.urlopen('http%s://localhost:%i' % (use_ssl and 's' or '', port))
58
63
            except IOError:
59
64
                continue
60
65
            f.read()