예제 #1
0
 def test_folder_handler_no_mkdir(self):
     load_remote_folders_from_csv()
     source_dir = os.path.join(settings.BASE_DIR, 'testdata/upload')
     destination_dir = os.path.join(settings.BASE_DIR,
                                    'testdata/viral_load')
     archive_dir = os.path.join(settings.BASE_DIR, 'testdata/archive')
     filename = '066-12000001-3.pdf'
     self.create_temp_pdf(os.path.join(source_dir, filename))
     self.assertEqual(
         magic.from_file(os.path.join(source_dir, filename), mime=True),
         b'application/pdf')
     event_handler = RemoteFolderEventHandler(
         source_dir=source_dir,
         destination_dir=destination_dir,
         archive_dir=archive_dir,
         file_patterns=['*.pdf'],
         mime_types=['application/pdf'],
         mkdir_destination=False)
     server = Server(event_handler)
     folder_selection = BaseLookupFolderHandler().select(
         server, filename, b'application/pdf',
         server.event_handler.destination_dir)
     self.assertEquals(folder_selection.name, None)
     self.assertEquals(folder_selection.path, None)
     self.assertEquals(folder_selection.tag, None)
     try:
         os.remove(os.path.join(server.event_handler.source_dir, filename))
     except IOError:
         pass
예제 #2
0
 def test_converts_mime_type_to_byte(self):
     source_dir = os.path.join(settings.BASE_DIR, 'testdata/upload')
     destination_dir = os.path.join(settings.BASE_DIR,
                                    'testdata/viral_load')
     archive_dir = os.path.join(settings.BASE_DIR, 'testdata/archive')
     filename = '066-1200001-3.txt'
     with open(os.path.join(source_dir, filename), 'w') as f:
         f.write('hello earth')
     self.assertEqual(
         magic.from_file(os.path.join(source_dir, filename), mime=True),
         b'text/plain')
     event_handler = RemoteFolderEventHandler(
         source_dir=source_dir,
         destination_dir=destination_dir,
         archive_dir=archive_dir,
         file_patterns=['*.txt'],
         mime_types=['text/plain'],
         mkdir_destination=False)
     server = Server(event_handler)
     self.assertEqual(server.event_handler.mime_types, [b'text/plain'])
     for f in [filename]:
         for d in [server.event_handler.source_dir]:
             name = os.path.join(d, f)
             try:
                 os.remove(name)
             except IOError:
                 pass
예제 #3
0
 def test_filter_listdir_filename_length(self):
     source_dir = os.path.join(settings.BASE_DIR, 'testdata/upload')
     destination_dir = os.path.join(settings.BASE_DIR, 'testdata/outbox')
     archive_dir = os.path.join(settings.BASE_DIR, 'testdata/archive')
     event_handler = RemoteFolderEventHandler(
         source_dir=source_dir,
         destination_dir=destination_dir,
         archive_dir=archive_dir,
         file_patterns=['*.txt'],
         mime_types=['text/plain'],
     )
     server = Server(event_handler)
     txt_50_filename = 'tmp1234567891234567891234567891234567891234567.txt'
     txt_51_filename = 'tmp12345678912345678912345678912345678912345678.txt'
     pdf_50_filename = 'tmp1234567891234567891234567891234567891234567.pdf'
     pdf_51_filename = 'tmp12345678912345678912345678912345678912345678.pdf'
     self.create_temp_pdf(os.path.join(source_dir, pdf_50_filename))
     self.create_temp_pdf(os.path.join(source_dir, pdf_51_filename))
     self.create_temp_txt(os.path.join(source_dir, txt_50_filename))
     self.create_temp_txt(os.path.join(source_dir, txt_51_filename))
     listdir = os.listdir(source_dir)
     self.assertEquals([txt_50_filename],
                       server.event_handler.filtered_listdir(
                           listdir, source_dir))
     self.remove_temp_files([
         pdf_50_filename, pdf_51_filename, txt_50_filename, txt_51_filename
     ], server)
예제 #4
0
 def test_make_local_folder(self):
     source_dir = os.path.join(settings.BASE_DIR, 'testdata/upload')
     destination_dir = os.path.join(settings.BASE_DIR, 'testdata/outbox')
     archive_dir = '/tmp/tmp_archive'
     try:
         os.rmdir('/tmp/tmp_archive')
     except IOError:
         pass
     self.assertRaises(
         FileNotFoundError,
         RemoteFolderEventHandler,
         source_dir=source_dir,
         destination_dir=destination_dir,
         archive_dir=archive_dir,
         mime_types=['text/plain'],
         file_patterns=['*.txt'],
     )
     self.assertIsInstance(
         RemoteFolderEventHandler(source_dir=source_dir,
                                  destination_dir=destination_dir,
                                  archive_dir=archive_dir,
                                  mime_types=['text/plain'],
                                  file_patterns=['*.txt'],
                                  mkdir_local=True),
         RemoteFolderEventHandler,
     )
     os.rmdir('/tmp/tmp_archive')
예제 #5
0
 def test_mime_type(self):
     source_dir = os.path.join(settings.BASE_DIR, 'testdata/upload')
     destination_dir = os.path.join(settings.BASE_DIR, 'testdata/outbox')
     archive_dir = os.path.join(settings.BASE_DIR, 'testdata/archive')
     event_handler = RemoteFolderEventHandler(
         source_dir=source_dir,
         destination_dir=destination_dir,
         archive_dir=archive_dir,
         mime_types=['text/plain'],
         file_patterns=['*.txt'])
     server = Server(event_handler)
     self.assertEquals(server.event_handler.mime_types, [b'text/plain'])
예제 #6
0
 def test_remote_folder(self):
     source_dir = os.path.join(settings.BASE_DIR, 'testdata/upload')
     destination_dir = '~/' + os.path.join(
         settings.BASE_DIR.split(os.path.expanduser('~/'))[1],
         'testdata/outbox')
     archive_dir = os.path.join(settings.BASE_DIR, 'testdata/archive')
     event_handler = RemoteFolderEventHandler(
         source_dir=source_dir,
         destination_dir=destination_dir,
         archive_dir=archive_dir,
         mime_types=['text/plain'],
         file_patterns=['*.txt'],
         remote_user=pwd.getpwuid(os.getuid()).pw_name)
     server = Server(event_handler)
     self.assertEquals(server.event_handler.destination_dir,
                       os.path.join(settings.BASE_DIR, 'testdata/outbox'))
예제 #7
0
 def test_filter_listdir_unexpected_pattern_for_mime(self):
     source_dir = os.path.join(settings.BASE_DIR, 'testdata/upload')
     destination_dir = os.path.join(settings.BASE_DIR, 'testdata/outbox')
     archive_dir = os.path.join(settings.BASE_DIR, 'testdata/archive')
     event_handler = RemoteFolderEventHandler(
         source_dir=source_dir,
         destination_dir=destination_dir,
         archive_dir=archive_dir,
         file_patterns=['*.pdf'],
         mime_types=['text/plain'],
     )
     server = Server(event_handler)
     pdf_filename = 'tmp.pdf'
     txt_filename = 'i_am_a_text_file.pdf'
     self.create_temp_pdf(os.path.join(source_dir, pdf_filename))
     self.create_temp_txt(os.path.join(source_dir, txt_filename))
     listdir = os.listdir(source_dir)
     self.assertEquals(['i_am_a_text_file.pdf'],
                       server.event_handler.filtered_listdir(
                           listdir, source_dir))
     self.remove_temp_files([pdf_filename, txt_filename], server)