def test_system_importer_file_csv_complete_overwrite_upload_post(self):
        """ test importer view """

        # compare before action - systems / attributes
        self = pre_compare_system_and_attributes_csv(self)

        # change config
        set_config_complete_attributes_csv()
        # change config
        set_config_complete_overwrite_csv()

        # login testuser
        self.client.login(username='******', password='******')
        # open upload file
        systemcsv = open(os.path.join(BASE_DIR, 'dfirtrack_main/tests/system_importer/system_importer_file_csv_files/system_importer_file_csv_testfile_41_complete_overwrite.csv'), 'r')
        # create post data
        data_dict = {
            'systemcsv': systemcsv,
        }
        # create url
        destination = urllib.parse.quote('/system/', safe='/')
        # get response
        response = self.client.post('/system/importer/file/csv/upload/', data_dict)
        # get messages
        messages = list(get_messages(response.wsgi_request))
        # compare - meta
        self.assertRedirects(response, destination, status_code=302, target_status_code=200)
        # compare - messages
        self = compare_messages_csv(self, messages)
        # compare - systems / attributes
        self = compare_system_and_attributes_csv(self)
        # close file
        systemcsv.close()
    def test_system_importer_file_csv_complete_overwrite_instant(self):
        """ test importer view """

        # compare before action - systems / attributes
        self = pre_compare_system_and_attributes_csv(self)

        # change config
        set_csv_import_filename('system_importer_file_csv_testfile_41_complete_overwrite.csv')
        # change config
        set_config_complete_attributes_csv()
        # change config
        set_config_complete_overwrite_csv()

        # login testuser
        self.client.login(username='******', password='******')
        # create url
        destination = urllib.parse.quote('/system/', safe='/')
        # get response
        response = self.client.get('/system/importer/file/csv/instant/', follow=True)
        # get messages
        messages = list(get_messages(response.wsgi_request))
        # compare - meta
        self.assertRedirects(response, destination, status_code=302, target_status_code=200)
        # compare - messages
        self = compare_messages_csv(self, messages)
        # compare - systems / attributes
        self = compare_system_and_attributes_csv(self)
