/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/http_utils.py

Merge sftp-leaks into catch-them-all

Show diffs side-by-side

added added

removed removed

Lines of Context:
107
107
    backed by regular disk files.
108
108
    """
109
109
 
110
 
    # This can be overriden or parametrized by daughter clasess if needed, but
111
 
    # it must exist so that the create_transport_readonly_server() method can
112
 
    # propagate it.
 
110
    # These attributes can be overriden or parametrized by daughter clasess if
 
111
    # needed, but must exist so that the create_transport_readonly_server()
 
112
    # method (or any method creating an http(s) server can propagate it.
113
113
    _protocol_version = None
 
114
    _url_protocol = 'http'
114
115
 
115
116
    def setUp(self):
116
117
        super(TestCaseWithWebserver, self).setUp()
117
118
        self.transport_readonly_server = http_server.HttpServer
118
119
 
119
120
    def create_transport_readonly_server(self):
120
 
        return self.transport_readonly_server(
 
121
        server = self.transport_readonly_server(
121
122
            protocol_version=self._protocol_version)
 
123
        server._url_protocol = self._url_protocol
 
124
        return server
122
125
 
123
126
 
124
127
class TestCaseWithTwoWebservers(TestCaseWithWebserver):
137
140
 
138
141
        This is mostly a hook for daughter classes.
139
142
        """
140
 
        return self.transport_secondary_server(
 
143
        server = self.transport_secondary_server(
141
144
            protocol_version=self._protocol_version)
 
145
        server._url_protocol = self._url_protocol
 
146
        return server
142
147
 
143
148
    def get_secondary_server(self):
144
149
        """Get the server instance for the secondary transport."""
147
152
            self.start_server(self.__secondary_server)
148
153
        return self.__secondary_server
149
154
 
 
155
    def get_secondary_url(self, relpath=None):
 
156
        base = self.get_secondary_server().get_url()
 
157
        return self._adjust_url(base, relpath)
 
158
 
 
159
    def get_secondary_transport(self, relpath=None):
 
160
        t = get_transport(self.get_secondary_url(relpath))
 
161
        self.assertTrue(t.is_readonly())
 
162
        return t
 
163
 
150
164
 
151
165
class ProxyServer(http_server.HttpServer):
152
166
    """A proxy test server for http transports."""
226
240
   The 'old' server is redirected to the 'new' server.
227
241
   """
228
242
 
 
243
   def setUp(self):
 
244
       super(TestCaseWithRedirectedWebserver, self).setUp()
 
245
       # The redirections will point to the new server
 
246
       self.new_server = self.get_readonly_server()
 
247
       # The requests to the old server will be redirected to the new server
 
248
       self.old_server = self.get_secondary_server()
 
249
 
229
250
   def create_transport_secondary_server(self):
230
251
       """Create the secondary server redirecting to the primary server"""
231
252
       new = self.get_readonly_server()
232
253
       redirecting = HTTPServerRedirecting(
233
254
           protocol_version=self._protocol_version)
234
255
       redirecting.redirect_to(new.host, new.port)
 
256
       redirecting._url_protocol = self._url_protocol
235
257
       return redirecting
236
258
 
237
 
   def setUp(self):
238
 
       super(TestCaseWithRedirectedWebserver, self).setUp()
239
 
       # The redirections will point to the new server
240
 
       self.new_server = self.get_readonly_server()
241
 
       # The requests to the old server will be redirected
242
 
       self.old_server = self.get_secondary_server()
 
259
   def get_old_url(self, relpath=None):
 
260
        base = self.old_server.get_url()
 
261
        return self._adjust_url(base, relpath)
 
262
 
 
263
   def get_old_transport(self, relpath=None):
 
264
        t = get_transport(self.get_old_url(relpath))
 
265
        self.assertTrue(t.is_readonly())
 
266
        return t
 
267
 
 
268
   def get_new_url(self, relpath=None):
 
269
        base = self.new_server.get_url()
 
270
        return self._adjust_url(base, relpath)
 
271
 
 
272
   def get_new_transport(self, relpath=None):
 
273
        t = get_transport(self.get_new_url(relpath))
 
274
        self.assertTrue(t.is_readonly())
 
275
        return t
243
276
 
244
277
 
245
278
class AuthRequestHandler(http_server.TestingHTTPRequestHandler):