def test_workflow_default_artifact_name_form_filled_incorrect(self): """formset test - INVALID""" # get object artifacttype_id = Artifacttype.objects.get( artifacttype_name='artifacttype_1').artifacttype_id artfactstatus_id = Artifactstatus.objects.get( artifactstatus_name='10_needs_analysis').artifactstatus_id artfactpriority_id = Artifactpriority.objects.get( artifactpriority_name='10_low').artifactpriority_id # create form form = WorkflowDefaultArtifactAttributesFormSet( data={ 'form-TOTAL_FORMS': '2', 'form-INITIAL_FORMS': '0', 'form-0-artifacttype': artifacttype_id, 'form-0-artifact_default_name': 'default_name_1', 'form-0-artifact_default_status': artfactstatus_id, 'form-0-artifact_default_priority': artfactpriority_id, 'form-1-artifacttype': -1, 'form-1-artifact_default_name': 'default_name_2', 'form-1-artifact_default_status': artfactstatus_id, 'form-1-artifact_default_priority': artfactpriority_id, }) # compare self.assertFalse(form.is_valid())
def test_workflow_default_artifact_name_form_empty(self): """formset test - INVALID""" # get object form = WorkflowDefaultArtifactAttributesFormSet(data={}) # compare self.assertFalse(form.is_valid())
def post(self, request, *args, **kwargs): # parse forms form = self.form_class(request.POST) artifacttypes_formset = WorkflowDefaultArtifactAttributesFormSet( request.POST, prefix='artifact' ) tasknames_formset = WorkflowDefaultTasknameAttributesFormSet( request.POST, prefix='taskname' ) if ( not tasknames_formset.has_changed() and not artifacttypes_formset.has_changed() ): form.errors[ 'General' ] = ': You need to configure a taskname or artifacttype.' # check default form and custom artifacttypes_formset if ( form.is_valid() and artifacttypes_formset.is_valid() and tasknames_formset.is_valid() ): workflow = form.save(commit=False) workflow.workflow_created_by_user_id = request.user workflow.workflow_modified_by_user_id = request.user workflow.save() form.save_m2m() # create WorkflowDefaultArtifactAttributes mapping for every sub-form for artifacttypes_form in artifacttypes_formset: if artifacttypes_form.is_valid() and artifacttypes_form.has_changed(): workflow_artifacttype = artifacttypes_form.save(commit=False) workflow_artifacttype.workflow = workflow workflow_artifacttype.save() # create WorkflowDefaultTasknameAttributes for every sub-form for tasknames_form in tasknames_formset: if tasknames_form.is_valid() and tasknames_form.has_changed(): workflow_taskname = tasknames_form.save(commit=False) workflow_taskname.workflow = workflow workflow_taskname.save() workflow.logger(str(request.user), " WORKFLOW_ADD_EXECUTED") messages.success(request, 'Workflow added') return redirect(reverse('workflow_detail', args=(workflow.workflow_id,))) else: return render( request, self.template_name, { 'form': form, 'title': 'Add', 'artifacttypes_formset': artifacttypes_formset, 'tasknames_formset': tasknames_formset, }, )
def post(self, request, *args, **kwargs): workflow = self.get_object() # parse forms form = self.form_class(request.POST, instance=workflow) # filter artifacttypes based on workflow artifacttypes_formset = WorkflowDefaultArtifactAttributesFormSet( request.POST, prefix='artifact' ) tasknames_formset = WorkflowDefaultTasknameAttributesFormSet( request.POST, prefix='taskname' ) # check default form and custom artifacttypes_formset if ( form.is_valid() and artifacttypes_formset.is_valid() and tasknames_formset.is_valid() ): workflow = form.save(commit=False) workflow.workflow_modified_by_user_id = request.user workflow.save() form.save_m2m() # create WorkflowDefaultArtifactname mapping for every sub-form for artifacttypes_form in artifacttypes_formset: if artifacttypes_form.is_valid() and artifacttypes_form.has_changed(): workflow_artifacttype = artifacttypes_form.save(commit=False) workflow_artifacttype.workflow = workflow workflow_artifacttype.save() # create WorkflowDefaultTasknameAttributes for every sub-form for tasknames_form in tasknames_formset: if tasknames_form.is_valid() and tasknames_form.has_changed(): workflow_taskname = tasknames_form.save(commit=False) workflow_taskname.workflow = workflow workflow_taskname.save() workflow.logger(str(request.user), " WORKFLOW_EDIT_EXECUTED") messages.success(request, 'Workflow edited') return redirect(reverse('workflow_detail', args=(workflow.workflow_id,))) else: return render( request, self.template_name, { 'form': form, 'title': 'Edit', 'artifacttypes_formset': artifacttypes_formset, 'tasknames_formset': tasknames_formset, }, )