about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--webtests/browser_run.py (renamed from webtests/browser_test.py)11
-rw-r--r--webtests/correlation_matrix_test.py86
-rw-r--r--webtests/correlation_test.py67
-rw-r--r--webtests/marker_regression_test.py78
-rw-r--r--webtests/test_runner.py27
5 files changed, 66 insertions, 203 deletions
diff --git a/webtests/browser_test.py b/webtests/browser_run.py
index 50e4d128..b2058cf8 100644
--- a/webtests/browser_test.py
+++ b/webtests/browser_run.py
@@ -1,4 +1,8 @@
-from __future__ import print_function, division, absolute_import
+from __future__ import absolute_import, division, print_function
+
+__all__ = ('sleep', 'testmod', 'test')
+
+from doctest import testmod
 
 from time import sleep
 
@@ -60,6 +64,5 @@ class Test(object):
         print("title:", self.browser.title)
 
 
-#if __name__ == '__main__':
-#    import doctest
-#    doctest.testmod()
\ No newline at end of file
+
+test = Test()
\ No newline at end of file
diff --git a/webtests/correlation_matrix_test.py b/webtests/correlation_matrix_test.py
index 21051fd7..8529c265 100644
--- a/webtests/correlation_matrix_test.py
+++ b/webtests/correlation_matrix_test.py
@@ -2,7 +2,6 @@
 
 Test Correlation matrix
 
->>> test = Test()
 >>> test.get("http://genenetwork.org/")
 title: GeneNetwork
 
@@ -15,17 +14,29 @@ text: grin2b
 
 Search
 >>> test.click('//*[@id="btsearch"]')
+clicked: Search
 
-Select the first 4 records
+Add 1430675_at
 >>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p/table/tbody/tr[3]/td/div/table/tbody/tr[2]/td/input''')
+clicked: HC_M2_0606_P::1430675_at
+
+Add 1442370_at
 >>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p/table/tbody/tr[3]/td/div/table/tbody/tr[3]/td/input''')
+clicked: HC_M2_0606_P::1442370_at
+
+Add 1457003_at
 >>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p/table/tbody/tr[3]/td/div/table/tbody/tr[4]/td/input''')
+clicked: HC_M2_0606_P::1457003_at
+
+Add 1422223_at
 >>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p/table/tbody/tr[3]/td/div/table/tbody/tr[5]/td/input''')
+clicked: HC_M2_0606_P::1422223_at
 
 >>> sleep(5)
 
 Add to collection page
 >>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p/table/tbody/tr[1]/td/table/tbody/tr[1]/td[4]/a''')
+clicked: Notext
 
 >>> sleep(5)
 
@@ -35,10 +46,11 @@ title: BXD Trait Collection
 
 Select all records
 >>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/a/img''')
