def test_m2m_import_with_transactions(self): cat1 = Category.objects.create(name='Cat 1') headers = ['id', 'name', 'categories'] row = [None, 'FooBook', "%s" % cat1.pk] dataset = tablib.Dataset(row, headers=headers) result = self.resource.import_data(dataset, dry_run=True, use_transactions=True) row_diff = result.rows[0].diff fields = self.resource.get_fields() id_field = self.resource.fields['id'] id_diff = row_diff[fields.index(id_field)] #id diff should exists because in rollbacked transaction #FooBook has been saved self.assertTrue(id_diff) category_field = self.resource.fields['categories'] categories_diff = row_diff[fields.index(category_field)] self.assertEqual(strip_tags(categories_diff), force_text(cat1.pk)) #check that it is really rollbacked self.assertFalse(Book.objects.filter(name='FooBook'))
def test_m2m_import_with_transactions(self): resource = BookResource() cat1 = Category.objects.create(name='Cat 1') headers = ['id', 'name', 'categories'] row = [None, 'FooBook', "%s" % cat1.pk] dataset = tablib.Dataset(row, headers=headers) result = resource.import_data( dataset, dry_run=True, use_transactions=True ) row_diff = result.rows[0].diff fields = resource.get_fields() id_field = resource.fields['id'] id_diff = row_diff[fields.index(id_field)] # id diff should exists because in rollbacked transaction # FooBook has been saved self.assertTrue(id_diff) category_field = resource.fields['categories'] categories_diff = row_diff[fields.index(category_field)] self.assertEqual(strip_tags(categories_diff), force_text(cat1.pk)) # check that it is really rollbacked self.assertFalse(Book.objects.filter(name='FooBook'))