def test_media_aggregation(self): r = Rich(name='Test', slug='test', content='Hey check this out: %s' % self.youtube_url) r.save() am_queryset = AggregateMedia.objects.all() self.assertEqual(am_queryset.count(), 1) aggregated_object = am_queryset[0] self.assertEqual(aggregated_object.url, self.youtube_url) self.assertEqual(aggregated_object.media, StoredOEmbed.objects.get(match=self.youtube_url)) self.assertQuerysetEqual(r.media.all(), am_queryset) self.assertQuerysetEqual(r.videos.all(), am_queryset) self.assertQuerysetEqual(r.photos.all(), []) r.content = 'Whoa i changed my mind, you should check this out: %s' % self.flickr_url r.save() am_queryset = AggregateMedia.objects.all() # the youtube one sticks around, but records from the rel table are killed self.assertEqual(am_queryset.count(), 2) # the flickr embed is there aggregated_object = am_queryset.get(url=self.flickr_url) # check that the flickr aggregated object GFKs to the StoredOEmbed self.assertEqual(aggregated_object.media, StoredOEmbed.objects.get(match=self.flickr_url)) # the m2m fields should all be cleared out now self.assertQuerysetEqual(r.media.all(), am_queryset.filter(url=self.flickr_url)) self.assertQuerysetEqual(r.videos.all(), []) self.assertQuerysetEqual(r.photos.all(), am_queryset.filter(url=self.flickr_url))
def test_internal_media_aggregation(self): category1 = Category.objects.get(pk=1) r = Rich(name='Container', slug='container', content='Check this out: %s' % self.category_url) r.save() am_queryset = AggregateMedia.objects.all() self.assertEqual(am_queryset.count(), 1) aggregated_object = am_queryset[0] self.assertEqual(aggregated_object.url, self.category_url) self.assertEqual(aggregated_object.media, category1) # gfk to actual category self.assertQuerysetEqual(r.media.all(), am_queryset) self.assertQuerysetEqual(r.videos.all(), []) self.assertQuerysetEqual(r.photos.all(), am_queryset)
def test_media_aggregation(self): r = Rich(name='Test', slug='test', content='Hey check this out: %s' % self.youtube_url) r.save() am_queryset = AggregateMedia.objects.all() self.assertEqual(am_queryset.count(), 1) aggregated_object = am_queryset[0] self.assertEqual(aggregated_object.url, self.youtube_url) self.assertEqual(aggregated_object.media, StoredOEmbed.objects.get(match=self.youtube_url)) self.assertQuerysetEqual(r.media.all(), am_queryset) self.assertQuerysetEqual(r.videos.all(), am_queryset) self.assertQuerysetEqual(r.photos.all(), []) r.content = 'Whoa i changed my mind, you should check this out: %s' % self.flickr_url r.save() am_queryset = AggregateMedia.objects.all() # the youtube one sticks around, but records from the rel table are killed self.assertEqual(am_queryset.count(), 2) # the flickr embed is there aggregated_object = am_queryset.get(url=self.flickr_url) # check that the flickr aggregated object GFKs to the StoredOEmbed self.assertEqual(aggregated_object.media, StoredOEmbed.objects.get(match=self.flickr_url)) # the m2m fields should all be cleared out now self.assertQuerysetEqual(r.media.all(), am_queryset.filter(url=self.flickr_url)) self.assertQuerysetEqual(r.videos.all(), []) self.assertQuerysetEqual(r.photos.all(), am_queryset.filter(url=self.flickr_url)) r.content = 'Just text please' r.save() self.assertQuerysetEqual(r.media.all(), []) self.assertQuerysetEqual(r.videos.all(), []) self.assertQuerysetEqual(r.photos.all(), [])