def test_linked_published_dataset_then_publish(driver: selenium.webdriver, *args, **kwargs): """ 1. create and publish a dataset 2. create a project and link the dataset 3. publish the project """ # create a dataset # dataset set up testutils.log_in(driver) testutils.GuideElements(driver).remove_guide() ds_elements = testutils.DatasetElements(driver) # create and publish datset dataset_title_local = ds_elements.create_dataset(testutils.unique_dataset_name()) ds_elements.publish_dataset() driver.get(os.environ['GIGANTUM_HOST']) r = testutils.prep_py3_minimal_base(driver, skip_login=True) username, project_name = r.username, r.project_name filebrowser_elts = testutils.ProjectFileBrowserElements(driver) filebrowser_elts.link_dataset('a', 'b') time.sleep(4) pp = testutils.PublishProjectElements(driver) pp.publish_project() time.sleep(4)
def test_init_graphql(driver, *args, **kwargs): # Project set up username = testutils.log_in(driver) time.sleep(1) testutils.GuideElements(driver).remove_guide() time.sleep(1) owner, proj_name = create_py3_minimal_project( testutils.unique_project_name()) time.sleep(1) driver.get( f'{os.environ["GIGANTUM_HOST"]}/projects/{username}/{proj_name}') time.sleep(5)
def test_create_local_branch(driver: selenium.webdriver, *args, **kwargs): """ Test the creation of a local branch. Args: driver """ # Project set up username = testutils.log_in(driver) time.sleep(2) testutils.GuideElements(driver).remove_guide() owner, proj_name = graphql.create_py3_minimal_project( testutils.unique_project_name()) driver.get( f'{os.environ["GIGANTUM_HOST"]}/projects/{username}/{proj_name}') time.sleep(4) logging.info("Creating a new branch") branch_elts = testutils.BranchElements(driver) branch_elts.create_branch_button.click() branch_elts.branch_name_input.send_keys("my-test-branch") branch_elts.create_button.click() time.sleep(5) logging.info("Checking that the new branch is local only") upper_left_branch_name = driver.find_element_by_css_selector( ".BranchMenu__dropdown-text").text upper_left_local_only = driver.find_element_by_css_selector( '.BranchMenu__dropdown-btn>div[data-tooltip="Local only"]') assert upper_left_branch_name == "my-test-branch", "Expected to be on my-test-branch, upper left" assert upper_left_local_only, "Expected my-test-branch to be local only, upper left" # Open manage branches branch_elts.manage_branches_button.click() time.sleep(2) manage_branches_branch_name = driver.find_element_by_css_selector( ".Branches__branchname").text manage_branches_local_only = driver.find_element_by_css_selector( '.Branches__details>div[data-tooltip="Local only"]') assert manage_branches_branch_name == "my-test-branch", "Expected to be on my-test-branch, manage branches" assert manage_branches_local_only, "Expected my-test-branch to be local only, manage branches"
def test_featured_public_projects(driver: selenium.webdriver, *args, **kwargs): """ Test that featured public projects import and build successfully. Args: driver """ # Project set up testutils.log_in(driver) testutils.GuideElements(driver).remove_guide() # Import featured public projects import_project_elts = testutils.ImportProjectElements(driver) side_bar_elts = testutils.SideBarElements(driver) # TO DO - add in https://gigantum.com/gigantum-examples/allen-sdk-examples # TO DO - add in gigantum.com/randal/baltimore-sun-data-bridge-data featured_public_projects = [ "gigantum.com/meg297/military-expenditure-gdp-population", "gigantum.com/billvb/fsw-telecoms-study" ] for project in featured_public_projects: logging.info(f"Importing featured public project: {project}") import_project_elts.import_existing_button.click() time.sleep(2) import_project_elts.project_url_input.send_keys(project) time.sleep(2) import_project_elts.import_button.click() wait = selenium.webdriver.support.ui.WebDriverWait(driver, 200) wait.until( EC.visibility_of_element_located((By.CSS_SELECTOR, "#overview"))) wait.until( EC.visibility_of_element_located( (By.CSS_SELECTOR, ".flex>.Stopped"))) project_stopped_visible = driver.find_element_by_css_selector( ".flex>.Stopped").is_displayed() assert project_stopped_visible, "Expected stopped container status" logging.info( f"Featured public project {project} was imported successfully") side_bar_elts.projects_icon.click() time.sleep(2)
def test_dataset_file_browser(driver: selenium.webdriver, *args, **kwargs): """ Test that a file can be dragged and dropped into data in a dataset. Args: driver """ testutils.log_in(driver) testutils.GuideElements(driver).remove_guide() dataset_elts = testutils.DatasetElements(driver) dataset_title = dataset_elts.create_dataset(testutils.unique_dataset_name()) logging.info(f"Navigating to Data for dataset: {dataset_title}") file_browser_elts = testutils.FileBrowserElements(driver) file_browser_elts.data_tab.wait().click() logging.info(f"Dragging and dropping file into Data for dataset: {dataset_title}") time.sleep(3) file_browser_elts.drag_drop_file_in_drop_zone() time.sleep(3) assert file_browser_elts.file_information.find().text == 'sample-upload.txt', \ "Expected sample-upload.txt to be the first file in Data"
def test_linked_published_dataset_then_publish(driver: selenium.webdriver, *args, **kwargs): """ Test that a dataset can be created, published, linked to a project and published with the project. """ testutils.log_in(driver) testutils.GuideElements(driver).remove_guide() ds_elts = testutils.DatasetElements(driver) # Create and publish dataset ds_elts.create_dataset(testutils.unique_dataset_name()) ds_elts.publish_dataset() # Create a project, link dataset, and publish project driver.get(os.environ['GIGANTUM_HOST']) r = testutils.prep_py3_minimal_base(driver, skip_login=True) username, project_title = r.username, r.project_name file_browser_elts = testutils.FileBrowserElements(driver) file_browser_elts.link_dataset('a', 'b') time.sleep(4) cloud_project_elts = testutils.CloudProjectElements(driver) cloud_project_elts.publish_private_project(project_title) time.sleep(4)