def test_m2m_deserialization_with_missing_objects(self): serialized_articles = Serializer().serialize(Article.objects.all()) article = Deserializer(serialized_articles).next() Article.objects.all().delete() Category.objects.all().delete() article.save() self.assertEqual(Article.objects.count(), 1) article = Article.objects.filter()[0] self.assertEqual(article.categories.count(), 0)
def test_repeated_m2m_deserialization(self): serialized_articles = Serializer().serialize(Article.objects.all()) article = Deserializer(serialized_articles).next() Article.objects.all().delete() article.save() self.assertEqual(Article.objects.count(), 1) article = Deserializer(serialized_articles).next() article.save() self.assertEqual(Article.objects.count(), 1)
def test_category_deserialization(self): Category.objects.all().delete() Category.objects.create(name="Foo", slug="foo") serialzed_categories = Serializer().serialize(Category.objects.all()) category = Deserializer(serialzed_categories).next() category2 = Deserializer(serialzed_categories).next() Category.objects.all().delete() category.save() self.assertEqual(Category.objects.count(), 1) # saving an identical object shouldn't create another instance category2.save() self.assertEqual(Category.objects.count(), 1)