diff --git a/reviewboard/scmtools/tests/test_svn.py b/reviewboard/scmtools/tests/test_svn.py
index 298292e3760da84f37d8d64c60b7d117a4c8753c..8ad3c20588318067cd718145fb216ac20dfc1981 100644
--- a/reviewboard/scmtools/tests/test_svn.py
+++ b/reviewboard/scmtools/tests/test_svn.py
@@ -36,13 +36,24 @@ class _CommonSVNTestCase(DiffParserTestingMixin, SpyAgency, SCMTestCase):
 
     __test__ = False
 
-    def setUp(self):
-        super(_CommonSVNTestCase, self).setUp()
+    @classmethod
+    def setUpClass(cls):
+        super(_CommonSVNTestCase, cls).setUpClass()
+
+        cls._old_backend_setting = settings.SVNTOOL_BACKENDS
+        settings.SVNTOOL_BACKENDS = [cls.backend]
+        recompute_svn_backend()
+
+    @classmethod
+    def tearDownClass(cls):
+        super(_CommonSVNTestCase, cls).tearDownClass()
 
-        self._old_backend_setting = settings.SVNTOOL_BACKENDS
-        settings.SVNTOOL_BACKENDS = [self.backend]
+        settings.SVNTOOL_BACKENDS = cls._old_backend_setting
         recompute_svn_backend()
 
+    def setUp(self):
+        super(_CommonSVNTestCase, self).setUp()
+
         self.svn_repo_path = os.path.abspath(
             os.path.join(os.path.dirname(__file__),
                          '..', 'testdata', 'svn_repo'))
@@ -62,12 +73,6 @@ class _CommonSVNTestCase(DiffParserTestingMixin, SpyAgency, SCMTestCase):
 
         assert self.tool.client.__class__.__module__ == self.backend
 
-    def tearDown(self):
-        super(_CommonSVNTestCase, self).tearDown()
-
-        settings.SVNTOOL_BACKENDS = self._old_backend_setting
-        recompute_svn_backend()
-
     def shortDescription(self):
         desc = super(_CommonSVNTestCase, self).shortDescription()
         desc = desc.replace('<backend>', self.backend_name)
