12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- from operator import attrgetter
- from django.db import models
- from django.test import SimpleTestCase, TestCase
- from django.test.utils import isolate_apps
- from .base_tests import BaseOrderWithRespectToTests
- from .models import Answer, Dimension, Entity, Post, Question
- class OrderWithRespectToBaseTests(BaseOrderWithRespectToTests, TestCase):
- Answer = Answer
- Post = Post
- Question = Question
- class OrderWithRespectToTests(SimpleTestCase):
- @isolate_apps("order_with_respect_to")
- def test_duplicate_order_field(self):
- class Bar(models.Model):
- class Meta:
- app_label = "order_with_respect_to"
- class Foo(models.Model):
- bar = models.ForeignKey(Bar, models.CASCADE)
- order = models.OrderWrt()
- class Meta:
- order_with_respect_to = "bar"
- app_label = "order_with_respect_to"
- count = 0
- for field in Foo._meta.local_fields:
- if isinstance(field, models.OrderWrt):
- count += 1
- self.assertEqual(count, 1)
- class TestOrderWithRespectToOneToOnePK(TestCase):
- def test_set_order(self):
- e = Entity.objects.create()
- d = Dimension.objects.create(entity=e)
- c1 = d.component_set.create()
- c2 = d.component_set.create()
- d.set_component_order([c1.id, c2.id])
- self.assertQuerySetEqual(
- d.component_set.all(), [c1.id, c2.id], attrgetter("pk")
- )
|