1974
1971
# We override at class level because constructors may propagate the
1975
1972
# bound method and render instance overriding ineffective (an
1976
1973
# 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)
1974
self.overrideAttr(self._transport, '_report_activity', report_activity)
1975
self.addCleanup(self.server.stop_server)
1985
1977
def get_transport(self):
1986
1978
return self._transport(self.server.get_url())
2103
2095
class TestActivity(tests.TestCase, TestActivityMixin):
2105
2097
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)
2098
TestActivityMixin.setUp(self)
2127
2101
class TestNoReportActivity(tests.TestCase, TestActivityMixin):
2103
# Unlike TestActivity, we are really testing ReportingFileSocket and
2104
# ReportingSocket, so we don't need all the parametrization. Since
2105
# ReportingFileSocket and ReportingSocket are wrappers, it's easier to
2106
# test them through their use by the transport than directly (that's a
2107
# bit less clean but far more simpler and effective).
2108
_activity_server = ActivityHTTPServer
2109
_protocol_version = 'HTTP/1.1'
2129
2111
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)
2112
self._transport =_urllib.HttpTransport_urllib
2113
TestActivityMixin.setUp(self)
2152
2115
def assertActivitiesMatch(self):
2153
2116
# Nothing to check here