# Path: tests/project/models.py
# class Child(TimeStampedModel):
#     name = models.CharField(max_length=255)
#     parent = models.ForeignKey(Parent, null=True, on_delete=models.CASCADE)
#     objects = Manager.from_queryset(ExtendedQuerySet)()
# 
# class Node(TimeStampedModel):
#     name = models.CharField(max_length=255)
#     parent = models.ForeignKey("self", null=True, on_delete=models.CASCADE)
#     objects = Manager.from_queryset(ExtendedQuerySet)()
# 
# class Parent(TimeStampedModel):
#     name = models.CharField(max_length=255)
#     objects = Manager.from_queryset(ExtendedQuerySet)()
# 
#     @property
#     def attribute_error(self) -> NoReturn:
#         raise AttributeError()
# 
#     @property
#     def version(self) -> str:
#         return str(self.pk) + ":" + str(self.date_modified)
# 
# class SecretModel(models.Model):
#     secret = SecretField()
# 
# class Simple(Model):
#     name = models.CharField(max_length=255)
#     objects = SimpleManager()
# 
# class TestUUIDModel(UUIDModel):
#     text = models.CharField(max_length=255)
#     parent = models.ForeignKey("TestUUIDModel", null=True, on_delete=models.CASCADE)
# 
# class URLSecretModel(models.Model):
#     # num_bytes=25 forces the base64 algorithm to pad
#     secret = URLSecretField(num_bytes=25, min_bytes=25)


from os import environ
from django.conf import global_settings
from django.core.exceptions import ValidationError
from django.test import TestCase
from bananas import environment
from bananas.environment import env
from bananas.models import ModelDict
from tests.project.models import (
    Child,
    Node,
    Parent,
    SecretModel,
    Simple,
    TestUUIDModel,
    URLSecretModel,
)
        from tests.project import settings_example as settings
                    id="child__id", child_name="child__name"
                )
            ),
            expected_dicts,
        )

        # Test multiple renamed fileds together with another that's not
        expected_dicts = [
            {
                "id": self.parent.pk,
                "child_id": self.child.pk,
                "child_name": self.child.name,
            },
            {
                "id": self.parent.pk,
                "child_id": self.other_child.pk,
                "child_name": self.other_child.name,
            },
        ]

        self.assertListEqual(
            list(
                Parent.objects.filter(name="A").dicts(
                    "id", child_id="child__id", child_name="child__name"
                )
            ),
            expected_dicts,
        )

    def test_uuid_model(self):

# Path: tests/project/models.py
# class Child(TimeStampedModel):
#     name = models.CharField(max_length=255)
#     parent = models.ForeignKey(Parent, null=True, on_delete=models.CASCADE)
#     objects = Manager.from_queryset(ExtendedQuerySet)()
# 
# class Node(TimeStampedModel):
#     name = models.CharField(max_length=255)
#     parent = models.ForeignKey("self", null=True, on_delete=models.CASCADE)
#     objects = Manager.from_queryset(ExtendedQuerySet)()
# 
# class Parent(TimeStampedModel):
#     name = models.CharField(max_length=255)
#     objects = Manager.from_queryset(ExtendedQuerySet)()
# 
#     @property
#     def attribute_error(self) -> NoReturn:
#         raise AttributeError()
# 
#     @property
#     def version(self) -> str:
#         return str(self.pk) + ":" + str(self.date_modified)
# 
# class SecretModel(models.Model):
#     secret = SecretField()
# 
# class Simple(Model):
#     name = models.CharField(max_length=255)
#     objects = SimpleManager()
# 
# class TestUUIDModel(UUIDModel):
#     text = models.CharField(max_length=255)
#     parent = models.ForeignKey("TestUUIDModel", null=True, on_delete=models.CASCADE)
# 
# class URLSecretModel(models.Model):
#     # num_bytes=25 forces the base64 algorithm to pad
#     secret = URLSecretField(num_bytes=25, min_bytes=25)


# Path: tests/tests/tests.py
from os import environ
from django.conf import global_settings
from django.core.exceptions import ValidationError
from django.test import TestCase
from bananas import environment
from bananas.environment import env
from bananas.models import ModelDict
from tests.project.models import (
    Child,
    Node,
    Parent,
    SecretModel,
    Simple,
    TestUUIDModel,
    URLSecretModel,
)
        from tests.project import settings_example as settings

                    id="child__id", child_name="child__name"
                )
            ),
            expected_dicts,
        )

        # Test multiple renamed fileds together with another that's not
        expected_dicts = [
            {
                "id": self.parent.pk,
                "child_id": self.child.pk,
                "child_name": self.child.name,
            },
            {
                "id": self.parent.pk,
                "child_id": self.other_child.pk,
                "child_name": self.other_child.name,
            },
        ]

        self.assertListEqual(
            list(
                Parent.objects.filter(name="A").dicts(
                    "id", child_id="child__id", child_name="child__name"
                )
            ),
            expected_dicts,
        )

    def test_uuid_model(self):

        first = TestUUIDModel.objects.create(text="first")