def start_client(self): soledad_test_folder = self._generate_soledad_test_folder_name() SearchEngine.DEFAULT_INDEX_HOME = soledad_test_folder self.cleanup = lambda: shutil.rmtree(soledad_test_folder) PixelatedMail.from_email_address = self.MAIL_ADDRESS self.soledad = initialize_soledad(tempdir=soledad_test_folder) self.soledad_querier = self._create_soledad_querier( self.soledad, self.INDEX_KEY) self.keymanager = mock() self.search_engine = SearchEngine(self.soledad_querier, agent_home=soledad_test_folder) self.mail_sender = self._create_mail_sender() self.account = SoledadBackedAccount(self.ACCOUNT, self.soledad, MagicMock()) self.mailboxes = Mailboxes(self.account, self.soledad_querier, self.search_engine) self.draft_service = DraftService(self.mailboxes) self.mail_service = self._create_mail_service(self.mailboxes, self.mail_sender, self.soledad_querier, self.search_engine) self.search_engine.index_mails(self.mail_service.all_mails()) self.app = App() self.app.resource = RootResource() self.app.resource.initialize(self.soledad_querier, self.keymanager, self.search_engine, self.mail_service, self.draft_service)
def __init__(self, soledad_test_folder='/tmp/soledad-test/test'): self.soledad = initialize_soledad(tempdir=soledad_test_folder) self.mail_address = "*****@*****.**" # setup app PixelatedMail.from_email_address = self.mail_address SearchEngine.DEFAULT_INDEX_HOME = soledad_test_folder self.app = App() self.soledad_querier = SoledadQuerier(self.soledad) self.soledad_querier.get_index_masterkey = lambda: self.INDEX_KEY self.account = SoledadBackedAccount('test', self.soledad, MagicMock()) self.mailboxes = Mailboxes(self.account, self.soledad_querier) self.mail_sender = Mock() self.tag_service = TagService() self.draft_service = DraftService(self.mailboxes) self.mail_service = MailService(self.mailboxes, self.mail_sender, self.tag_service, self.soledad_querier) self.search_engine = SearchEngine(self.soledad_querier) self.search_engine.index_mails(self.mail_service.all_mails()) self.app.resource = RootResource() self.app.resource.initialize(self.soledad_querier, self.search_engine, self.mail_service, self.draft_service)
def __init__(self, soledad_test_folder='soledad-test'): self.soledad = initialize_soledad(tempdir=soledad_test_folder) self.mail_address = "*****@*****.**" # setup app PixelatedMail.from_email_address = self.mail_address SearchEngine.INDEX_FOLDER = soledad_test_folder + '/search_index' self.app = pixelated.runserver.app self.soledad_querier = SoledadQuerier(self.soledad) self.soledad_querier.get_index_masterkey = lambda: '_yg2oG_5ELM8_-sQYcsxI37WesI0dOtZQXpwAqjvhR4=' self.account = SoledadBackedAccount('test', self.soledad, MagicMock()) self.mailboxes = Mailboxes(self.account, self.soledad_querier) self.mail_sender = Mock() self.tag_service = TagService() self.draft_service = DraftService(self.mailboxes) self.mail_service = MailService(self.mailboxes, self.mail_sender, self.tag_service, self.soledad_querier) self.search_engine = SearchEngine(self.soledad_querier) self.search_engine.index_mails(self.mail_service.all_mails()) features_controller = FeaturesController() features_controller.DISABLED_FEATURES.append('autoReload') home_controller = HomeController() mails_controller = MailsController(mail_service=self.mail_service, draft_service=self.draft_service, search_engine=self.search_engine) tags_controller = TagsController(search_engine=self.search_engine) contacts_controller = ContactsController( search_engine=self.search_engine) sync_info_controller = SyncInfoController() attachments_controller = AttachmentsController(self.soledad_querier) setup_routes(self.app, home_controller, mails_controller, tags_controller, features_controller, sync_info_controller, attachments_controller, contacts_controller)
def _init_local_soledad(self): """ Initialize local Soledad instance. """ self.uuid = self._settings.get_uuid(self.userid) if not self.uuid: print "Cannot get UUID from settings. Log in at least once." return False print "UUID: %s" % (self.uuid) secrets, localdb = get_db_paths(self.uuid) self.sol = initialize_soledad(self.uuid, self.userid, self.passwd, secrets, localdb, "/tmp", "/tmp") memstore = MemoryStore(permanent_store=SoledadStore(self.sol), write_period=5) self.acct = SoledadBackedAccount(self.userid, self.sol, memstore=memstore) return True
def setUp(self): """ Setup method for each test. Initializes and run a LEAP IMAP4 Server, but passing the same Soledad instance (it's costly to initialize), so we have to be sure to restore state across tests. """ UUID = 'deadbeef', USERID = TEST_USER memstore = MemoryStore() d = defer.Deferred() self.server = LeapIMAPServer( uuid=UUID, userid=USERID, contextFactory=self.serverCTX, # XXX do we really need this?? soledad=self._soledad) self.client = SimpleClient(d, contextFactory=self.clientCTX) self.connected = d # XXX REVIEW-ME. # We're adding theAccount here to server # but it was also passed to initialization # as it was passed to realm. # I THINK we ONLY need to do it at one place now. theAccount = SoledadBackedAccount( USERID, soledad=self._soledad, memstore=memstore) LeapIMAPServer.theAccount = theAccount # in case we get something from previous tests... for mb in self.server.theAccount.mailboxes: self.server.theAccount.delete(mb) # email parser self.parser = parser.Parser()
def __init__(self, uuid, userid, soledad): """ Initializes the server factory. :param uuid: user uuid :type uuid: str :param userid: user id ([email protected]) :type userid: str :param soledad: soledad instance :type soledad: Soledad """ self._uuid = uuid self._userid = userid self._soledad = soledad self._memstore = MemoryStore( permanent_store=SoledadStore(soledad)) theAccount = SoledadBackedAccount( uuid, soledad=soledad, memstore=self._memstore) self.theAccount = theAccount
def _create_account(self, uuid, soledad_session): memstore = MemoryStore( permanent_store=SoledadStore(soledad_session.soledad)) return SoledadBackedAccount(uuid, soledad_session.soledad, memstore)