-
+clicked: Notext
 
 Click Matrix
 >>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[2]/a/img''')
+clicked: Notext
 
 Another new window
 >>> test.switch_window()
@@ -53,66 +65,8 @@ text: 0.608\n71
 
 """
 
-from __future__ import print_function, division, absolute_import
-
-from time import sleep
-
-import selenium
-from selenium import webdriver
-from selenium.common.exceptions import NoSuchElementException, ElementNotVisibleException
-from selenium.webdriver.common.keys import Keys
-
-from browser_test import Test
-#
-#class Test(object):
-#    def __init__(self):
-#        self.browser = webdriver.Chrome('/home/gn2/gn2/webtests/chromedriver')
-#
-#    def get(self, url):
-#        self.browser.get(url)
-#        sleep(5)
-#        self.title()
-#
-#    def click(self, xpath_selector):
-#        el = self.browser.find_element_by_xpath(xpath_selector)
-#        #text = el.text.strip() or el.get_attribute("value").strip()
-#        el.click()
-#        #print("clicked:", text)
-#        sleep(2)
-#
-#    def click_option(self, xpath_selector, option_text):
-#        el = self.browser.find_element_by_xpath(xpath_selector)
-#        for option in el.find_elements_by_tag_name('option'):
-#            if option.text == option_text:
-#                option.click() # select() in earlier versions of webdriver
-#                break
-#        sleep(2)
-#
-#    def enter_text(self, xpath_selector, text):
-#        el = self.browser.find_element_by_xpath(xpath_selector)
-#        sleep(10)
-#        el.send_keys(text)
-#        sleep(5)
-#        # Just in case things get mangled by JavaScript, etc. we print the text for testing
-#        self.get_text(xpath_selector)
-#
-#    def get_text(self, xpath_selector):
-#        el = self.browser.find_element_by_xpath(xpath_selector)
-#        text = el.text.strip() or el.get_attribute("value").strip()
-#        print("text:", text)
-#
-#    def switch_window(self):
-#        self.browser.switch_to_window(self.browser.window_handles[-1])
-#        sleep(2)
-#        self.title()
-#        sleep(2)
-#
-#
-#    def title(self):
-#        print("title:", self.browser.title)
-#
-#
-#
-if __name__ == '__main__':
-    import doctest
-    doctest.testmod()
+from __future__ import absolute_import, division, print_function
+
+from browser_run import *
+
+testmod()
diff --git a/webtests/correlation_test.py b/webtests/correlation_test.py
index aaf3f7df..aad3a69f 100644
--- a/webtests/correlation_test.py
+++ b/webtests/correlation_test.py
@@ -1,7 +1,6 @@
 """
 Test calculate correlations
 
->>> test = Test()
 >>> test.get("http://genenetwork.org")
 title: GeneNetwork
 
@@ -37,7 +36,7 @@ Another new window
 title: Correlation
 
 Sleep a bunch because this can take a while
->>> sleep(60)
+>>> sleep(25)
 
 Ensure the Sample rho is the exepcted 1.000 because it should be the same record
 >>> test.get_text('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/table/tbody/tr[2]/td/div/table/tbody/tr[2]/td[9]/a''')
@@ -45,66 +44,8 @@ text: 1.000
 
 """
 
-from __future__ import print_function, division, absolute_import
+from __future__ import absolute_import, division, print_function
 
-from time import sleep
+from browser_run import *
 
-
-import selenium
-from selenium import webdriver
-from selenium.common.exceptions import NoSuchElementException, ElementNotVisibleException
-from selenium.webdriver.common.keys import Keys
-
-
-class Test(object):
-    def __init__(self):
-        self.browser = webdriver.Chrome('/home/gn2/gn2/webtests/chromedriver')
-
-    def get(self, url):
-        self.browser.get(url)
-        sleep(5)
-        self.title()
-
-    def click(self, xpath_selector):
-        el = self.browser.find_element_by_xpath(xpath_selector)
-        text = el.text.strip() or el.get_attribute("value").strip()
-        el.click()
-        print("clicked:", text)
-        sleep(2)
-
-    def click_option(self, xpath_selector, option_text):
-        el = self.browser.find_element_by_xpath(xpath_selector)
-        for option in el.find_elements_by_tag_name('option'):
-            if option.text == option_text:
-                option.click() # select() in earlier versions of webdriver
-                break
-        sleep(2)
-
-    def enter_text(self, xpath_selector, text):
-        el = self.browser.find_element_by_xpath(xpath_selector)
-        sleep(10)
-        el.send_keys(text)
-        sleep(5)
-        # Just in case things get mangled by JavaScript, etc. we print the text for testing
-        self.get_text(xpath_selector)
-
-    def get_text(self, xpath_selector):
-        el = self.browser.find_element_by_xpath(xpath_selector)
-        text = el.text.strip() or el.get_attribute("value").strip()
-        print("text:", text)
-
-    def switch_window(self):
-        self.browser.switch_to_window(self.browser.window_handles[-1])
-        sleep(2)
-        self.title()
-        sleep(2)
-
-
-    def title(self):
-        print("title:", self.browser.title)
-
-
-
-if __name__ == '__main__':
-    import doctest
-    doctest.testmod()
+testmod()
diff --git a/webtests/marker_regression_test.py b/webtests/marker_regression_test.py
index 3baf1e95..c4f76f53 100644
--- a/webtests/marker_regression_test.py
+++ b/webtests/marker_regression_test.py
@@ -1,7 +1,6 @@
 """
 Test calculate correlations
 
->>> test = Test()
 >>> test.get("http://genenetwork.org")
 title: GeneNetwork
 
