From a7dc13ec231faf917c3125eb4c158138d4edde10 Mon Sep 17 00:00:00 2001
From: Carl Meyer <carl@oddbird.net>
Date: Mon, 20 May 2013 01:56:23 -0400
Subject: [PATCH] Fixed #20437 - marked a test-runner test as expected-fail
 under certain conditions.

---
 tests/test_runner/test_discover_runner.py | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/tests/test_runner/test_discover_runner.py b/tests/test_runner/test_discover_runner.py
index 030a0bc40a..1a0fb88367 100644
--- a/tests/test_runner/test_discover_runner.py
+++ b/tests/test_runner/test_discover_runner.py
@@ -1,8 +1,22 @@
 from contextlib import contextmanager
 import os
+import sys
 
 from django.test import TestCase
 from django.test.runner import DiscoverRunner
+from django.utils.unittest import expectedFailure
+
+try:
+    import unittest2
+except ImportError:
+    unittest2 = None
+
+
+def expectedFailureIf(condition):
+    """Marks a test as an expected failure if ``condition`` is met."""
+    if condition:
+        return expectedFailure
+    return lambda func: func
 
 
 class DiscoverRunnerTest(TestCase):
@@ -35,6 +49,9 @@ class DiscoverRunnerTest(TestCase):
 
         self.assertEqual(count, 1)
 
+    # this test fails if unittest2 is installed from PyPI on Python 2.6
+    # refs https://code.djangoproject.com/ticket/20437
+    @expectedFailureIf(sys.version_info < (2, 7) and unittest2)
     def test_dotted_test_method_vanilla_unittest(self):
         count = DiscoverRunner().build_suite(
             ["test_discovery_sample.tests_sample.TestVanillaUnittest.test_sample"],