Exemplo n.º 1
0
    def test_system_importer_file_csv_form_empty(self):
        """test minimum form requirements / INVALID"""

        # get object
        form = SystemImporterFileCsvForm(data={})
        # compare
        self.assertFalse(form.is_valid())
Exemplo n.º 2
0
    def test_system_importer_file_csv_systemcsv_form_label(self):
        """test form label"""

        # get object
        form = SystemImporterFileCsvForm()
        # compare
        self.assertEqual(form.fields['systemcsv'].label,
                         'CSV with systems (*)')
Exemplo n.º 3
0
    def test_system_importer_file_csv_systemcsv_form_filled(self):
        """ test minimum form requirements / VALID """

        # get file
        upload_csv = open(
            'dfirtrack_main/tests/system_importer/system_importer_file_csv_files/system_importer_file_csv_testfile_01_minimal_double_quotation.csv',
            'rb')
        # create dictionaries
        data_dict = {}
        file_dict = {
            'systemcsv': SimpleUploadedFile(upload_csv.name,
                                            upload_csv.read()),
        }
        # get object
        form = SystemImporterFileCsvForm(
            data=data_dict,
            files=file_dict,
        )
        # close file
        upload_csv.close()
        # compare
        self.assertTrue(form.is_valid())
Exemplo n.º 4
0
def system_upload(request):
    """  CSV import via upload form, file is on user system  """

    # POST request
    if request.method == "POST":

        # get systemcsv from request (no submitted file only relevant for tests, normally form enforces file submitting)
        check_systemcsv = request.FILES.get('systemcsv', False)

        # check request for systemcsv (file submitted - no submitted file only relevant for tests, normally form enforces file submitting)
        if check_systemcsv:

            # get config model
            model = SystemImporterFileCsvConfigModel.objects.get(
                system_importer_file_csv_config_name=
                'SystemImporterFileCsvConfig')
            """ check config attributes """

            # call check function
            stop_system_importer_file_csv = check_config_attributes(
                model, request)

            # leave system_importer_file_csv if config caused errors
            if stop_system_importer_file_csv:
                # return to 'system_list'
                return redirect(reverse('system_list'))
            """ main function """

            # call CSV importer
            system_handler(request, True)

        # check request for systemcsv (file not submitted - no submitted file only relevant for tests, normally form enforces file submitting)
        else:

            # get empty form
            form = SystemImporterFileCsvForm()

            # show form again
            return render(
                request, 'dfirtrack_main/system/system_importer_file_csv.html',
                {
                    'form': form,
                })

        # return to 'system_list'
        return redirect(reverse('system_list'))

    # GET request
    else:

        # get config model
        model = SystemImporterFileCsvConfigModel.objects.get(
            system_importer_file_csv_config_name='SystemImporterFileCsvConfig')
        """ check config attributes """

        # call check function
        stop_system_importer_file_csv = check_config_attributes(model, request)

        # leave system_importer_file_csv if config caused errors
        if stop_system_importer_file_csv:
            # return to 'system_list'
            return redirect(reverse('system_list'))

        # show warning if existing systems will be updated
        if not model.csv_skip_existing_system:
            # call message
            messages.warning(request,
                             'WARNING: Existing systems will be updated!')

        # get empty form
        form = SystemImporterFileCsvForm()

        # call logger
        debug_logger(str(request.user), ' SYSTEM_IMPORTER_FILE_CSV_ENTERED')

    # show form
    return render(request,
                  'dfirtrack_main/system/system_importer_file_csv.html', {
                      'form': form,
                  })