def ztest_few_days_syncer(self): """ Test with the Syncer object """ syncer = gmvault.GMVaulter('/tmp/gmail_bk', 'imap.gmail.com', 993, self.login, self.passwd) syncer.sync(imap_req="Since 1-Nov-2011 Before 4-Nov-2011") storage_dir = "%s/%s" % ('/tmp/gmail_bk/db', '2011-11') gstorer = gmvault.GmailStorer('/tmp/gmail_bk') metadata = gmvault.GMVaulter.check_email_on_disk( gstorer, 1384313269332005293) self.assertEquals(metadata['gm_id'], 1384313269332005293) metadata = gmvault.GMVaulter.check_email_on_disk( gstorer, 1384403887202624608) self.assertEquals(metadata['gm_id'], 1384403887202624608) metadata = gmvault.GMVaulter.check_email_on_disk( gstorer, 1384486067720566818) self.assertEquals(metadata['gm_id'], 1384486067720566818)
def ztest_full_sync_gmv(self): """ full test via the command line """ sys.argv = ['gmvault.py', '--imap-server', 'imap.gmail.com', \ '--imap-port', '993', '--imap-request', \ 'Since 1-Nov-2011 Before 5-Nov-2011', '--email', \ self.login, '--passwd', self.passwd] gmvault_launcher = gmv_cmd.GMVaultLauncher() args = gmvault_launcher.parse_args() gmvault_launcher.run(args) #check all stored gmail ids gstorer = gmvault.GmailStorer(args['db-dir']) ids = gstorer.get_all_existing_gmail_ids() self.assertEquals(len(ids), 5) self.assertEquals(ids, {1384403887202624608L: '2011-11', \ 1384486067720566818L: '2011-11', \ 1384313269332005293L: '2011-11', \ 1384545182050901969L: '2011-11', \ 1384578279292583731L: '2011-11'})
def test_get_subdir_info(self): """ test get subdir info """ import gmv.gmvault as gmv storer = gmv.GmailStorer("/Users/gaubert/gmvault-db") storer.init_sub_chats_dir()
def ztest_encrypt_restore_on_gmail(self): """ Doesn't work to be fixed clean db disk sync with gmail for few emails restore them on gmail test """ db_dir = '/tmp/gmail_bk' #clean db dir delete_db_dir(db_dir) credential = {'type': 'passwd', 'value': self.passwd} search_req = { 'type': 'imap', 'req': "Since 1-Nov-2011 Before 3-Nov-2011" } use_encryption = True syncer = gmvault.GMVaulter(db_dir, 'imap.gmail.com', 993, self.login, credential, read_only_access=True, use_encryption=use_encryption) syncer.sync(imap_req=search_req) # check that the email can be read gstorer = gmvault.GmailStorer('/tmp/gmail_bk', use_encryption) metadata = gmvault.GMVaulter.check_email_on_disk( gstorer, 1384313269332005293) self.assertEquals(metadata['gm_id'], 1384313269332005293) email_meta, email_data = gstorer.unbury_email(1384313269332005293) self.assertTrue( email_data.startswith("Delivered-To: [email protected]")) #print("Email Data = \n%s\n" % (email_data)) print("Done \n")
def ztest_fix_bug_search_broken_gm_id_and_quarantine(self): """ Search with a gm_id and quarantine it """ db_dir = '/tmp/gmail_bk' #clean db dir delete_db_dir(db_dir) credential = {'type': 'passwd', 'value': self.passwd} gs_credential = {'type': 'passwd', 'value': self.gmvault_passwd} gstorer = gmvault.GmailStorer(db_dir) gimap = imap_utils.GIMAPFetcher('imap.gmail.com', 993, self.login, credential) gimap.connect() criteria = { 'type': 'imap', 'req': ['X-GM-MSGID 1254269417797093924'] } #broken one #criteria = ['X-GM-MSGID 1254267782370534098'] #criteria = ['ALL'] ids = gimap.search(criteria) for the_id in ids: res = gimap.fetch(the_id, gimap.GET_ALL_INFO) gm_id = gstorer.bury_email(res[the_id], compress=True) syncer = gmvault.GMVaulter(db_dir, 'imap.gmail.com', 993, self.gmvault_login, gs_credential) syncer.restore() #check that the file has been quarantine quarantine_dir = '%s/quarantine' % (db_dir) self.assertTrue( os.path.exists('%s/1254269417797093924.eml.gz' % (quarantine_dir))) self.assertTrue( os.path.exists('%s/1254269417797093924.meta' % (quarantine_dir)))
def ztest_gmvault_store_gzip_email_and_read( self): #pylint:disable-msg=C0103 """ Retrieve emails store them it on disk and read it """ storage_dir = '/tmp/gmail_bk' gmvault_utils.delete_all_under(storage_dir) gimap = imap_utils.GIMAPFetcher('imap.gmail.com', 993, self.login, self.passwd) gstorer = gmvault.GmailStorer(storage_dir) gimap.connect() criteria = ['Before 1-Oct-2006'] #criteria = ['ALL'] ids = gimap.search(criteria) #get 30 emails for index in range(9, 20): print("retrieve email index %d\n" % (index)) the_id = ids[index] res = gimap.fetch(the_id, gimap.GET_ALL_INFO) gm_id = gstorer.bury_email(res[the_id], compress=True) print("restore email index %d\n" % (index)) metadata, data = gstorer.unbury_email(gm_id) self.assertEquals(res[the_id][gimap.GMAIL_ID], metadata['gm_id']) self.assertEquals(res[the_id][gimap.EMAIL_BODY], data) self.assertEquals(res[the_id][gimap.GMAIL_THREAD_ID], metadata['thread_ids']) labels = [] for label in res[the_id][gimap.GMAIL_LABELS]: labels.append(label) self.assertEquals(labels, metadata['labels'])
def ztest_delete_sync_gmv(self): """ delete sync via command line """ gmv_cmd.init_logging() #first request to have the extra dirs sys.argv = ['gmvault.py', '--imap-server', 'imap.gmail.com', \ '--imap-port', '993', '--imap-request', \ 'Since 1-Nov-2011 Before 7-Nov-2011', \ '--email', self.login, \ '--passwd', self.passwd, '--db-dir', '/tmp/new-db-1'] gmvault_launcher = gmv_cmd.GMVaultLauncher() args = gmvault_launcher.parse_args() gmvault_launcher.run(args) #second requests so all files after the 5 should disappear sys.argv = ['gmvault.py', '--imap-server', 'imap.gmail.com', \ '--imap-port', '993', '--imap-request', \ 'Since 1-Nov-2011 Before 5-Nov-2011', '--email', self.login, \ '--passwd', self.passwd, '--db-dir', '/tmp/new-db-1', '--db-cleaning', 'yes'] args = gmvault_launcher.parse_args() gmvault_launcher.run(args) #check all stored gmail ids gstorer = gmvault.GmailStorer(args['db-dir']) ids = gstorer.get_all_existing_gmail_ids() self.assertEquals(len(ids), 5) self.assertEquals(ids, {1384403887202624608L: '2011-11', \ 1384486067720566818L: '2011-11', \ 1384313269332005293L: '2011-11', \ 1384545182050901969L: '2011-11', \ 1384578279292583731L: '2011-11'})
def ztest_gmvault_compress_retrieve_email_store_and_read( self): #pylint:disable-msg=C0103 """ Activate compression and retrieve an email store it on disk and read it """ storage_dir = '/tmp/gmail_bk' gmvault_utils.delete_all_under(storage_dir) gimap = imap_utils.GIMAPFetcher('imap.gmail.com', 993, self.login, self.passwd) gstorer = gmvault.GmailStorer(storage_dir) gimap.connect() gimap.enable_compression() criteria = ['Before 1-Oct-2006'] #criteria = ['ALL'] ids = gimap.search(criteria) the_id = ids[124] res = gimap.fetch(the_id, gimap.GET_ALL_INFO) gm_id = gstorer.bury_email(res[the_id]) metadata, data = gstorer.unbury_email(gm_id) self.assertEquals(res[the_id][gimap.GMAIL_ID], metadata['gm_id']) self.assertEquals(res[the_id][gimap.EMAIL_BODY], data) self.assertEquals(res[the_id][gimap.GMAIL_THREAD_ID], metadata['thread_ids']) labels = [] for label in res[the_id][gimap.GMAIL_LABELS]: labels.append(label) self.assertEquals(labels, metadata['labels'])