Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,594 changes: 1,297 additions & 1,297 deletions cbv/fixtures/1.10.json

Large diffs are not rendered by default.

3,462 changes: 1,731 additions & 1,731 deletions cbv/fixtures/1.11.json

Large diffs are not rendered by default.

4,326 changes: 2,137 additions & 2,189 deletions cbv/fixtures/1.3.json

Large diffs are not rendered by default.

5,734 changes: 2,837 additions & 2,897 deletions cbv/fixtures/1.4.json

Large diffs are not rendered by default.

6,233 changes: 3,086 additions & 3,147 deletions cbv/fixtures/1.5.json

Large diffs are not rendered by default.

6,395 changes: 3,167 additions & 3,228 deletions cbv/fixtures/1.6.json

Large diffs are not rendered by default.

6,373 changes: 3,156 additions & 3,217 deletions cbv/fixtures/1.7.json

Large diffs are not rendered by default.

2,588 changes: 1,294 additions & 1,294 deletions cbv/fixtures/1.8.json

Large diffs are not rendered by default.

2,778 changes: 1,389 additions & 1,389 deletions cbv/fixtures/1.9.json

Large diffs are not rendered by default.

3,432 changes: 1,716 additions & 1,716 deletions cbv/fixtures/2.0.json

Large diffs are not rendered by default.

3,456 changes: 1,728 additions & 1,728 deletions cbv/fixtures/2.1.json

Large diffs are not rendered by default.

3,460 changes: 1,730 additions & 1,730 deletions cbv/fixtures/2.2.json

Large diffs are not rendered by default.

3,486 changes: 1,743 additions & 1,743 deletions cbv/fixtures/3.0.json

Large diffs are not rendered by default.

3,480 changes: 1,740 additions & 1,740 deletions cbv/fixtures/3.1.json

Large diffs are not rendered by default.

3,426 changes: 1,713 additions & 1,713 deletions cbv/fixtures/3.2.json

Large diffs are not rendered by default.

3,710 changes: 1,855 additions & 1,855 deletions cbv/fixtures/4.0.json

Large diffs are not rendered by default.

33 changes: 21 additions & 12 deletions cbv/management/commands/cbv_dumpversion.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from itertools import chain

from django.core import serializers
from django.core.management.base import LabelCommand

Expand All @@ -8,19 +10,26 @@ class Command(LabelCommand):
"""Dump the django cbv app data for a specific version."""

def handle_label(self, label, **options):
filtered_models = (
(models.ProjectVersion, "version_number"),
(models.Module, "project_version__version_number"),
(models.Klass, "module__project_version__version_number"),
(models.KlassAttribute, "klass__module__project_version__version_number"),
(models.Method, "klass__module__project_version__version_number"),
(models.Inheritance, "parent__module__project_version__version_number"),
querysets = (
# There will be only one ProjectVersion, so no need for ordering.
models.ProjectVersion.objects.filter(version_number=label),
models.Module.objects.filter(
project_version__version_number=label
).order_by("name"),
models.Klass.objects.filter(
module__project_version__version_number=label
).order_by("module__name", "name"),
models.KlassAttribute.objects.filter(
klass__module__project_version__version_number=label
).order_by("klass__module__name", "klass__name", "name"),
models.Method.objects.filter(
klass__module__project_version__version_number=label
).order_by("klass__module__name", "klass__name", "name"),
models.Inheritance.objects.filter(
parent__module__project_version__version_number=label
).order_by("child__module__name", "child__name", "order"),
)
objects = []
for model, version_arg in filtered_models:
filter_kwargs = {version_arg: label}
result = model.objects.filter(**filter_kwargs)
objects = objects + list(result)
objects = list(chain.from_iterable(querysets))
for obj in objects:
obj.pk = None
dump = serializers.serialize(
Expand Down
23 changes: 13 additions & 10 deletions cbv/tests/test_models.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import pytest

from .factories import InheritanceFactory
from .factories import InheritanceFactory, KlassFactory


@pytest.mark.django_db
Expand All @@ -18,10 +18,11 @@ def test_linear(self) -> None:

C.__mro__ would be [C, B, A].
"""
b_child_of_a = InheritanceFactory.create(child__name="b", parent__name="a")
a = b_child_of_a.parent
b = b_child_of_a.child
c = InheritanceFactory.create(parent=b, child__name="c").child
a = KlassFactory.create(name="a")
b = KlassFactory.create(name="b")
c = KlassFactory.create(name="c")
InheritanceFactory.create(parent=a, child=b)
InheritanceFactory.create(parent=b, child=c)

mro = c.get_all_ancestors()

Expand All @@ -40,11 +41,13 @@ def test_diamond(self) -> None:

D.__mro__ would be [D, B, C, A].
"""
b_child_of_a = InheritanceFactory.create(child__name="b", parent__name="a")
a = b_child_of_a.parent
b = b_child_of_a.child
c = InheritanceFactory.create(parent=a, child__name="c").child
d = InheritanceFactory.create(parent=b, child__name="d").child
a = KlassFactory.create(name="a")
b = KlassFactory.create(name="b")
c = KlassFactory.create(name="c")
d = KlassFactory.create(name="d")
InheritanceFactory.create(parent=a, child=b)
InheritanceFactory.create(parent=a, child=c)
InheritanceFactory.create(parent=b, child=d)
InheritanceFactory.create(parent=c, child=d, order=2)

mro = d.get_all_ancestors()
Expand Down
4 changes: 1 addition & 3 deletions mypy-ratchet.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@
"Function is missing a type annotation for one or more arguments [no-untyped-def]": 12
},
"cbv/management/commands/cbv_dumpversion.py": {
"\"Type[object]\" has no attribute \"objects\" [attr-defined]": 1,
"Function is missing a type annotation [no-untyped-def]": 1,
"Need type annotation for \"objects\" (hint: \"objects: List[<type>] = ...\") [var-annotated]": 1
"Function is missing a type annotation [no-untyped-def]": 1
},
"cbv/management/commands/fetch_docs_urls.py": {
"Call to untyped function \"bless_prints\" in typed context [no-untyped-call]": 3,
Expand Down