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')
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')
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')
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')
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')
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')