예제 #3
0
    def test_system_importer_file_csv_complete_preserve_cron(self):
        """test importer view"""

        # compare before action - systems / attributes
        self = pre_compare_system_and_attributes_csv(self)

        # change config
        set_csv_import_filename(
            'system_importer_file_csv_testfile_42_complete_preserve.csv'
        )
        # change config
        set_config_complete_attributes_csv()
        # change config
        set_config_complete_preserve_csv()

        # mock timezone.now()
        t_1 = datetime(2021, 3, 20, 18, 30, tzinfo=timezone.utc)
        with patch.object(timezone, 'now', return_value=t_1):

            # execute cron job / scheduled task
            system_cron()

        # login testuser
        self.client.login(
            username='******',
            password='******',
        )
        # get response
        response = self.client.get('/system/')
        # get messages
        messages = list(get_messages(response.wsgi_request))
        # compare - user 1
        self.assertEqual(
            str(response.context['user']),
            'testuser_system_importer_file_csv_complete_preserve',
        )
        self.assertEqual(
            messages[0].message,
            'System CSV importer: created: 0 | updated: 3 | skipped: 0 | multiple: 0 [2021-03-20 18:30:00 - 2021-03-20 18:30:00]',
        )
        self.assertEqual(messages[0].level_tag, 'success')
        # switch user context
        self.client.logout()
        self.client.login(username='******', password='******')
        # get response
        response = self.client.get('/system/')
        # get messages
        messages = list(get_messages(response.wsgi_request))
        # compare - user 2
        self.assertEqual(str(response.context['user']), 'message_user')
        self.assertEqual(
            messages[0].message,
            'System CSV importer: created: 0 | updated: 3 | skipped: 0 | multiple: 0 [2021-03-20 18:30:00 - 2021-03-20 18:30:00]',
        )
        self.assertEqual(messages[0].level_tag, 'success')
        # compare - systems / attributes
        self = compare_system_and_attributes_csv(self)
    def test_system_importer_file_csv_complete_overwrite_cron(self):
        """test importer view"""

        # compare before action - systems / attributes
        self = pre_compare_system_and_attributes_csv(self)

        # change config
        set_csv_import_filename(
            'system_importer_file_csv_testfile_41_complete_overwrite.csv')
        # change config
        set_config_complete_attributes_csv()
        # change config
        set_config_complete_overwrite_csv()

        # mock timezone.now()
        t_1 = datetime(2021, 3, 17, 19, 30, tzinfo=timezone.utc)
        with patch.object(timezone, 'now', return_value=t_1):

            # execute cron job / scheduled task
            system_cron()

        # login testuser
        self.client.login(
            username='******',
            password='******',
        )
        # get response
        response = self.client.get('/system/')
        # get messages
        messages = list(get_messages(response.wsgi_request))
        # compare - user 1
        self.assertEqual(
            str(response.context['user']),
            'testuser_system_importer_file_csv_complete_overwrite',
        )
        self.assertEqual(
            messages[0].message,
            'System CSV importer: created: 0 | updated: 3 | skipped: 0 | multiple: 0 [2021-03-17 19:30:00 - 2021-03-17 19:30:00]',
        )
        self.assertEqual(messages[0].level_tag, 'success')
        # switch user context
        self.client.logout()
        self.client.login(username='******',
                          password='******')
        # get response
        response = self.client.get('/system/')
        # get messages
        messages = list(get_messages(response.wsgi_request))
        # compare - user 2
        self.assertEqual(str(response.context['user']), 'message_user')
        self.assertEqual(
            messages[0].message,
            'System CSV importer: created: 0 | updated: 3 | skipped: 0 | multiple: 0 [2021-03-17 19:30:00 - 2021-03-17 19:30:00]',
        )
        self.assertEqual(messages[0].level_tag, 'success')
        # compare - systems / attributes
        self = compare_system_and_attributes_csv(self)
예제 #5
0
    def test_system_importer_file_csv_complete_attributes_csv_cron(self):
        """ test importer view """

        # change config
        set_csv_import_filename(
            'system_importer_file_csv_testfile_07_complete_csv.csv')
        # change config
        set_config_complete_attributes_csv()

        # mock timezone.now()
        t_4 = datetime(2021, 3, 6, 18, 14, tzinfo=timezone.utc)
        with patch.object(timezone, 'now', return_value=t_4):

            # execute cron job / scheduled task
            system_cron()

        # login testuser
        self.client.login(
            username=
            '******',
            password='******')
        # get response
        response = self.client.get('/system/')
        # get messages
        messages = list(get_messages(response.wsgi_request))
        # compare - user 1
        self.assertEqual(
            str(response.context['user']),
            'testuser_system_importer_file_csv_complete_attributes_csv')
        self.assertEqual(
            messages[0].message,
            'System CSV importer: created: 3 | updated: 0 | skipped: 0 | multiple: 0 [2021-03-06 18:14:00 - 2021-03-06 18:14:00]'
        )
        self.assertEqual(messages[0].level_tag, 'success')
        # switch user context
        self.client.logout()
        self.client.login(username='******',
                          password='******')
        # get response
        response = self.client.get('/system/')
        # get messages
        messages = list(get_messages(response.wsgi_request))
        # compare - user 2
        self.assertEqual(str(response.context['user']), 'message_user')
        self.assertEqual(
            messages[0].message,
            'System CSV importer: created: 3 | updated: 0 | skipped: 0 | multiple: 0 [2021-03-06 18:14:00 - 2021-03-06 18:14:00]'
        )
        self.assertEqual(messages[0].level_tag, 'success')
        # compare - systems / attributes
        self = compare_system_and_attributes_csv(self)