kopia lustrzana https://github.com/wagtail/wagtail
				
				
				
			Add tests for M2MFieldComparison
							rodzic
							
								
									04ac43205b
								
							
						
					
					
						commit
						c18cbc76e4
					
				| 
						 | 
				
			
			@ -197,6 +197,7 @@ class EventPageSpeaker(Orderable, LinkFields):
 | 
			
		|||
    ]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@python_2_unicode_compatible
 | 
			
		||||
class EventCategory(models.Model):
 | 
			
		||||
    name = models.CharField("Name", max_length=255)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@ from django.utils.functional import curry
 | 
			
		|||
from django.utils.safestring import SafeText
 | 
			
		||||
 | 
			
		||||
from wagtail.tests.testapp.models import (
 | 
			
		||||
    EventPage, EventPageSpeaker, SimplePage, StreamPage, TaggedPage)
 | 
			
		||||
    EventCategory, EventPage, EventPageSpeaker, SimplePage, StreamPage, TaggedPage)
 | 
			
		||||
from wagtail.wagtailadmin import compare
 | 
			
		||||
from wagtail.wagtailcore.blocks import StreamValue
 | 
			
		||||
from wagtail.wagtailimages import get_image_model
 | 
			
		||||
| 
						 | 
				
			
			@ -255,6 +255,49 @@ class TestTagsFieldComparison(TestCase):
 | 
			
		|||
        self.assertTrue(comparison.has_changed())
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TestM2MFieldComparison(TestCase):
 | 
			
		||||
    fixtures = ['test.json']
 | 
			
		||||
    comparison_class = compare.M2MFieldComparison
 | 
			
		||||
 | 
			
		||||
    def setUp(self):
 | 
			
		||||
        self.meetings_category = EventCategory.objects.create(name='Meetings')
 | 
			
		||||
        self.parties_category = EventCategory.objects.create(name='Parties')
 | 
			
		||||
        self.holidays_category = EventCategory.objects.create(name='Holidays')
 | 
			
		||||
 | 
			
		||||
    def test_hasnt_changed(self):
 | 
			
		||||
        christmas_event = EventPage.objects.get(url_path='/home/events/christmas/')
 | 
			
		||||
        saint_patrick_event = EventPage.objects.get(url_path='/home/events/saint-patrick/')
 | 
			
		||||
 | 
			
		||||
        christmas_event.categories = [self.meetings_category, self.parties_category]
 | 
			
		||||
        saint_patrick_event.categories = [self.meetings_category, self.parties_category]
 | 
			
		||||
 | 
			
		||||
        comparison = self.comparison_class(
 | 
			
		||||
            EventPage._meta.get_field('categories'), christmas_event, saint_patrick_event
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        self.assertTrue(comparison.is_field)
 | 
			
		||||
        self.assertFalse(comparison.is_child_relation)
 | 
			
		||||
        self.assertEqual(comparison.field_label(), "Categories")
 | 
			
		||||
        self.assertFalse(comparison.has_changed())
 | 
			
		||||
        self.assertEqual(comparison.htmldiff(), 'Meetings, Parties')
 | 
			
		||||
        self.assertIsInstance(comparison.htmldiff(), SafeText)
 | 
			
		||||
 | 
			
		||||
    def test_has_changed(self):
 | 
			
		||||
        christmas_event = EventPage.objects.get(url_path='/home/events/christmas/')
 | 
			
		||||
        saint_patrick_event = EventPage.objects.get(url_path='/home/events/saint-patrick/')
 | 
			
		||||
 | 
			
		||||
        christmas_event.categories = [self.meetings_category, self.parties_category]
 | 
			
		||||
        saint_patrick_event.categories = [self.meetings_category, self.holidays_category]
 | 
			
		||||
 | 
			
		||||
        comparison = self.comparison_class(
 | 
			
		||||
            EventPage._meta.get_field('categories'), christmas_event, saint_patrick_event
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        self.assertTrue(comparison.has_changed())
 | 
			
		||||
        self.assertEqual(comparison.htmldiff(), 'Meetings, <span class="deletion">Parties</span>, <span class="addition">Holidays</span>')
 | 
			
		||||
        self.assertIsInstance(comparison.htmldiff(), SafeText)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TestForeignObjectComparison(TestCase):
 | 
			
		||||
    comparison_class = compare.ForeignObjectComparison
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue