mirror of
				https://github.com/django/django.git
				synced 2025-10-29 08:36:09 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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'))
 |