def test_update_boolean(self): data = self.indentical_datas.copy() data["yesorno"] = "" form = FooModelForm(user=self.user, instance=self.foo, data=data) form.save() self.assertEqual(Entry.objects.all().count(), 1) entry = Entry.objects.all()[0] changed_data = entry.changeddata_set.all()[0] self.check_changed_data(changed_data, "Check for yes", "Yes", "No")
def test_get_history_entries(self): self.assertEqual(self.foo.get_history_entries().count(), 0) data = self.indentical_datas.copy() data["name"] = "Another name" form = FooModelForm(user=self.user, instance=self.foo, data=data) form.save() self.assertEqual(self.foo.get_history_entries().count(), 1) entry = self.foo.get_history_entries()[0] self.assertEqual(entry.content_object, self.foo) self.assertEqual(entry.changeddata_set.all().count(), 1)
def test_add(self): data = self.indentical_datas.copy() form = FooModelForm(user=self.user, instance=None, data=data) form.save() self.assertEqual(Entry.objects.all().count(), 1) entry = Entry.objects.all()[0] self.assertEqual(entry.changeddata_set.all().count(), 0) self.assertTrue(entry.is_addition()) self.assertFalse(entry.is_change()) self.assertEqual(entry.short_message, "User TEST has added 'Foo Test foo'")
def test_update_foreign_key(self): data = self.indentical_datas.copy() # Save another value on the foreignKey data["bar"] = Bar.objects.get(name="rab").id form = FooModelForm(user=self.user, instance=self.foo, data=data) form.save() self.assertEqual(Entry.objects.all().count(), 1) entry = Entry.objects.all()[0] self.assertTrue(entry.is_change()) self.assertFalse(entry.is_addition()) self.assertFalse(entry.is_deletion()) self.assertEqual(entry.changeddata_set.all().count(), 1) changed_data = entry.changeddata_set.all()[0] self.check_changed_data(changed_data, "Name of the bar", "bar", "rab") # Save an empty value on the foreignKey del data["bar"] form = FooModelForm(user=self.user, instance=self.foo, data=data) form.save() self.assertEqual(Entry.objects.all().count(), 2) entry = Entry.objects.all()[0] self.assertEqual(entry.changeddata_set.all().count(), 1) changed_data = entry.changeddata_set.all()[0] self.check_changed_data(changed_data, "Name of the bar", "rab", "Empty")
def test_update_choicefield(self): data = self.indentical_datas.copy() # Save another value on the choiceField data["choose_somthing"] = "nok" form = FooModelForm(user=self.user, instance=self.foo, data=data) form.save() self.assertEqual(Entry.objects.all().count(), 1) entry = Entry.objects.all()[0] self.assertTrue(entry.is_change()) self.assertFalse(entry.is_addition()) self.assertFalse(entry.is_deletion()) self.assertEqual(entry.changeddata_set.all().count(), 1) changed_data = entry.changeddata_set.all()[0] self.check_changed_data(changed_data, "Make your choice", "It's OK", "It's not OK")
def test_update_filefield(self): data = self.indentical_datas.copy() upload_file = open("images/poney.jpeg", "rb") file_dict = { "picture": SimpleUploadedFile(upload_file.name, upload_file.read()) } form = FooModelForm(user=self.user, instance=self.foo, data=data, files=file_dict) self.assertTrue(form.is_valid()) form.save() self.assertEqual(Entry.objects.all().count(), 1) entry = Entry.objects.all()[0] self.assertEqual(entry.changeddata_set.all().count(), 1) changed_data = entry.changeddata_set.all()[0] self.check_changed_data(changed_data, "Picture", None, "poney.jpeg") upload_file = open("images/poney-bw.jpg", "rb") file_dict = { "picture": SimpleUploadedFile(upload_file.name, upload_file.read()) } form = FooModelForm(user=self.user, instance=self.foo, data=data, files=file_dict) self.assertTrue(form.is_valid()) form.save() self.assertEqual(Entry.objects.all().count(), 2) entry = Entry.objects.all()[0] self.assertEqual(entry.changeddata_set.all().count(), 1) changed_data = entry.changeddata_set.all()[0] self.check_changed_data(changed_data, "Picture", "poney.jpeg", "poney-bw.jpg") os.remove("poney.jpeg") os.remove("poney-bw.jpg")
def test_get_history_user(self): form = FooModelForm(user=self.user, instance=None, data=self.indentical_datas) self.assertEqual(form.get_history_user(), self.user) form = FooModelFormRequest(request=None, instance=None, data=self.indentical_datas) self.assertEqual(form.get_history_user(), None) request = RequestFactory() request.user = self.user form = FooModelFormRequest(request=request, instance=None, data=self.indentical_datas) self.assertEqual(form.get_history_user(), self.user)
def test_no_change(self): form = FooModelForm(user=self.user, instance=self.foo, data=self.indentical_datas) form.save() self.assertEqual(Entry.objects.all().count(), 0)
def test_update_manytomany(self): data = self.indentical_datas.copy() # Save another multiple values on M2M data["baz"] = [b.id for b in Baz.objects.filter(name__startswith="b")] form = FooModelForm(user=self.user, instance=self.foo, data=data) form.save() self.assertEqual(Entry.objects.all().count(), 1) entry = Entry.objects.all()[0] self.assertTrue(entry.is_change()) self.assertFalse(entry.is_addition()) self.assertFalse(entry.is_deletion()) self.assertEqual(entry.changeddata_set.all().count(), 1) changed_data = entry.changeddata_set.all()[0] self.check_changed_data(changed_data, "Select some baz", "baz, zab, bza", "baz, bza") # Save a single object on M2M data["baz"] = [Baz.objects.get(name="zab").id] form = FooModelForm(user=self.user, instance=self.foo, data=data) form.save() self.assertEqual(Entry.objects.all().count(), 2) entry = Entry.objects.all()[0] changed_data = entry.changeddata_set.all()[0] self.assertEqual(entry.changeddata_set.all().count(), 1) self.check_changed_data(changed_data, "Select some baz", "baz, bza", "zab") # Save an empty value on M2M del data["baz"] form = FooModelForm(user=self.user, instance=self.foo, data=data) form.save() self.assertEqual(Entry.objects.all().count(), 3) entry = Entry.objects.all()[0] self.assertEqual(entry.changeddata_set.all().count(), 1) changed_data = entry.changeddata_set.all()[0] self.check_changed_data(changed_data, "Select some baz", "zab", "Empty")