123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 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'))
|