diff tests/test_dataset_fileupload.py @ 10:a50cf11e5178

Rewrite LGDataverse completely upgrading to dataverse4.0
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Tue, 08 Sep 2015 17:00:21 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test_dataset_fileupload.py	Tue Sep 08 17:00:21 2015 +0200
@@ -0,0 +1,85 @@
+from selenium import webdriver
+import time, unittest, config
+
+def is_alert_present(wd):
+    try:
+        wd.switch_to_alert().text
+        return True
+    except:
+        return False
+
+class test_dataset_fileupload(unittest.TestCase):
+    def setUp(self):
+        if (config.local):
+            self.wd = webdriver.Firefox()
+        else:
+            desired_capabilities = webdriver.DesiredCapabilities.FIREFOX
+            desired_capabilities['version'] = '24'
+            desired_capabilities['platform'] = 'Linux'
+            desired_capabilities['name'] = 'test_access'
+            self.wd = webdriver.Remote(
+                desired_capabilities=desired_capabilities,
+                command_executor="http://esodvn:325caef9-81dd-47a5-8b74-433057ce888f@ondemand.saucelabs.com:80/wd/hub"
+            )
+
+        self.wd.implicitly_wait(60)
+    
+    def test_test_dataset_fileupload(self):
+        success = True
+        wd = self.wd
+        wd.get(config.accessURL)
+        # Log in as test user
+        wd.find_element_by_link_text("Log In").click()
+        time.sleep(1)
+        wd.find_element_by_id("loginForm:userName").click()
+        wd.find_element_by_id("loginForm:userName").clear()
+        wd.find_element_by_id("loginForm:userName").send_keys("tester")
+        wd.find_element_by_id("loginForm:password").click()
+        wd.find_element_by_id("loginForm:password").clear()
+        wd.find_element_by_id("loginForm:password").send_keys("tester")
+        wd.find_element_by_id("loginForm:login").click()
+        time.sleep(1)
+        # Choose to upload dataset
+        wd.find_element_by_id("shareForm:shareData_button").click()
+        wd.find_element_by_link_text("Add Dataset").click()
+        time.sleep(1)
+        # Enter dataset info
+        wd.find_element_by_id("datasetForm:title").click()
+        wd.find_element_by_id("datasetForm:title").clear()
+        wd.find_element_by_id("datasetForm:title").send_keys("Test Drag and Drop")
+        wd.find_element_by_id("datasetForm:author").click()
+        wd.find_element_by_id("datasetForm:author").clear()
+        wd.find_element_by_id("datasetForm:author").send_keys("tester")
+        wd.find_element_by_id("datasetForm:date").click()
+        wd.find_element_by_id("datasetForm:date").clear()
+        wd.find_element_by_id("datasetForm:date").send_keys("2013")
+        wd.find_element_by_id("datasetForm:distributor").click()
+        wd.find_element_by_id("datasetForm:distributor").clear()
+        wd.find_element_by_id("datasetForm:distributor").send_keys("test")
+        wd.find_element_by_id("datasetForm:description").click()
+        wd.find_element_by_id("datasetForm:description").clear()
+        wd.find_element_by_id("datasetForm:description").send_keys("This is a test.")
+        # Upload file
+        wd.find_element_by_id("datasetForm:tabView:fileUpload_input").send_keys("/Users/kcondon/Downloads/50by1000.dta")
+        time.sleep(3)
+        if wd.find_element_by_id("datasetForm:tabView:filesTable:0:fileName").get_attribute("value") != "50by1000.dta":
+            success = False
+            print("Could not find file name in upload table.")
+        wd.find_element_by_id("datasetForm:save").click()
+        time.sleep(3)
+        if not ("Test Drag and Drop" in wd.find_element_by_tag_name("html").text):
+            success = False
+            print("Could not find dataset title on page.")
+        if not ("tester, \"Test Drag and Drop\", 2013, test, http://dx.doi.org/10.1234/dataverse/" in wd.find_element_by_tag_name("html").text):
+            success = False
+            print("Could not verify data citation.")
+        wd.find_element_by_link_text("Log Out").click()
+        self.assertTrue(success)
+    
+    def tearDown(self):
+        if not (config.local):
+            print("Link to your job: https://saucelabs.com/jobs/%s" % self.wd.session_id)        
+        self.wd.quit()
+
+if __name__ == '__main__':
+    unittest.main()