| Index: third_party/gsutil/boto/tests/mturk/selenium_support.py
|
| diff --git a/third_party/gsutil/boto/tests/mturk/selenium_support.py b/third_party/gsutil/boto/tests/mturk/selenium_support.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f1552cb22741950639949ba75f9d74ab05782ff3
|
| --- /dev/null
|
| +++ b/third_party/gsutil/boto/tests/mturk/selenium_support.py
|
| @@ -0,0 +1,61 @@
|
| +from __future__ import absolute_import
|
| +from boto.mturk.test.support import unittest
|
| +
|
| +sel_args = ('localhost', 4444, '*chrome', 'https://workersandbox.mturk.com')
|
| +
|
| +class SeleniumFailed(object):
|
| + def __init__(self, message):
|
| + self.message = message
|
| + def __nonzero__(self):
|
| + return False
|
| +
|
| +def has_selenium():
|
| + try:
|
| + from selenium import selenium
|
| + globals().update(selenium=selenium)
|
| + sel = selenium(*sel_args)
|
| + # a little trick to see if the server is responding
|
| + try:
|
| + sel.do_command('shutdown', '')
|
| + except Exception, e:
|
| + if not 'Server Exception' in str(e):
|
| + raise
|
| + result = True
|
| + except ImportError:
|
| + result = SeleniumFailed('selenium RC not installed')
|
| + except Exception:
|
| + msg = 'Error occurred initializing selenium: %s' % e
|
| + result = SeleniumFailed(msg)
|
| +
|
| + # overwrite has_selenium, so the same result is returned every time
|
| + globals().update(has_selenium=lambda: result)
|
| + return result
|
| +
|
| +identity = lambda x: x
|
| +
|
| +def skip_unless_has_selenium():
|
| + res = has_selenium()
|
| + if not res:
|
| + return unittest.skip(res.message)
|
| + return identity
|
| +
|
| +def complete_hit(hit_type_id, response='Some Response'):
|
| + verificationErrors = []
|
| + sel = selenium(*sel_args)
|
| + sel.start()
|
| + sel.open("/mturk/welcome")
|
| + sel.click("lnkWorkerSignin")
|
| + sel.wait_for_page_to_load("30000")
|
| + sel.type("email", "boto.tester@example.com")
|
| + sel.type("password", "BotoTest")
|
| + sel.click("Continue")
|
| + sel.wait_for_page_to_load("30000")
|
| + sel.open("/mturk/preview?groupId={hit_type_id}".format(**vars()))
|
| + sel.click("/accept")
|
| + sel.wait_for_page_to_load("30000")
|
| + sel.type("Answer_1_FreeText", response)
|
| + sel.click("//div[5]/table/tbody/tr[2]/td[1]/input")
|
| + sel.wait_for_page_to_load("30000")
|
| + sel.click("link=Sign Out")
|
| + sel.wait_for_page_to_load("30000")
|
| + sel.stop()
|
|
|