Beispiel #1
0
class DownloadThread(threading.Thread):
    def __init__(self, log_queue, db_filename, address):
        super(DownloadThread, self).__init__()
        self.log_queue = log_queue
        self.db_filename = db_filename
        self.address = address
        self.data = None
        self.error = None
        self.logger = logging.getLogger('collage_proxy')

    def run(self):
        self.driver = WebDriver()

        self.logger.info('Starting download thread')

        database = Database(self.db_filename)
        task_list = database.get_active_task_list()
        modules = database.get_loaded_task_modules(task_list)
        snippets = database.get_tasks(task_list)

        def dummy_receive(self, id):
            print 'Task module not loaded'
        def dummy_can_embed(self, id, data):
            return False
        def get_task_from_snippet(snippet):
            task = snippet.execute(self.driver)
            if snippet.get_module() not in modules:
                task.receive = dummy_receive
                task.can_embed = dummy_can_embed
            return task

        tasks = map(get_task_from_snippet, snippets)

        vector_provider = NullVectorProvider()
        message_layer = MessageLayer(vector_provider,
                                     common.BLOCK_SIZE,
                                     common.MAX_UNIQUE_BLOCKS,
                                     tasks,
                                     common.TASKS_PER_MESSAGE,
                                     Logger(self.log_queue),
                                     mac=True)
        try:
            self.logger.info('Download thread fetching address "%s"' % self.address)
            self.data = message_layer.receive(self.address)
        except Exception as inst:
            self.logger.info('Download thread had error "%s"' % inst.message)
            self.error = inst

        self.driver.close()

    def get_data(self):
        return self.data

    def get_error(self):
        return self.error

    def close(self):
        self.driver.close()
class FirefoxLauncherTests(unittest.TestCase):
    def testLaunchAndCloseBrowser(self):
        self.webdriver = WebDriver()
        self.webdriver.quit()

    def testDoubleClose(self):
        self.webdriver = WebDriver()
        self.webdriver.close()
        self.webdriver.close()
        self.webdriver.quit()
Beispiel #3
0
class FirefoxLauncherTests (unittest.TestCase):

    def testLaunchAndCloseBrowser(self):
         self.webdriver = WebDriver()
         self.webdriver.quit()

    def testDoubleClose(self):
        self.webdriver = WebDriver()
        self.webdriver.close()
        self.webdriver.close()
        self.webdriver.quit()
Beispiel #4
0
def download(address, snippets):
    driver = WebDriver()

    tasks = []
    for snippet in snippets:
        tasks.append(snippet.execute(driver))

    vector_provider = NullVectorProvider()
    message_layer = MessageLayer(vector_provider,
                                 common.BLOCK_SIZE,
                                 common.MAX_UNIQUE_BLOCKS,
                                 tasks,
                                 common.TASKS_PER_MESSAGE,
                                 Timestamper(),
                                 mac=True)
    try:
        data = message_layer.receive(address)
    except MessageLayerError:
        pass

    driver.close()

    return data