def test_repeated_saves_dont_explode(self): # saving the same data multiple times should not increase the size of the set. postdata = self._generate_post_data(self.pdm) postdata['1_1-1-entry'] = 'testing' # change something postdata['1_1-TOTAL_FORMS'] = u'2' for pronoun, formset in create_pronoun_formset(self.pdm, postdata): saved = save_pronoun_formset(self.pdm, pronoun, formset, self.editor) saved = save_pronoun_formset(self.pdm, pronoun, formset, self.editor) saved = save_pronoun_formset(self.pdm, pronoun, formset, self.editor) # should now have 4 lexical items assert Lexicon.objects.count() == 4, "expecting 4" # CHECK VALUES.... for pron in self.pdm.pronoun_set.all(): entries = pron.entries.all().order_by('id') if pron.id == 1: assert len(entries) == 2 assert entries[0].entry == 'pron-{0}'.format(pron.id) assert entries[0].annotation == 'ann-{0}'.format(pron.id) # the new lexical entry! assert entries[1].entry == 'testing' assert entries[1].annotation == '' else: assert len(entries) == 1 assert entries[0].entry == 'pron-{0}'.format(pron.id) assert entries[0].annotation == 'ann-{0}'.format(pron.id)
def test_save_with_addition(self): postdata = self._generate_post_data(self.pdm) postdata['1_1-1-entry'] = 'testing' # change something postdata['1_1-TOTAL_FORMS'] = u'2' for pronoun, formset in create_pronoun_formset(self.pdm, postdata): save_pronoun_formset(self.pdm, pronoun, formset, self.editor) # should now have 4 lexical items assert Lexicon.objects.count() == 4, "expecting 4" # CHECK VALUES.... for pron in self.pdm.pronoun_set.all(): entries = pron.entries.all().order_by('id') if pron.id == 1: assert len(entries) == 2 assert entries[0].entry == 'pron-{0}'.format(pron.id) assert entries[0].annotation == 'ann-{0}'.format(pron.id) # the new lexical entry! assert entries[1].entry == 'testing' assert entries[1].annotation == '' else: assert len(entries) == 1 assert entries[0].entry == 'pron-{0}'.format(pron.id) assert entries[0].annotation == 'ann-{0}'.format(pron.id)
def test_save(self): postdata = self._generate_post_data(self.pdm) for pronoun, formset in create_pronoun_formset(self.pdm, postdata): save_pronoun_formset(self.pdm, pronoun, formset, self.editor) assert Lexicon.objects.count() == 3, "expecting 3"
def test_save_with_update(self): postdata = self._generate_post_data(self.pdm) postdata['1_1-0-entry'] = 'testing' # change something for pronoun, formset in create_pronoun_formset(self.pdm, postdata): save_pronoun_formset(self.pdm, pronoun, formset, self.editor) # should still only have 3 lexical items assert Lexicon.objects.count() == 3, "expecting 3" # ...but the form of pk 1 should have changed.. lex = Lexicon.objects.get(pk=1) assert lex.entry == 'testing'
def test_save(self): postdata = self._generate_post_data(self.pdm) for pronoun, formset in create_pronoun_formset(self.pdm, postdata): saved = save_pronoun_formset(self.pdm, pronoun, formset, self.editor) assert Lexicon.objects.count() == 3, "expecting 3"
def edit(request, paradigm_id): pdm = get_object_or_404(Paradigm, pk=paradigm_id) paradigm_form = ParadigmForm(request.POST or None, instance=pdm, prefix='pdm') pronoun_form = create_pronoun_formset(pdm, request.POST or None) # save if valid. if pronoun_formsets_are_valid(pronoun_form) and paradigm_form.is_valid(): pdm = paradigm_form.save(commit=False) pdm.editor = request.user pdm.save() for pronoun, formset in pronoun_form: save_pronoun_formset(pdm, pronoun, formset, request.user) return redirect('pronouns:detail', paradigm_id=pdm.id) # the initial view and the error view return render_to_response('pronouns/edit.html', { 'paradigm': pdm, 'paradigm_form': paradigm_form, 'pronouns': sort_formset(pronoun_form), }, context_instance=RequestContext(request))
def test_save_with_update(self): postdata = self._generate_post_data(self.pdm) postdata['1_1-0-entry'] = 'testing' # change something for pronoun, formset in create_pronoun_formset(self.pdm, postdata): saved = save_pronoun_formset(self.pdm, pronoun, formset, self.editor) # should still only have 3 lexical items assert Lexicon.objects.count() == 3, "expecting 3" # ...but the form of pk 1 should have changed.. lex = Lexicon.objects.get(pk=1) assert lex.entry == 'testing'
def edit(request, paradigm_id): pdm = get_object_or_404(Paradigm, pk=paradigm_id) paradigm_form = ParadigmForm(request.POST or None, instance=pdm, prefix='pdm') pronoun_form = create_pronoun_formset(pdm, request.POST or None) # save if valid. if pronoun_formsets_are_valid(pronoun_form) and paradigm_form.is_valid(): pdm = paradigm_form.save(commit=False) pdm.editor = request.user pdm.save() for pronoun, formset in pronoun_form: save_pronoun_formset(pdm, pronoun, formset, request.user) return redirect('pronouns:detail', paradigm_id=pdm.id) # the initial view and the error view return render( request, 'pronouns/edit.html', { 'paradigm': pdm, 'paradigm_form': paradigm_form, 'pronouns': sort_formset(pronoun_form), })
def test_save_with_delete(self): postdata = self._generate_post_data(self.pdm) postdata['1_1-0-entry'] = u'' for pronoun, formset in create_pronoun_formset(self.pdm, postdata): saved = save_pronoun_formset(self.pdm, pronoun, formset, self.editor) # should now have 2 lexical items assert Lexicon.objects.count() == 2, "expecting 2" # should have an empty pronoun set for pronoun 1 assert Pronoun.objects.get(pk=1).entries.count() == 0 # should have deleted the lexical object 1 with self.assertRaises(Lexicon.DoesNotExist): assert Lexicon.objects.get(pk=1)