def test_system_creator_form_empty(self): """ test minimum form requirements / INVALID """ # get object form = SystemCreatorForm(data={}) # compare self.assertFalse(form.is_valid())
def test_system_creator_systemlist_form_filled(self): """ test minimum form requirements / INVALID """ # get object form = SystemCreatorForm(data={ 'systemlist': 'system_1', }) # compare self.assertFalse(form.is_valid())
def test_system_creator_systemstatus_form_filled(self): """ test minimum form requirements / VALID """ # get object systemstatus_id = Systemstatus.objects.get( systemstatus_name='systemstatus_1').systemstatus_id # get object form = SystemCreatorForm(data={ 'systemlist': 'system_1', 'systemstatus': systemstatus_id, }) # compare self.assertTrue(form.is_valid())
def test_system_creator_systemlist_multi_line(self): """ test for multiple line input """ # get object systemstatus_id = Systemstatus.objects.get( systemstatus_name='systemstatus_1').systemstatus_id # get object form = SystemCreatorForm( data={ 'systemlist': 'system_1\nsystem_2\nsystem_3', 'systemstatus': systemstatus_id, }) # compare self.assertTrue(form.is_valid())
def test_system_creator_analysisstatus_form_label(self): """ test form label """ # get object form = SystemCreatorForm() # compare self.assertEqual(form.fields['analysisstatus'].label, 'Analysisstatus')
def system_creator(request): """ function to create many systems at once (helper function to call the real function) """ # form was valid to post if request.method == "POST": # get objects from request object request_post = request.POST request_user = request.user # show immediate message for user messages.success(request, 'System creator started') # call async function async_task( "dfirtrack_main.creator.system_creator.system_creator_async", request_post, request_user, ) # return directly to system list return redirect(reverse('system_list')) # show empty form else: form = SystemCreatorForm(initial={ 'systemstatus': 2, 'analysisstatus': 1, }) # call logger debug_logger(str(request.user), ' SYSTEM_CREATOR_ENTERED') return render(request, 'dfirtrack_main/system/system_creator.html', {'form': form})
def test_system_creator_location_form_label(self): """ test form label """ # get object form = SystemCreatorForm() # compare self.assertEqual(form.fields['location'].label, 'Location')
def test_system_creator_osarch_form_label(self): """ test form label """ # get object form = SystemCreatorForm() # compare self.assertEqual(form.fields['osarch'].label, 'Osarch')
def test_system_creator_systemlist_form_label(self): """ test form label """ # get object form = SystemCreatorForm() # compare self.assertEqual(form.fields['systemlist'].label, 'System list (*)')
def system_creator(request): """ function to create many systems at once (helper function to call the real function) """ # form was valid to post if request.method == "POST": request_post = request.POST request_user = request.user # call async function async_task( "dfirtrack_main.creator.system_creator.system_creator_async", request_post, request_user, ) return redirect(reverse('system_list')) # show empty form else: form = SystemCreatorForm(initial={ 'systemstatus': 2, 'analysisstatus': 1, }) # call logger debug_logger(str(request.user), " SYSTEM_CREATOR_ENTERED") return render(request, 'dfirtrack_main/system/system_creator.html', {'form': form})
def test_system_creator_dnsname_form_label(self): """ test form label """ # get object form = SystemCreatorForm() # compare self.assertEqual(form.fields['dnsname'].label, 'Dnsname')
def test_system_creator_tag_form_label(self): """ test form label """ # get object form = SystemCreatorForm() # compare self.assertEqual(form.fields['tag'].label, 'Tags')
def test_system_creator_case_form_label(self): """ test form label """ # get object form = SystemCreatorForm() # compare self.assertEqual(form.fields['case'].label, 'Cases')
def test_system_creator_contact_form_filled(self): """ test additional form content """ # get object systemstatus_id = Systemstatus.objects.get( systemstatus_name='systemstatus_1').systemstatus_id # get object contact_id = Contact.objects.get(contact_name='contact_1').contact_id # get object form = SystemCreatorForm( data={ 'systemlist': 'system_1', 'systemstatus': systemstatus_id, 'contact': contact_id, }) # compare self.assertTrue(form.is_valid())
def test_system_creator_osarch_form_filled(self): """ test additional form content """ # get object systemstatus_id = Systemstatus.objects.get( systemstatus_name='systemstatus_1').systemstatus_id # get object osarch_id = Osarch.objects.get(osarch_name='osarch_1').osarch_id # get object form = SystemCreatorForm( data={ 'systemlist': 'system_1', 'systemstatus': systemstatus_id, 'osarch': osarch_id, }) # compare self.assertTrue(form.is_valid())
def test_system_creator_dnsname_form_filled(self): """ test additional form content """ # get object systemstatus_id = Systemstatus.objects.get( systemstatus_name='systemstatus_1').systemstatus_id # get object dnsname_id = Dnsname.objects.get(dnsname_name='dnsname_1').dnsname_id # get object form = SystemCreatorForm( data={ 'systemlist': 'system_1', 'systemstatus': systemstatus_id, 'dnsname': dnsname_id, }) # compare self.assertTrue(form.is_valid())
def test_system_creator_reason_form_filled(self): """ test additional form content """ # get object systemstatus_id = Systemstatus.objects.get( systemstatus_name='systemstatus_1').systemstatus_id # get object reason_id = Reason.objects.get(reason_name='reason_1').reason_id # get object form = SystemCreatorForm( data={ 'systemlist': 'system_1', 'systemstatus': systemstatus_id, 'reason': reason_id, }) # compare self.assertTrue(form.is_valid())
def test_system_creator_os_form_label(self): """ test form label """ # get object form = SystemCreatorForm() # compare self.assertEqual(form.fields['os'].label, 'Operating system') self.assertEqual(form.fields['os'].empty_label, 'Select OS (optional)')
def test_system_creator_serviceprovider_form_label(self): """ test form label """ # get object form = SystemCreatorForm() # compare self.assertEqual(form.fields['serviceprovider'].label, 'Serviceprovider')
def test_system_creator_tag_form_filled(self): """ test additional form content """ # get object systemstatus_id = Systemstatus.objects.get( systemstatus_name='systemstatus_1').systemstatus_id # get object tag_1_id = Tag.objects.get(tag_name='tag_1').tag_id tag_2_id = Tag.objects.get(tag_name='tag_2').tag_id # get object form = SystemCreatorForm( data={ 'systemlist': 'system_1', 'systemstatus': systemstatus_id, 'tag': [tag_1_id, tag_2_id], }) # compare self.assertTrue(form.is_valid())
def test_system_creator_serviceprovider_form_filled(self): """ test additional form content """ # get object systemstatus_id = Systemstatus.objects.get( systemstatus_name='systemstatus_1').systemstatus_id # get object serviceprovider_id = Serviceprovider.objects.get( serviceprovider_name='serviceprovider_1').serviceprovider_id # get object form = SystemCreatorForm( data={ 'systemlist': 'system_1', 'systemstatus': systemstatus_id, 'serviceprovider': serviceprovider_id, }) # compare self.assertTrue(form.is_valid())
def test_system_creator_domain_form_label(self): """ test form label """ # get object form = SystemCreatorForm() # compare self.assertEqual(form.fields['domain'].label, 'Domain') self.assertEqual(form.fields['domain'].empty_label, 'Select domain (optional)')
def test_system_creator_contact_form_label(self): """ test form label """ # get object form = SystemCreatorForm() # compare self.assertEqual(form.fields['contact'].label, 'Contact') self.assertEqual(form.fields['contact'].empty_label, 'Select contact (optional)')
def test_system_creator_osarch_form_label(self): """ test form label """ # get object form = SystemCreatorForm() # compare self.assertEqual(form.fields['osarch'].label, 'OS architecture') self.assertEqual(form.fields['osarch'].empty_label, 'Select OS architecture (optional)')
def test_system_case_form_filled(self): """ test additional form content """ # get object systemstatus_id = Systemstatus.objects.get( systemstatus_name='systemstatus_1').systemstatus_id # get object case_1_id = Case.objects.get(case_name='case_1').case_id case_2_id = Case.objects.get(case_name='case_2').case_id # get object form = SystemCreatorForm( data={ 'systemlist': 'system_1', 'systemstatus': systemstatus_id, 'case': [case_1_id, case_2_id], }) # compare self.assertTrue(form.is_valid())
def test_system_creator_analysisstatus_form_filled(self): """ test additional form content """ # get object systemstatus_id = Systemstatus.objects.get( systemstatus_name='systemstatus_1').systemstatus_id # get object analysisstatus_id = Analysisstatus.objects.get( analysisstatus_name='analysisstatus_1').analysisstatus_id # get object form = SystemCreatorForm( data={ 'systemlist': 'system_1', 'systemstatus': systemstatus_id, 'analysisstatus': analysisstatus_id, }) # compare self.assertTrue(form.is_valid())
def test_system_creator_dnsname_form_label(self): """ test form label """ # get object form = SystemCreatorForm() # compare self.assertEqual(form.fields['dnsname'].label, 'DNS name') self.assertEqual(form.fields['dnsname'].empty_label, 'Select DNS name (optional)')
def test_system_creator_reason_form_label(self): """ test form label """ # get object form = SystemCreatorForm() # compare self.assertEqual(form.fields['reason'].label, 'Reason for investigation') self.assertEqual(form.fields['reason'].empty_label, 'Select reason (optional)')
def system_creator(request): """function to create many systems at once (helper function to call the real function)""" # form was valid to post if request.method == "POST": # get objects from request object request_post = request.POST request_user = request.user # show immediate message for user messages.success(request, 'System creator started') # call async function async_task( "dfirtrack_main.creator.system_creator.system_creator_async", request_post, request_user, ) # return directly to system list return redirect(reverse('system_list')) # show empty form else: # get id of first status objects sorted by name systemstatus = Systemstatus.objects.order_by( 'systemstatus_name')[0].systemstatus_id analysisstatus = Analysisstatus.objects.order_by( 'analysisstatus_name')[0].analysisstatus_id # get all workflows workflows = Workflow.objects.all() # show empty form with default values for convenience and speed reasons form = SystemCreatorForm(initial={ 'systemstatus': systemstatus, 'analysisstatus': analysisstatus, }) # call logger debug_logger(str(request.user), ' SYSTEM_CREATOR_ENTERED') return render( request, 'dfirtrack_main/system/system_creator.html', { 'form': form, 'workflows': workflows }, )
def system_creator_async(request_post, request_user): """ function to create many systems at once """ # call logger debug_logger(str(request_user), " SYSTEM_CREATOR_BEGIN") # exctract lines from systemlist (list results from request object via large text area) lines = request_post.get('systemlist').splitlines() # iterate over lines for line in lines: # skip emtpy lines if line == '': warning_logger(str(request_user), " SYSTEM_CREATOR_ROW_EMPTY") continue # check line for length of string if len(line) > 50: warning_logger(str(request_user), " SYSTEM_CREATOR_LONG_STRING") continue # check for existence of system system = System.objects.filter(system_name = line) if system.count() > 0: # call logger error_logger(str(request_user), " SYSTEM_CREATOR_SYSTEM_EXISTS " + "system_name:" + line) # leave this loop because system with this systemname already exists continue # create form with request data form = SystemCreatorForm(request_post) # create system if form.is_valid(): # don't save form yet system = form.save(commit=False) # set system_name system.system_name = line # set auto values system.system_created_by_user_id = request_user system.system_modified_by_user_id = request_user system.system_modify_time = timezone.now() # save object system.save() # save manytomany form.save_m2m() # call logger system.logger(str(request_user), ' SYSTEM_CREATOR_EXECUTED') # call logger debug_logger(str(request_user), " SYSTEM_CREATOR_END")