def test_RedirectAwareProber_follows_http_redirect(self):
        url = 'http://localhost:%s/redirect-to-valid-mirror/file' % self.port
        prober = RedirectAwareProberFactory(url)
        self.failUnless(prober.redirection_count == 0)
        self.failUnless(prober.url == url)
        deferred = prober.probe()

        def got_result(result):
            self.failUnless(prober.redirection_count == 1)
            new_url = 'http://localhost:%s/valid-mirror/file' % self.port
            self.failUnless(prober.url == new_url)
            self.failUnless(result == str(httplib.OK))

        return deferred.addCallback(got_result)
    def test_RedirectAwareProber_follows_http_redirect(self):
        url = 'http://localhost:%s/redirect-to-valid-mirror/file' % self.port
        prober = RedirectAwareProberFactory(url)
        self.failUnless(prober.redirection_count == 0)
        self.failUnless(prober.url == url)
        deferred = prober.probe()

        def got_result(result):
            self.failUnless(prober.redirection_count == 1)
            new_url = 'http://localhost:%s/valid-mirror/file' % self.port
            self.failUnless(prober.url == new_url)
            self.failUnless(result == str(httplib.OK))

        return deferred.addCallback(got_result)
 def test_redirectawareprober_fail_on_unknown_scheme(self):
     prober = RedirectAwareProberFactory(
         'http://localhost:%s/redirect-unknown-url-scheme' % self.port)
     deferred = prober.probe()
     return self.assertFailure(deferred, UnknownURLSchemeAfterRedirect)
 def test_redirectawareprober_detects_infinite_loop(self):
     prober = RedirectAwareProberFactory(
         'http://localhost:%s/redirect-infinite-loop' % self.port)
     deferred = prober.probe()
     return self.assertFailure(deferred, InfiniteLoopDetected)
 def test_redirectawareprober_fail_on_unknown_scheme(self):
     prober = RedirectAwareProberFactory(
         'http://localhost:%s/redirect-unknown-url-scheme' % self.port)
     deferred = prober.probe()
     return self.assertFailure(deferred, UnknownURLSchemeAfterRedirect)
 def test_redirectawareprober_detects_infinite_loop(self):
     prober = RedirectAwareProberFactory(
         'http://localhost:%s/redirect-infinite-loop' % self.port)
     deferred = prober.probe()
     return self.assertFailure(deferred, InfiniteLoopDetected)