Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: third_party/httplib2/test/functional/test_proxies.py

Issue 183793010: Added OAuth2 authentication to apply_issue (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Added another option Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 import unittest
2 import errno
3 import os
4 import signal
5 import subprocess
6 import tempfile
7
8 import nose
9
10 import httplib2
11 from httplib2 import socks
12 from httplib2.test import miniserver
13
14 tinyproxy_cfg = """
15 User "%(user)s"
16 Port %(port)s
17 Listen 127.0.0.1
18 PidFile "%(pidfile)s"
19 LogFile "%(logfile)s"
20 MaxClients 2
21 StartServers 1
22 LogLevel Info
23 """
24
25
26 class FunctionalProxyHttpTest(unittest.TestCase):
27 def setUp(self):
28 if not socks:
29 raise nose.SkipTest('socks module unavailable')
30 if not subprocess:
31 raise nose.SkipTest('subprocess module unavailable')
32
33 # start a short-lived miniserver so we can get a likely port
34 # for the proxy
35 self.httpd, self.proxyport = miniserver.start_server(
36 miniserver.ThisDirHandler)
37 self.httpd.shutdown()
38 self.httpd, self.port = miniserver.start_server(
39 miniserver.ThisDirHandler)
40
41 self.pidfile = tempfile.mktemp()
42 self.logfile = tempfile.mktemp()
43 fd, self.conffile = tempfile.mkstemp()
44 f = os.fdopen(fd, 'w')
45 our_cfg = tinyproxy_cfg % {'user': os.getlogin(),
46 'pidfile': self.pidfile,
47 'port': self.proxyport,
48 'logfile': self.logfile}
49 f.write(our_cfg)
50 f.close()
51 try:
52 # TODO use subprocess.check_call when 2.4 is dropped
53 ret = subprocess.call(['tinyproxy', '-c', self.conffile])
54 self.assertEqual(0, ret)
55 except OSError, e:
56 if e.errno == errno.ENOENT:
57 raise nose.SkipTest('tinyproxy not available')
58 raise
59
60 def tearDown(self):
61 self.httpd.shutdown()
62 try:
63 pid = int(open(self.pidfile).read())
64 os.kill(pid, signal.SIGTERM)
65 except OSError, e:
66 if e.errno == errno.ESRCH:
67 print '\n\n\nTinyProxy Failed to start, log follows:'
68 print open(self.logfile).read()
69 print 'end tinyproxy log\n\n\n'
70 raise
71 map(os.unlink, (self.pidfile,
72 self.logfile,
73 self.conffile))
74
75 def testSimpleProxy(self):
76 proxy_info = httplib2.ProxyInfo(socks.PROXY_TYPE_HTTP,
77 'localhost', self.proxyport)
78 client = httplib2.Http(proxy_info=proxy_info)
79 src = 'miniserver.py'
80 response, body = client.request('http://localhost:%d/%s' %
81 (self.port, src))
82 self.assertEqual(response.status, 200)
83 self.assertEqual(body, open(os.path.join(miniserver.HERE, src)).read())
84 lf = open(self.logfile).read()
85 expect = ('Established connection to host "127.0.0.1" '
86 'using file descriptor')
87 self.assertTrue(expect in lf,
88 'tinyproxy did not proxy a request for miniserver')
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698