~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_http.py

  • Committer: Martin Pool
  • Date: 2010-07-15 09:47:16 UTC
  • mfrom: (5345 +trunk)
  • mto: This revision was merged to the branch mainline in revision 5346.
  • Revision ID: mbp@canonical.com-20100715094716-sljdg6go0d12xi79
merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
1125
1125
    def setUp(self):
1126
1126
        tests.TestCase.setUp(self)
1127
1127
        self._old_env = {}
1128
 
 
1129
 
    def tearDown(self):
1130
 
        self._restore_env()
1131
 
        tests.TestCase.tearDown(self)
 
1128
        self.addCleanup(self._restore_env)
1132
1129
 
1133
1130
    def _install_env(self, env):
1134
1131
        for name, value in env.iteritems():
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
1979
 
 
1980
 
    def tearDown(self):
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)
1984
1976
 
1985
1977
    def get_transport(self):
1986
1978
        return self._transport(self.server.get_url())
2103
2095
class TestActivity(tests.TestCase, TestActivityMixin):
2104
2096
 
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)
2112
 
            count += bytes
2113
 
            self.activities[direction] = count
2114
 
 
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
2120
 
 
2121
 
    def tearDown(self):
2122
 
        self._transport._report_activity = self.orig_report_activity
2123
 
        self.server.stop_server()
2124
 
        tests.TestCase.tearDown(self)
 
2098
        TestActivityMixin.setUp(self)
2125
2099
 
2126
2100
 
2127
2101
class TestNoReportActivity(tests.TestCase, TestActivityMixin):
2128
2102
 
 
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'
 
2110
 
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
2138
 
 
2139
 
        self.server.start_server()
2140
 
 
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
2146
 
 
2147
 
    def tearDown(self):
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)
2151
2114
 
2152
2115
    def assertActivitiesMatch(self):
2153
2116
        # Nothing to check here