Skip to content

Commit 1de8db7

Browse files
authored
QuerySets: remove unused overrides (#8299)
We don't user these in .com
1 parent 7f4215f commit 1de8db7

File tree

9 files changed

+14
-184
lines changed

9 files changed

+14
-184
lines changed

readthedocs/builds/managers.py

Lines changed: 8 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,7 @@
66
from django.db import models
77
from polymorphic.managers import PolymorphicManager
88

9-
from readthedocs.core.utils.extend import (
10-
SettingsOverrideObject,
11-
get_override_class,
12-
)
13-
14-
from .constants import (
9+
from readthedocs.builds.constants import (
1510
BRANCH,
1611
EXTERNAL,
1712
LATEST,
@@ -20,16 +15,16 @@
2015
STABLE_VERBOSE_NAME,
2116
TAG,
2217
)
23-
from .querysets import BuildQuerySet, VersionQuerySet
24-
18+
from readthedocs.builds.querysets import VersionQuerySet
19+
from readthedocs.core.utils.extend import get_override_class
2520

2621
log = logging.getLogger(__name__)
2722

2823

2924
__all__ = ['VersionManager']
3025

3126

32-
class VersionManagerBase(models.Manager):
27+
class VersionManager(models.Manager):
3328

3429
"""
3530
Version manager for manager only queries.
@@ -86,7 +81,7 @@ def get_object_or_log(self, **kwargs):
8681
log.warning('Version not found for given kwargs. %s', kwargs)
8782

8883

89-
class InternalVersionManagerBase(VersionManagerBase):
84+
class InternalVersionManager(VersionManager):
9085

9186
"""
9287
Version manager that only includes internal version.
@@ -99,7 +94,7 @@ def get_queryset(self):
9994
return super().get_queryset().exclude(type=EXTERNAL)
10095

10196

102-
class ExternalVersionManagerBase(VersionManagerBase):
97+
class ExternalVersionManager(VersionManager):
10398

10499
"""
105100
Version manager that only includes external version.
@@ -111,40 +106,7 @@ def get_queryset(self):
111106
return super().get_queryset().filter(type=EXTERNAL)
112107

113108

114-
class VersionManager(SettingsOverrideObject):
115-
_default_class = VersionManagerBase
116-
_override_setting = 'VERSION_MANAGER'
117-
118-
119-
class InternalVersionManager(SettingsOverrideObject):
120-
_default_class = InternalVersionManagerBase
121-
122-
123-
class ExternalVersionManager(SettingsOverrideObject):
124-
_default_class = ExternalVersionManagerBase
125-
126-
127-
class BuildManagerBase(models.Manager):
128-
129-
"""
130-
Build manager for manager only queries.
131-
132-
For creating different Managers.
133-
"""
134-
135-
@classmethod
136-
def from_queryset(cls, queryset_class, class_name=None):
137-
# This is overridden because :py:meth:`models.Manager.from_queryset`
138-
# uses `inspect` to retrieve the class methods, and the proxy class has
139-
# no direct members.
140-
queryset_class = get_override_class(
141-
BuildQuerySet,
142-
BuildQuerySet._default_class, # pylint: disable=protected-access
143-
)
144-
return super().from_queryset(queryset_class, class_name)
145-
146-
147-
class InternalBuildManagerBase(BuildManagerBase):
109+
class InternalBuildManager(models.Manager):
148110

149111
"""
150112
Build manager that only includes internal version builds.
@@ -157,7 +119,7 @@ def get_queryset(self):
157119
return super().get_queryset().exclude(version__type=EXTERNAL)
158120

159121

160-
class ExternalBuildManagerBase(BuildManagerBase):
122+
class ExternalBuildManager(models.Manager):
161123

162124
"""
163125
Build manager that only includes external version builds.
@@ -169,18 +131,6 @@ def get_queryset(self):
169131
return super().get_queryset().filter(version__type=EXTERNAL)
170132

171133

172-
class BuildManager(SettingsOverrideObject):
173-
_default_class = BuildManagerBase
174-
175-
176-
class InternalBuildManager(SettingsOverrideObject):
177-
_default_class = InternalBuildManagerBase
178-
179-
180-
class ExternalBuildManager(SettingsOverrideObject):
181-
_default_class = ExternalBuildManagerBase
182-
183-
184134
class VersionAutomationRuleManager(PolymorphicManager):
185135

186136
"""

readthedocs/builds/models.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
)
4747
from readthedocs.builds.managers import (
4848
AutomationRuleMatchManager,
49-
BuildManager,
5049
ExternalBuildManager,
5150
ExternalVersionManager,
5251
InternalBuildManager,
@@ -680,7 +679,7 @@ class Build(models.Model):
680679
)
681680

682681
# Managers
683-
objects = BuildManager.from_queryset(BuildQuerySet)()
682+
objects = BuildQuerySet.as_manager()
684683
# Only include BRANCH, TAG, UNKNOWN type Version builds.
685684
internal = InternalBuildManager.from_queryset(BuildQuerySet)()
686685
# Only include EXTERNAL type Version builds.

readthedocs/builds/querysets.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ class VersionQuerySet(SettingsOverrideObject):
121121
_default_class = VersionQuerySetBase
122122

123123

124-
class BuildQuerySetBase(models.QuerySet):
124+
class BuildQuerySet(models.QuerySet):
125125

126126
"""
127127
Build objects that are privacy aware.
@@ -241,10 +241,6 @@ def concurrent(self, project):
241241
return (limit_reached, concurrent, max_concurrent)
242242

243243

244-
class BuildQuerySet(SettingsOverrideObject):
245-
_default_class = BuildQuerySetBase
246-
247-
248244
class RelatedBuildQuerySet(models.QuerySet):
249245

250246
"""

readthedocs/oauth/querysets.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
1-
# -*- coding: utf-8 -*-
2-
31
"""Managers for OAuth models."""
42

53
from django.db import models
64

7-
from readthedocs.core.utils.extend import SettingsOverrideObject
8-
95

10-
class RelatedUserQuerySetBase(models.QuerySet):
6+
class RelatedUserQuerySet(models.QuerySet):
117

128
"""For models with relations through :py:class:`User`."""
139

@@ -18,11 +14,6 @@ def api(self, user=None):
1814
return self.filter(users=user)
1915

2016

21-
class RelatedUserQuerySet(SettingsOverrideObject):
22-
_default_class = RelatedUserQuerySetBase
23-
_override_setting = 'RELATED_USER_MANAGER'
24-
25-
2617
class RemoteRepositoryQuerySet(RelatedUserQuerySet):
2718
pass
2819

readthedocs/projects/models.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
from readthedocs.projects.querysets import (
3535
ChildRelatedProjectQuerySet,
3636
FeatureQuerySet,
37-
HTMLFileQuerySet,
3837
ProjectQuerySet,
3938
RelatedProjectQuerySet,
4039
)
@@ -1433,7 +1432,7 @@ class HTMLFile(ImportedFile):
14331432
class Meta:
14341433
proxy = True
14351434

1436-
objects = HTMLFileManager.from_queryset(HTMLFileQuerySet)()
1435+
objects = HTMLFileManager()
14371436

14381437
def get_processed_json(self):
14391438
parser_class = (

readthedocs/projects/querysets.py

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from django.db import models
55
from django.db.models import OuterRef, Prefetch, Q, Subquery
66

7-
from readthedocs.builds.constants import EXTERNAL
87
from readthedocs.core.permissions import AdminPermission
98
from readthedocs.core.utils.extend import SettingsOverrideObject
109
from readthedocs.projects import constants
@@ -217,23 +216,3 @@ def for_project(self, project):
217216
Q(default_true=True, add_date__gt=project.pub_date) |
218217
Q(future_default_true=True, add_date__lte=project.pub_date)
219218
).distinct()
220-
221-
222-
class HTMLFileQuerySet(models.QuerySet):
223-
224-
def internal(self):
225-
"""
226-
HTMLFileQuerySet method that only includes internal version html files.
227-
228-
It will exclude pull request/merge request Version html files from the queries
229-
and only include BRANCH, TAG, UNKNOWN type Version html files.
230-
"""
231-
return self.exclude(version__type=EXTERNAL)
232-
233-
def external(self):
234-
"""
235-
HTMLFileQuerySet method that only includes external version html files.
236-
237-
It will only include pull request/merge request Version html files in the queries.
238-
"""
239-
return self.filter(version__type=EXTERNAL)

readthedocs/rtd_tests/tests/test_managers.py

Lines changed: 1 addition & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
from readthedocs.builds.constants import EXTERNAL
66
from readthedocs.builds.models import Build, Version
77
from readthedocs.projects.constants import PRIVATE, PUBLIC
8-
from readthedocs.projects.models import HTMLFile, Project
9-
8+
from readthedocs.projects.models import Project
109

1110
User = get_user_model()
1211

@@ -331,56 +330,3 @@ def test_api(self):
331330
}
332331
self.assertEqual(query.count(), len(builds))
333332
self.assertEqual(set(query), builds)
334-
335-
336-
class TestHTMLFileManager(TestCase):
337-
338-
fixtures = ['test_data', 'eric']
339-
340-
def setUp(self):
341-
self.user = User.objects.create(username='test_user', password='test')
342-
self.client.login(username='test_user', password='test')
343-
self.pip = Project.objects.get(slug='pip')
344-
# Create a External Version. ie: pull/merge request Version.
345-
self.external_version = get(
346-
Version,
347-
project=self.pip,
348-
active=True,
349-
type=EXTERNAL,
350-
privacy_level=PUBLIC
351-
)
352-
self.internal_version = get(
353-
Version,
354-
project=self.pip,
355-
active=True,
356-
privacy_level=PUBLIC
357-
)
358-
self.external_html_file = HTMLFile.objects.create(
359-
project=self.pip,
360-
version=self.external_version,
361-
name='file.html',
362-
path='file.html',
363-
commit='1234567890abcdef',
364-
)
365-
self.internal_html_file = HTMLFile.objects.create(
366-
project=self.pip,
367-
version=self.internal_version,
368-
name='file.html',
369-
path='file.html',
370-
commit='1234567890abcdef',
371-
)
372-
373-
def test_internal_html_file_queryset(self):
374-
"""
375-
It will exclude pull/merge request Version html files from the queries
376-
and only include BRANCH, TAG, UNKNOWN type Version files.
377-
"""
378-
self.assertNotIn(self.external_html_file, HTMLFile.objects.internal())
379-
self.assertIn(self.internal_html_file, HTMLFile.objects.internal())
380-
381-
def test_external_html_file_queryset(self):
382-
"""
383-
It will only include pull/merge request Version html files in the queries.
384-
"""
385-
self.assertNotIn(self.internal_html_file, HTMLFile.objects.external())
386-
self.assertIn(self.external_html_file, HTMLFile.objects.external())

readthedocs/search/documents.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -170,16 +170,10 @@ def prepare_domains(self, html_file):
170170
return all_domains
171171

172172
def get_queryset(self):
173-
"""
174-
Ignore certain files from indexing.
175-
176-
- Files from external versions
177-
- Ignored files
178-
"""
173+
"""Don't include ignored files."""
179174
queryset = super().get_queryset()
180175
queryset = (
181176
queryset
182-
.internal()
183177
.exclude(ignore=True)
184178
.select_related('version', 'project')
185179
)

readthedocs/search/tests/test_documents.py

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)