コード例 #1
0
    def test_system_importer_file_csv_messages_cron_many_systems_skip(self):
        """ test importer view """

        # create systems
        create_system('system_csv_12_001')
        create_system('system_csv_12_002')
        create_system('system_csv_12_003')

        # change config
        set_csv_import_filename(
            'system_importer_file_csv_testfile_12_messages_many_systems.csv')
        # change config
        set_csv_skip_existing_system(True)

        # mock timezone.now()
        t_7 = datetime(2021, 3, 7, 11, 35, tzinfo=timezone.utc)
        with patch.object(timezone, 'now', return_value=t_7):

            # 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
        self.assertEqual(str(response.context['user']),
                         'testuser_system_importer_file_csv_messages')
        self.assertEqual(
            messages[0].message,
            'System CSV importer: created: 0 | updated: 0 | skipped: 3 | multiple: 0 [2021-03-07 11:35:00 - 2021-03-07 11:35: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
        self.assertEqual(str(response.context['user']), 'message_user')
        self.assertEqual(
            messages[0].message,
            'System CSV importer: created: 0 | updated: 0 | skipped: 3 | multiple: 0 [2021-03-07 11:35:00 - 2021-03-07 11:35:00]'
        )
        self.assertEqual(messages[0].level_tag, 'success')
コード例 #2
0
    def test_system_importer_file_csv_messages_instant_many_systems_create(self):
        """ test importer view """

        # change config
        set_csv_import_filename('system_importer_file_csv_testfile_12_messages_many_systems.csv')
        # change config
        set_csv_skip_existing_system(True)

        # login testuser
        self.client.login(username='******', password='******')
        # get response
        response = self.client.get('/system/importer/file/csv/instant/', follow=True)
        # get messages
        messages = list(get_messages(response.wsgi_request))
        # compare
        self.assertEqual(messages[0].message, '3 systems were created.')
        self.assertEqual(messages[0].level_tag, 'success')
コード例 #3
0
    def test_system_importer_file_csv_messages_upload_post_many_systems_multiple(
            self):
        """ test importer view """

        # create systems
        create_system('system_csv_12_001')
        create_system('system_csv_12_001')
        create_system('system_csv_12_002')
        create_system('system_csv_12_002')
        create_system('system_csv_12_003')
        create_system('system_csv_12_003')

        # change config
        set_csv_skip_existing_system(True)

        # 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_12_messages_many_systems.csv'
            ), 'r')
        # create post data
        data_dict = {
            'systemcsv': systemcsv,
        }
        # get response
        response = self.client.post('/system/importer/file/csv/upload/',
                                    data_dict)
        # close file
        systemcsv.close()
        # get messages
        messages = list(get_messages(response.wsgi_request))
        # compare
        self.assertEqual(
            messages[0].message,
            "3 systems were skipped because they existed several times. ['system_csv_12_001', 'system_csv_12_002', 'system_csv_12_003']"
        )
        self.assertEqual(messages[0].level_tag, 'warning')
    def test_system_importer_file_csv_upload_get_meta_skip_warning(self):
        """ test importer view """

        # change config
        set_csv_skip_existing_system(False)

        # login testuser
        self.client.login(
            username='******',
            password='******')
        # get response
        response = self.client.get('/system/importer/file/csv/upload/',
                                   follow=True)
        # get messages
        messages = list(get_messages(response.wsgi_request))
        # compare
        self.assertEqual(response.status_code, 200)
        self.assertEqual(messages[0].message,
                         'WARNING: Existing systems will be updated!')
        self.assertEqual(messages[0].level_tag, 'warning')
コード例 #5
0
    def test_system_importer_file_csv_messages_instant_single_system_multiple(self):
        """ test importer view """

        # create system
        create_system('system_csv_11_001')
        create_system('system_csv_11_001')

        # change config
        set_csv_import_filename('system_importer_file_csv_testfile_11_messages_single_system.csv')
        # change config
        set_csv_skip_existing_system(True)

        # login testuser
        self.client.login(username='******', password='******')
        # get response
        response = self.client.get('/system/importer/file/csv/instant/', follow=True)
        # get messages
        messages = list(get_messages(response.wsgi_request))
        # compare
        self.assertEqual(messages[0].message, "1 system was skipped because it existed several times. ['system_csv_11_001']")
        self.assertEqual(messages[0].level_tag, 'warning')
コード例 #6
0
    def test_system_importer_file_csv_messages_upload_post_single_system_create(self):
        """ test importer view """

        # change config
        set_csv_skip_existing_system(True)

        # 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_11_messages_single_system.csv'))
        # create post data
        data_dict = {
            'systemcsv': systemcsv,
        }
        # get response
        response = self.client.post('/system/importer/file/csv/upload/', data_dict)
        # close file
        systemcsv.close()
        # get messages
        messages = list(get_messages(response.wsgi_request))
        # compare
        self.assertEqual(messages[0].message, '1 system was created.')
        self.assertEqual(messages[0].level_tag, 'success')
コード例 #7
0
    def test_system_importer_file_csv_messages_cron_single_system_multiple(self):
        """test importer view"""

        # create system
        create_system('system_csv_11_001')
        create_system('system_csv_11_001')

        # change config
        set_csv_import_filename(
            'system_importer_file_csv_testfile_11_messages_single_system.csv'
        )
        # change config
        set_csv_skip_existing_system(False)

        # mock timezone.now()
        t_4 = datetime(2021, 3, 7, 11, 00, 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
        self.assertEqual(
            str(response.context['user']), 'testuser_system_importer_file_csv_messages'
        )
        self.assertEqual(
            messages[0].message,
            'System CSV importer: created: 0 | updated: 0 | skipped: 0 | multiple: 1 [2021-03-07 11:00:00 - 2021-03-07 11:00:00]',
        )
        self.assertEqual(messages[0].level_tag, 'success')
        self.assertEqual(
            messages[1].message,
            "1 system was skipped because it existed several times. ['system_csv_11_001']",
        )
        self.assertEqual(messages[1].level_tag, 'warning')
        # 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
        self.assertEqual(str(response.context['user']), 'message_user')
        self.assertEqual(
            messages[0].message,
            'System CSV importer: created: 0 | updated: 0 | skipped: 0 | multiple: 1 [2021-03-07 11:00:00 - 2021-03-07 11:00:00]',
        )
        self.assertEqual(messages[0].level_tag, 'success')
        self.assertEqual(
            messages[1].message,
            "1 system was skipped because it existed several times. ['system_csv_11_001']",
        )
        self.assertEqual(messages[1].level_tag, 'warning')