From f33b3ebd5302fe5821dd796156b0be66c5aebec9 Mon Sep 17 00:00:00 2001
From: Aric Coady <aric.coady@gmail.com>
Date: Tue, 1 Sep 2015 13:23:06 -0700
Subject: [PATCH] Refs #20625 -- Forwardported tests and release notes for
 queryset chaining fix.

The issue was fixed on master due to the removal of ValuesQuerySet.

Partial forwardport of 7d471fe6626de2b36b97ac04086d8ea307be8288 from stable/1.8.x
---
 docs/releases/1.8.5.txt        | 3 +++
 tests/custom_managers/tests.py | 4 ++++
 2 files changed, 7 insertions(+)

diff --git a/docs/releases/1.8.5.txt b/docs/releases/1.8.5.txt
index 1141c2c798..5a19a50137 100644
--- a/docs/releases/1.8.5.txt
+++ b/docs/releases/1.8.5.txt
@@ -36,3 +36,6 @@ Bugfixes
 * Changed ``Count`` queries to execute ``COUNT(*)`` instead of ``COUNT('*')``
   as versions of Django before 1.8 did (:ticket:`25377`). This may fix a
   performance regression on some databases.
+
+* Fixed custom queryset chaining with ``values()`` and ``values_list()``
+  (:ticket:`20625`).
diff --git a/tests/custom_managers/tests.py b/tests/custom_managers/tests.py
index b8acfc906d..28198b4422 100644
--- a/tests/custom_managers/tests.py
+++ b/tests/custom_managers/tests.py
@@ -76,6 +76,10 @@ class CustomManagerTests(TestCase):
             self.assertEqual(list(queryset), [six.text_type("Bugs")])
             self.assertEqual(queryset._filter_CustomQuerySet, True)
 
+            self.assertIsInstance(queryset.values(), CustomQuerySet)
+            self.assertIsInstance(queryset.values().values(), CustomQuerySet)
+            self.assertIsInstance(queryset.values_list().values(), CustomQuerySet)
+
     def test_init_args(self):
         """
         The custom manager __init__() argument has been set.