def test_dashboard(self): signin(self, 'bob', 'bob_secret') spin_assert(lambda: self.assertEquals(self.browser.title, 'SylvaDB - Dashboard')) text = self.browser.find_by_xpath( "//header[@class='global']/h1").first.value spin_assert(lambda: self.assertEqual(text, 'Dashboard'))
def validate_user(driver, url, piuser, fakeuser, testname, errordb=None, datadb=None, users = 1): print("Validating user") ## first we need to login as PI: user.signin(driver,piuser['email'], piuser['password'], url, testname, errordb, datadb, users) print("Go to validation page") url = url+'/portal/institution#requests' page.load(driver, url, testname, errordb,datadb, '//h2[text() = \'From your authorities\']','xpath', users) print("Validating user: %s" % (fakeuser['email'])) # find user on the list try: driver.find_element_by_xpath("//tr//td//a[text() = '%s']/../preceding-sibling::td//input[@type = 'checkbox']" % (fakeuser['email'])).click() except: message = "could not find user on the list: %s " % (fakeuser['email']) error.save_and_quit(message, url, testname, driver, errordb) #... and click validate button try: driver.find_element_by_id('portal__validate').click() except: message = "I was not able to find and click 'Validate' button... something wrong" error.save_and_quit(message, url, testname, driver, errordb) print("SUCCESS: User has been validated") return
def test_dashboard_graph_preview(self): """ This test, after create a graph with data, checks the Sigma visualization running a simple JavaScript code. This code gets the current instance of Sigma and checks the data with Sylva JavaScript object. """ signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) create_data(self) self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.is_element_present_by_id('wait_for_js', 3) js_code = ''' var instanceId = '0'; for (key in sigma.instances) { instanceId = key; break; } var instance = sigma.instances[instanceId]; var nodeId = '0'; for (key in sylva.nodes['1']) { nodeId = key; break; } sigma.test_node_id = instance.getNodes(nodeId).id; ''' self.browser.execute_script(js_code) text = self.browser.evaluate_script('sigma.test_node_id') Graph.objects.get(name="Bob's graph").destroy() self.assertNotEqual(text.find("Bob's node"), -1)
def mainpage(db): #mainpage(db) choice = -1 while (choice != '0'): os.system('cls' if os.name == 'nt' else 'clear') print("\n" + double) print('\n' + 'Welcome!'.center(49)) print('Select Main Menu'.center(49)) a = """ +-----------+ | 1 SIGN IN | +-----------+ +-----------+ | 2 SIGN UP | +-----------+ +-----------+ | q EXIT | +-----------+ """ print(a) print(double) choice = input("Enter: ") clear() if choice == "1": user.signin(db) elif choice == "2": user.signup(db) elif choice == "q": print("BYE-!") return
def test_automatic_tour(self): """ Thist test checks that the tour starts automatically after signup, only once. """ self.browser.is_element_present_by_id("wait_for_cookie_tour", 3) signin(self, "bob", "bob_secret") exist = self.browser.is_element_present_by_xpath("//div[@class='joyride-content-wrapper']") spin_assert(lambda: self.assertEqual(exist, True)) self.browser.visit(self.live_server_url + "/dashboard/") exist = self.browser.is_element_present_by_xpath("//div[@class='joyride-content-wrapper']") spin_assert(lambda: self.assertNotEqual(exist, True))
def test_automatic_tour(self): """ Thist test checks that the tour starts automatically after signup, only once. """ self.browser.is_element_present_by_id('wait_for_cookie_tour', 3) signin(self, 'bob', 'bob_secret') exist = self.browser.is_element_present_by_xpath( "//div[@class='joyride-content-wrapper']") spin_assert(lambda: self.assertEqual(exist, True)) self.browser.visit(self.live_server_url + '/dashboard/') exist = self.browser.is_element_present_by_xpath( "//div[@class='joyride-content-wrapper']") spin_assert(lambda: self.assertNotEqual(exist, True))
def users_action(action, driver, url, piuser, fakeuser, testname, errordb, datadb, concurrent_users): # define ID of button objects on the website if action == 'delete_user': button_id = 'deleteusers' elif action == 'upgrade_user': button_id = 'makepi' elif action == 'downgrade_user': button_id = 'removepi' else: button_id = None message = "This action: %s is not supported" % action error.save_and_quit(message, url, testname, driver, errordb) # sign-in as PI print("Running action: %s" % action) user.signin(driver, piuser['email'], piuser['password'], url, testname, errordb, datadb, concurrent_users) print("Go to users management page") url += '/portal/institution#users' search_for = "//input[@data-email='%s']" % (piuser['email']) load(driver, url, testname, errordb, datadb, search_for, 'xpath', concurrent_users) print("Searching user: %s" % (fakeuser['email'])) # find user on the list try: driver.find_element_by_xpath("//input[@data-email='%s']" % (fakeuser['email'])).click() user_exist = 1 except: message = "could not find user on the list: %s " % (fakeuser['email']) error.save_html(driver.page_source, testname) error.save_and_quit(message, url, testname, driver, errordb) # run action try: driver.find_element_by_id(button_id).click() except: message = "I was not able to find and click button: %s" % button_id error.save_html(driver.page_source, testname) error.save_and_quit(message, url, testname, driver, errordb) # TODO - wait for results - handle JS popup print("SUCCESS: Action: %s was completed successfully:" % action) return
def reject_institution(driver, url, piuser, institution, testname, errordb=None, datadb=None, users = 1): print("Rejecting institution") user.signin(driver, piuser['email'], piuser['password'], url, testname, errordb, datadb, users) url += '/portal/institution#requests' page.load(driver, url, testname, errordb,datadb, '//h2[text() = \'From your authorities\']','xpath', users) print("Rejecting institution: %s" % (institution['name'])) # find institution on the list try: driver.find_element_by_xpath("//tr//td//b[text() = '%s']/../preceding-sibling::td//input[@type = 'checkbox']" % (institution['name'])).click() exist = 1 except: message = "could not find institution on the list: %s " % (institution['name']) error.save_and_quit(message, url, testname, driver, errordb) #... and click validate button try: driver.find_element_by_id('portal__reject').click() except: message = "I was not able to find and click 'Validate' button... something wrong" error.save_and_quit(message, url, testname, driver, errordb) counter = 5 while (exist==1) and (counter > 0): t.sleep(3) page.load(driver, url, testname, errordb, datadb, '//h2[text() = \'From your authorities\']','xpath', users) try: driver.find_element_by_xpath("//tr//td//b[text() = '%s']" % (institution['name'])) counter-=1 except: exist = 0 if (exist): message = "FAILED: institution has NOT been rejected" error.save_and_quit(message, url, testname, driver, errordb) else: print("SUCCESS: institution has been rejected") return
def test_graph_change_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) self.browser.find_by_xpath( "//div[@class='dashboard-graphs']/div/div/span[@class='graph-title']/a" ).first.click() add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', GRAPH_CHANGE) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath( "//div[@class='graph-item']/span[@class='graph-title']/a" ).first.click() self.browser.find_by_xpath("//input[@id='id_name']").first.fill( "Alice's graph") self.browser.find_by_xpath( "//form/input[@type='submit']").first.click() text = self.browser.find_by_xpath( "//div[@class='graph-item']/span[@class='graph-title']/a" ).first.value spin_assert(lambda: self.assertEqual(text, "Alice's graph")) Graph.objects.get(name="Alice's graph").destroy()
def test_schema_change_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', SCHEMA_VIEW) add_permission(self, 'alice', SCHEMA_CHANGE) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath( "//nav[@class='menu']/ul/li[3]/a").first.click() self.browser.find_by_xpath("//fieldset[@class='module aligned wide model']/h2/a").first.click() self.browser.find_by_xpath( "//input[@id='id_name']").first.fill("Alice's type") self.browser.find_by_xpath("//span[@class='buttonLinkOption buttonLinkLeft']/input[@type='submit']").first.click() text = self.browser.find_by_xpath( "//fieldset[@class='module aligned wide model']/h2/a").first.value self.assertEqual(text, "Alice's type") Graph.objects.get(name="Bob's graph").destroy()
def test_data_change_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) create_data(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', DATA_VIEW) add_permission(self, 'alice', DATA_CHANGE) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath("//a[@id='dataMenu']").first.click() self.browser.find_by_xpath("//div[@id='dataBrowse']/table/tbody/tr/td/a[@class='dataOption list']").first.click() self.browser.find_by_xpath("//td/a[@title='Edit node']").first.click() self.browser.find_by_xpath( "//input[@id='id_Name']").first.fill("Alice's node") self.browser.find_by_xpath("//input[@type='submit']").first.click() text = self.browser.find_by_xpath("//table[@id='content_table']/tbody/tr/td")[1].value self.assertEqual(text, "Alice's node") Graph.objects.get(name="Bob's graph").destroy()
def test_data_delete_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) create_data(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', DATA_VIEW) add_permission(self, 'alice', DATA_CHANGE) add_permission(self, 'alice', DATA_DELETE) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath("//a[@id='dataMenu']").first.click() self.browser.find_by_xpath("//div[@id='dataBrowse']/table/tbody/tr/td/a[@class='dataOption list']").first.click() self.browser.find_by_xpath("//td/a[@title='Edit node']").first.click() self.browser.find_by_xpath("//span[@class='buttonLinkOption buttonLinkRight']/a[text()='Remove']").first.click() self.browser.choose('confirm', '1') self.browser.find_by_xpath("//input[@type='submit']").first.click() text = self.browser.find_by_xpath( "//div[@id='content2']/div[@class='indent']").first.value self.assertNotEqual(text.find('Nodes: 0'), -1) Graph.objects.get(name="Bob's graph").destroy()
def test_data_delete_without_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) create_data(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', DATA_VIEW) add_permission(self, 'alice', DATA_CHANGE) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() spin_click( self.browser.find_by_xpath("//a[@id='dataMenu']").first, self.browser.find_by_xpath( "//div[@id='dataBrowse']/table/tbody/tr/td/a[@class='dataOption list']" ).first) self.browser.find_by_xpath("//td/a[@title='Edit node']").first.click() self.browser.find_by_xpath( "//span[@class='buttonLinkOption buttonLinkRight']/a[text()='Remove']" ).first.click() text = self.browser.find_by_xpath( "//div[@class='heading']/h1").first.value spin_assert(lambda: self.assertNotEqual(text.find("403"), -1)) Graph.objects.get(name="Bob's graph").destroy()
def test_dashboard_graph_preview(self): """ This test, after create a graph with data, checks the Sigma visualization running a simple JavaScript code. This code gets the current instance of Sigma and checks the data with Sylva JavaScript object. """ signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) create_data(self) self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.is_element_present_by_id('wait_for_js', 3) js_code = ''' var instance = sigma.instances(0); var node = instance.graph.nodes()[0]; sylva.test_node_name = node.properties.Name; ''' self.browser.execute_script(js_code) text = self.browser.evaluate_script('sylva.test_node_name') Graph.objects.get(name="Bob's graph").destroy() spin_assert(lambda: self.assertNotEqual(text.find("Bob's node"), -1))
def test_graph_view_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) self.browser.find_by_xpath("//div[@class='dashboard-graphs']/div/div/span[@class='graph-title']/a").first.click() add_permission(self, 'alice', CREATE_COLLAB) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() text = self.browser.find_by_xpath("//div[@class='graph-item']/span[@class='graph-title']/a").first.value self.assertEqual(text, "Bob's graph") Graph.objects.get(name="Bob's graph").destroy()
def test_graph_view_without_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) self.browser.find_by_xpath("//div[@class='dashboard-graphs']/div/div/span[@class='graph-title']/a").first.click() logout(self) signin(self, 'alice', 'alice_secret') self.browser.visit(self.live_server_url + '/graphs/bobs-graph/') text = self.browser.find_by_xpath( "//div[@class='heading']/h1").first.value self.assertNotEqual(text.find("403"), -1) Graph.objects.get(name="Bob's graph").destroy()
def test_schema_view_without_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) add_permission(self, 'alice', CREATE_COLLAB) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath( "//nav[@class='menu']/ul/li[3]/a").first.click() text = self.browser.find_by_xpath( "//div[@class='heading']/h1").first.value self.assertNotEqual(text.find("403"), -1) Graph.objects.get(name="Bob's graph").destroy()
def test_data_add_without_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', DATA_VIEW) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath("//a[@id='dataMenu']").first.click() self.browser.find_by_xpath("//div[@id='dataBrowse']/table/tbody/tr/td/a[@class='dataOption new']").first.click() text = self.browser.find_by_xpath( "//div[@class='heading']/h1").first.value self.assertNotEqual(text.find("403"), -1) Graph.objects.get(name="Bob's graph").destroy()
def test_schema_view_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', SCHEMA_VIEW) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath( "//nav[@class='menu']/ul/li[3]/a").first.click() text = self.browser.find_by_xpath( "//fieldset[@class='module aligned wide model']/h2/a").first.value self.assertEqual(text, "Bob's type") Graph.objects.get(name="Bob's graph").destroy()
def test_data_view_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) create_data(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', DATA_VIEW) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() spin_click(self.browser.find_by_xpath("//a[@id='dataMenu']").first, self.browser.find_by_xpath("//div[@id='dataBrowse']/table/tbody/tr/td/a[@class='dataOption list']").first) text = self.browser.find_by_xpath("//table[@id='content_table']/tbody/tr/td")[1].value spin_assert(lambda: self.assertEqual(text, "Bob's node")) Graph.objects.get(name="Bob's graph").destroy()
def test_graph_change_with_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) self.browser.find_by_xpath("//div[@class='dashboard-graphs']/div/div/span[@class='graph-title']/a").first.click() add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', GRAPH_CHANGE) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() self.browser.find_by_xpath("//div[@class='graph-item']/span[@class='graph-title']/a").first.click() self.browser.find_by_xpath( "//input[@id='id_name']").first.fill("Alice's graph") self.browser.find_by_xpath( "//form/input[@type='submit']").first.click() text = self.browser.find_by_xpath("//div[@class='graph-item']/span[@class='graph-title']/a").first.value self.assertEqual(text, "Alice's graph") Graph.objects.get(name="Alice's graph").destroy()
def test_data_delete_without_permissions(self): signup(self, 'alice', '*****@*****.**', 'alice_secret') signin(self, 'alice', 'alice_secret') logout(self) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret') create_graph(self) create_schema(self) create_type(self) create_data(self) add_permission(self, 'alice', CREATE_COLLAB) add_permission(self, 'alice', DATA_VIEW) add_permission(self, 'alice', DATA_CHANGE) logout(self) signin(self, 'alice', 'alice_secret') self.browser.find_link_by_href('/graphs/bobs-graph/').first.click() spin_click(self.browser.find_by_xpath("//a[@id='dataMenu']").first, self.browser.find_by_xpath("//div[@id='dataBrowse']/table/tbody/tr/td/a[@class='dataOption list']").first) self.browser.find_by_xpath("//td/a[@title='Edit node']").first.click() self.browser.find_by_xpath("//span[@class='buttonLinkOption buttonLinkRight']/a[text()='Remove']").first.click() text = self.browser.find_by_xpath( "//div[@class='heading']/h1").first.value spin_assert(lambda: self.assertNotEqual(text.find("403"), -1)) Graph.objects.get(name="Bob's graph").destroy()
def setUp(self): self.browser = Browser(firefox_path=os.getenv('FIREFOX_PATH', None)) socket.setdefaulttimeout(30) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret')
def test_dashboard_new_graph(self): signin(self, 'bob', 'bob_secret') create_graph(self) Graph.objects.get(name="Bob's graph").destroy()
def setUp(self): self.browser = Browser() signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret')
def setUp(self): self.browser = Browser() socket.setdefaulttimeout(30) signup(self, 'bob', '*****@*****.**', 'bob_secret') signin(self, 'bob', 'bob_secret')
def onClick(u, p): user.signin(u, p)