~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/HttpServer.py

  • Committer: v.ladeuil+lp at free
  • Date: 2006-12-12 12:49:55 UTC
  • mto: (2182.1.1 Aaron's integration)
  • mto: This revision was merged to the branch mainline in revision 2183.
  • Revision ID: v.ladeuil+lp@free.fr-20061212124955-1b8m2zk2tt54l869
Take John's comments into account and add more tests.

* bzrlib/transport/http/_urllib2_wrappers.py:
(ProxyHandler.get_proxy_env_var): Default to all_proxy if specific
env var is not found.

* bzrlib/tests/test_http.py:
Redesign the tests to be able to test for uppercased envrinoment
variables and all_proxy.
(TestProxyHttpServer.setUp): Initialize some attributes shared by
all tests.
(TestProxyHttpServer_pycurl.setUp): Specialized no_proxy for
pycurl and skip some tests.

* bzrlib/tests/__init__.py:
(TestCase._cleanEnvironment): Includes all proxy related
variables.

* bzrlib/tests/HttpServer.py:
(HttpServer._get_remote_url): No need to check for server thread
initialization here, we do that in setUp now.
(HttpServer.setUp): Explicitely waits for server thread
initialization or weird timing-related bugs occur in the test
suite.
(HttpServer.setUp, HttpServer.tearDown): Leave environment
handling to bzr.tests.TestCase._cleanEnvironment.

Show diffs side-by-side

added added

removed removed

Lines of Context:
270
270
        else:
271
271
            remote_path = '/'.join(path_parts)
272
272
 
273
 
        self._http_starting.acquire()
274
 
        self._http_starting.release()
275
273
        return self._http_base_url + remote_path
276
274
 
277
275
    def log(self, format, *args):
288
286
        self._http_base_url = None
289
287
        self._http_thread = threading.Thread(target=self._http_start)
290
288
        self._http_thread.setDaemon(True)
291
 
        # Ensure we are not influenced by the environment
292
 
        self._http_proxy = os.environ.get("http_proxy")
293
 
        if self._http_proxy is not None:
294
 
            del os.environ["http_proxy"]
295
 
        self._no_proxy = os.environ.get("no_proxy")
296
 
        if self._no_proxy is not None:
297
 
            del os.environ["no_proxy"]
298
289
        self._http_thread.start()
 
290
        # Wait for the server thread to start (i.e release the lock)
 
291
        self._http_starting.acquire()
 
292
        self._http_starting.release()
299
293
        self.logs = []
300
294
 
301
295
    def tearDown(self):
302
296
        """See bzrlib.transport.Server.tearDown."""
303
297
        self._http_running = False
304
298
        self._http_thread.join()
305
 
        if self._http_proxy is None:
306
 
            if os.environ.get("http_proxy") is not None:
307
 
                del os.environ["http_proxy"]
308
 
        else:
309
 
            os.environ["http_proxy"] = self._http_proxy
310
 
        if self._no_proxy is None:
311
 
            if os.environ.get("no_proxy") is not None:
312
 
                del os.environ["no_proxy"]
313
 
        else:
314
 
            os.environ["no_proxy"] = self.no_proxy
315
299
 
316
300
    def get_url(self):
317
301
        """See bzrlib.transport.Server.get_url."""