@@ -29,11 +28,11 @@ Click on Mapping Tools
 clicked: Mapping Tools
 
 Click on Marker Regression tab
->>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p[8]/table/tbody/tr/td/div/ul/li[2]/a''')
+>>> test.click('''//*[@id="mapping_tabs"]/ul/li[2]/a''')
 clicked: Marker Regression
 
 Click on Compute
->>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p[8]/table/tbody/tr/td/div/div[2]/span/table/tbody/tr/td/input''')
+>>> test.click('''//*[@id="mappingtabs-2"]/span/table/tbody/tr[1]/td/input''')
 clicked: Compute
 
 Another new window
@@ -44,74 +43,13 @@ Sleep a bunch because this can take a while
 >>> sleep(60)
 
 Ensure that the LRS of the top record is the exepcted value
->>> test.get_text('''/html/body/table/tbody/tr[3]/td/table/tbody/tr[4]/td/table/tbody/tr/td/div/table/tbody/tr[2]/td[2]''')
+>>> test.get_text('''//*[@id="1"]/td[2]''')
 text: 11.511
 
 """
 
-from __future__ import print_function, division, absolute_import
-
-from browser_test import Test
-
-#
-#from time import sleep
-#
-#
-#import selenium
-#from selenium import webdriver
-#from selenium.common.exceptions import NoSuchElementException, ElementNotVisibleException
-#from selenium.webdriver.common.keys import Keys
-#
-#
-#class Test(object):
-#    def __init__(self):
-#        self.browser = webdriver.Chrome('/home/gn2/gn2/webtests/chromedriver')
-#
-#    def get(self, url):
-#        self.browser.get(url)
-#        sleep(5)
-#        self.title()
-#
-#    def click(self, xpath_selector):
-#        el = self.browser.find_element_by_xpath(xpath_selector)
-#        text = el.text.strip() or el.get_attribute("value").strip()
-#        el.click()
-#        print("clicked:", text)
-#        sleep(2)
-#
-#    def click_option(self, xpath_selector, option_text):
-#        el = self.browser.find_element_by_xpath(xpath_selector)
-#        for option in el.find_elements_by_tag_name('option'):
-#            if option.text == option_text:
-#                option.click() # select() in earlier versions of webdriver
-#                break
-#        sleep(2)
-#
-#    def enter_text(self, xpath_selector, text):
-#        el = self.browser.find_element_by_xpath(xpath_selector)
-#        sleep(10)
-#        el.send_keys(text)
-#        sleep(5)
-#        # Just in case things get mangled by JavaScript, etc. we print the text for testing
-#        self.get_text(xpath_selector)
-#
-#    def get_text(self, xpath_selector):
-#        el = self.browser.find_element_by_xpath(xpath_selector)
-#        text = el.text.strip() or el.get_attribute("value").strip()
-#        print("text:", text)
-#
-#    def switch_window(self):
-#        self.browser.switch_to_window(self.browser.window_handles[-1])
-#        sleep(2)
-#        self.title()
-#        sleep(2)
-#
-#
-#    def title(self):
-#        print("title:", self.browser.title)
-
-
-
-if __name__ == '__main__':
-    import doctest
-    doctest.testmod()
+from __future__ import absolute_import, division, print_function
+
+from browser_run import *
+
+testmod()
diff --git a/webtests/test_runner.py b/webtests/test_runner.py
new file mode 100644
index 00000000..d2d6339d
--- /dev/null
+++ b/webtests/test_runner.py
@@ -0,0 +1,27 @@
+from __future__ import absolute_import, division, print_function
+
+import unittest
+import doctest
+import glob
+
+#tests = ("correlation_test",
+#         "correlation_matrix_test",
+#         "marker_regression_test")
+
+
+def main():
+    tests = glob.glob("*_test.py")
+    
+    suite = unittest.TestSuite()
+    
+    for testname in tests:
+        test = testname.rsplit(".", 1)[0]
+        print("Test is:", test)
+        mod = __import__(test)
+        suite.addTest(doctest.DocTestSuite(mod))
+        
+    runner = unittest.TextTestRunner()
+    runner.run(suite)
+    
+if __name__ == '__main__':
+    main()
\ No newline at end of file