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 HomePageTest(TestCase): def _load_home_page(self): self.driver.get("http://127.0.0.1:8000/charts") def test_get_title(self): self.driver = WebDriver() self._load_home_page() title = self.driver.get_title() self.assertEquals("foobar", title) def tearDown(self): self.driver.quit()
class TestStaticPagesWithJs(unittest.TestCase): def setUp(self): self.server = Popen("dev_appserver.py . --port=80", shell=True) self.browser = WebDriver() def tearDown(self): self.browser.quit() # same as in python2.6 subprocess for posix systems (so currently no windows support) os.kill(self.server.pid, signal.SIGTERM) def test_index_with_js(self): self.browser.get('http://localhost') assert 'Welcome to Flask-Gae-Skeleton!' in self.browser.get_page_source( )
class TestStaticPagesWithJs(unittest.TestCase): def setUp(self): self.server = Popen("dev_appserver.py . --port=80", shell=True) self.browser = WebDriver() def tearDown(self): self.browser.quit() # same as in python2.6 subprocess for posix systems (so currently no windows support) os.kill(self.server.pid, signal.SIGTERM) def test_landing_index_with_js(self): self.browser.get('http://localhost') assert 'Welcome to Flask-Gae-Skeleton!' in self.browser.get_page_source()
class ExampleTest2(unittest.TestCase): """This example shows how to use the page object pattern. For more information about this pattern, see: http://code.google.com/p/webdriver/wiki/PageObjects """ def setUp(self): self._driver = WebDriver() def tearDown(self): self._driver.quit() def testSearch(self): google = GoogleOneBox(self._driver, "http://www.google.com") res = google.search_for("cheese") self.assertTrue(res.link_contains_match_for("Wikipedia"))
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
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()
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()
def main(): usage = 'usage: %s [options] <send|receive|delete> <id>' parser = OptionParser(usage=usage) parser.set_defaults() parser.add_option('-t', '--tags-file', dest='tagsfile', action='store', type='string', help='File to read tags from') (options, args) = parser.parse_args() if len(args) != 2: parser.error('Need to specify action and message id') if options.tagsfile is None: parser.error('Need to specify tags file') block_size = 8 max_unique_blocks = 2**16 tasks_per_message = 3 if args[0] == 'send': parser.error('Send action not implemented. Use photo donation tool.') elif args[0] == 'receive': driver = WebDriver() tags = [] for line in open(options.tagsfile, 'r'): tags.append(line.strip()) tag_pairs = [(a, b) for a in tags for b in tags if a < b] tasks = map(lambda pair: WebTagPairFlickrTask(driver, pair), tag_pairs) vector_provider = NullVectorProvider() message_layer = MessageLayer(vector_provider, block_size, max_unique_blocks, tasks, tasks_per_message, timestamper) data = message_layer.receive(args[1]) sys.stdout.write(data) elif args[0] == 'delete': parser.error("Delete action not implemented. You probably don't own the photos anyway.") else: parser.error('Invalid action')
def testLaunchAndCloseBrowser(self): self.webdriver = WebDriver() self.webdriver.quit()
def setUp(self): self._driver = WebDriver()
def test_get_title(self): self.driver = WebDriver() self._load_home_page() title = self.driver.get_title() self.assertEquals("foobar", title)
def main(): usage = 'usage: %s [options] <send|recieve> <id>' parser = OptionParser(usage=usage) parser.add_option('-u', '--username', dest='username', action='store', type='string', help='Twitter username') parser.add_option('-p', '--password', dest='password', action='store', type='string', help='Twitter password') parser.add_option('-f', '--file', dest='filename', action='store', type='string', help='File to send') parser.add_option('-n', '--num-tweets', dest='num_vectors', action='store', type='int', help='Number of tweets to send') parser.add_option('-r', '--send-ratio', dest='send_ratio', action='store', type='float', help='Ratio between data to send and total data length') parser.add_option('-d', '--directory', dest='directory', action='store', type='string', help='Directory to read tweets from') (options, args) = parser.parse_args() if len(args) != 2: parser.error('Need to specify action and message id') block_size = 8 max_unique_blocks = 2**8 tasks_per_message = 3 if args[0] == 'send': if options.username is None or options.password is None: parser.error( 'Must specify Twitter username and password to send messages.') if options.directory is None: parser.error( 'Must specify a directory with tweets (*.tweet) in it, to embed and upload.' ) vector_provider = DirectoryVectorProvider(BlatantVector, options.directory, '.tweet') if options.filename is None: print 'Enter message and press <Ctrl-D>' data = sys.stdin.read() else: data = open(options.filename, 'r').read() driver = WebDriver() twitter_login(driver, options.username, options.password) tasks = [WebTwitterTask(driver, options.username, BlatantVector)] message_layer = MessageLayer(vector_provider, block_size, max_unique_blocks, tasks, tasks_per_message, timestamper) if options.num_vectors is not None: message_layer.send(args[1], data, num_vectors=options.num_vectors) elif options.send_ratio is not None: message_layer.send(args[1], data, send_ratio=options.send_ratio) else: message_layer.send(args[1], data) elif args[0] == 'receive': if options.username is None: parser.error('Must specify username to search') vector_provider = NullVectorProvider() driver = WebDriver() tasks = [WebTwitterTask(driver, options.username, BlatantVector)] message_layer = MessageLayer(vector_provider, block_size, max_unique_blocks, tasks, tasks_per_message, timestamper) data = message_layer.receive(args[1]) sys.stdout.write(data) elif args[0] == 'delete': parser.error( "Deletion not supported through Web interface yet. Use direct client." ) else: parser.error('Invalid action')
def setUp(self): self.server = Popen("dev_appserver.py . --port=80", shell=True) self.browser = WebDriver()
def testNamedProfile(self): profile = FirefoxProfile("example") driver = WebDriver(profile) driver.get("http://localhost:%d/simpleTest.html" % WEB_SERVER_PORT) self.assertEquals("Hello WebDriver", driver.get_title()) driver.quit()
def testAnonymousProfileExample(self): driver = WebDriver() driver.get("http://localhost:%d/simpleTest.html" % WEB_SERVER_PORT) self.assertEquals("Hello WebDriver", driver.get_title()) driver.quit()
def testDoubleClose(self): self.webdriver = WebDriver() self.webdriver.close() self.webdriver.close() self.webdriver.quit()
def testAnonymousProfileIsFresh(self): driver = WebDriver() driver.get("http://localhost:%d/simpleTest.html" % WEB_SERVER_PORT) timestamp = time.mktime(datetime.datetime.now().timetuple()) + 100 cookie = { "name": "foo", "value": "bar", "expires": str(int(timestamp)) + "000", "domain": "localhost", "path": "/" } driver.add_cookie(utils.convert_cookie_to_json(cookie)) self.assertEquals(cookie, driver.get_cookies()[0]) driver.quit() driver = WebDriver() self.assertEquals([], driver.get_cookies()) driver.quit()
def testAnonymousProfileIsFresh(self): driver = WebDriver() driver.get("http://localhost:%d/simpleTest.html" % WEB_SERVER_PORT) timestamp = time.mktime(datetime.datetime.now().timetuple()) + 100 cookie = {"name": "foo", "value": "bar", "expires": str(int(timestamp)) + "000", "domain": "localhost", "path": "/"} driver.add_cookie(utils.convert_cookie_to_json(cookie)) self.assertEquals(cookie, driver.get_cookies()[0]) driver.quit() driver = WebDriver() self.assertEquals([], driver.get_cookies()) driver.quit()
def setup_module(module): webserver = SimpleWebServer() webserver.start() FirefoxCookieTest.webserver = webserver FirefoxCookieTest.driver = WebDriver()