1342
1336
t = self._transport(self.new_server.get_url())
1343
1337
self.assertEqual('0123456789', t.get('a').read())
1345
def test_read_redirected_bundle_from_url(self):
1346
from bzrlib.bundle import read_bundle_from_url
1347
url = self.old_transport.abspath('bundle')
1348
bundle = self.applyDeprecated(deprecated_in((1, 12, 0)),
1349
read_bundle_from_url, url)
1350
# If read_bundle_from_url was successful we get an empty bundle
1351
self.assertEqual([], bundle.revisions)
1354
1340
class RedirectedRequest(_urllib2_wrappers.Request):
1355
1341
"""Request following redirections. """
1974
1960
# We override at class level because constructors may propagate the
1975
1961
# bound method and render instance overriding ineffective (an
1976
1962
# alternative would be to define a specific ui factory instead...)
1977
self.orig_report_activity = self._transport._report_activity
1978
self._transport._report_activity = report_activity
1981
self._transport._report_activity = self.orig_report_activity
1982
self.server.stop_server()
1983
tests.TestCase.tearDown(self)
1963
self.overrideAttr(self._transport, '_report_activity', report_activity)
1964
self.addCleanup(self.server.stop_server)
1985
1966
def get_transport(self):
1986
1967
return self._transport(self.server.get_url())
2103
2084
class TestActivity(tests.TestCase, TestActivityMixin):
2105
2086
def setUp(self):
2106
tests.TestCase.setUp(self)
2107
self.server = self._activity_server(self._protocol_version)
2108
self.server.start_server()
2109
self.activities = {}
2110
def report_activity(t, bytes, direction):
2111
count = self.activities.get(direction, 0)
2113
self.activities[direction] = count
2115
# We override at class level because constructors may propagate the
2116
# bound method and render instance overriding ineffective (an
2117
# alternative would be to define a specific ui factory instead...)
2118
self.orig_report_activity = self._transport._report_activity
2119
self._transport._report_activity = report_activity
2122
self._transport._report_activity = self.orig_report_activity
2123
self.server.stop_server()
2124
tests.TestCase.tearDown(self)
2087
TestActivityMixin.setUp(self)
2127
2090
class TestNoReportActivity(tests.TestCase, TestActivityMixin):
2092
# Unlike TestActivity, we are really testing ReportingFileSocket and
2093
# ReportingSocket, so we don't need all the parametrization. Since
2094
# ReportingFileSocket and ReportingSocket are wrappers, it's easier to
2095
# test them through their use by the transport than directly (that's a
2096
# bit less clean but far more simpler and effective).
2097
_activity_server = ActivityHTTPServer
2098
_protocol_version = 'HTTP/1.1'
2129
2100
def setUp(self):
2130
tests.TestCase.setUp(self)
2131
# Unlike TestActivity, we are really testing ReportingFileSocket and
2132
# ReportingSocket, so we don't need all the parametrization. Since
2133
# ReportingFileSocket and ReportingSocket are wrappers, it's easier to
2134
# test them through their use by the transport than directly (that's a
2135
# bit less clean but far more simpler and effective).
2136
self.server = ActivityHTTPServer('HTTP/1.1')
2137
self._transport=_urllib.HttpTransport_urllib
2139
self.server.start_server()
2141
# We override at class level because constructors may propagate the
2142
# bound method and render instance overriding ineffective (an
2143
# alternative would be to define a specific ui factory instead...)
2144
self.orig_report_activity = self._transport._report_activity
2145
self._transport._report_activity = None
2148
self._transport._report_activity = self.orig_report_activity
2149
self.server.stop_server()
2150
tests.TestCase.tearDown(self)
2101
self._transport =_urllib.HttpTransport_urllib
2102
TestActivityMixin.setUp(self)
2152
2104
def assertActivitiesMatch(self):
2153
2105
# Nothing to check here