Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.9rc2 testing (v0.9rc2-2-gc9c4b5e on OSX/Chrome) #129

Open
45 of 50 tasks
bodom0015 opened this issue Feb 28, 2020 · 4 comments
Open
45 of 50 tasks

v0.9rc2 testing (v0.9rc2-2-gc9c4b5e on OSX/Chrome) #129

bodom0015 opened this issue Feb 28, 2020 · 4 comments

Comments

@bodom0015
Copy link
Member

bodom0015 commented Feb 28, 2020

Test Plan

https://github.com/whole-tale/wt-design-docs/issues/new?template=test_plan.md

Note: For all tests, repeat for supported browser/OS combinations.

Preconditions:

  • Clear browsing history or open incognito/private session
  • Disconnect all third party integrations

Authentication

  • Basic login flow
  1. Goto https://dashboard.stage.wholetale.org
  2. Select "Access Whole Tale" button. You should be prompted to login via Globus Auth.
  3. Select your organization and login
  4. You should be taken to the Browse page
  5. Your Gravatar and user name should display
  • Basic logout flow
  1. Select the "User" menu
  2. Select the "Log out" menu item. You should be taken to the login page.
  3. Select "Access Whole Tale" button.
  4. Note that you are not prompted to login.
    1. Note issue #384 for logout for Globus
  5. Restart your incognito session
  6. Select "Access Whole Tale" button. You should be prompted to login via Globus Auth.
  • Return-route for non-logged in users (#300)
  1. Logout from Whole Tale
  2. Attempt to access https://dashboard.stage.wholetale.org/manage
  3. You should be redirected to https://dashboard.stage.wholetale.org/login?rd=%252Fmanage
  4. Select "Access Whole Tale".
  5. You should be redirected to the Manage page.

Navigation

  • General navigation
  1. Select "Browse" button. Browse page should display
  2. Click "Create New..." and choose "Create new Tale". Create Tale modal should display, then close the modal.
  3. Select "Manage" button. Manage page should display
  4. Select "i" button should open User Guide in new tab
  5. Select "Notification" button should display the notification panel
  6. Select "Report a problem" button should open https://github.com/whole-tale/whole-tale/issues in new tab
  7. Select "View" on a Tale. The Run page should display
  8. Click the "user" icon
  • You should see a dropdown expand
  • The dropdown should contain the user's first/last name and gravatar image
  • The dropdown should provide a link to the Settings page
  • The dropdown should provide an option to Logout
  • Select the "Settings" option should bring you to the Settings page

Browse

Preconditions:

  • Assumes production Tales present (e.g., LIGO, materials, etc).

  • No running instances

  • General

  1. Select "Browse" button. Confirm browse page displays
  2. Confirm that no Tales are running
  • Search
  1. Enter "Ligo" as search term. Confirm only LIGO tale displays
  2. Clear search term. Confirm all tales display

TESTCASE: Search filtering appears to work, but the original LIGO Tale missing from master list on https://dashboard.stage.wholetale.org

  • Filter
  1. Navigate to the Browse page
  2. Confirm that you can switch between "All Tales" and "My Tales"
  3. Confirm that all public Tales are shown on "All Tales"
  4. Confirm that your Tales are shown under "My Tales"
  5. Select "My Tales"
  6. View a Tale and then navigate back to Browse
  7. Confirm the filter is reset
  • View tale
  1. Select "View" button on LIGO Tale
  2. Confirm that Run > Metadata page displays
  3. Confirm that you cannot delete or edit Tale properties
  4. Select Back button. Confirm that you are taken back to Browse page
  5. Select "View" button on Tale you own
    1. Confirm that the Run and Close buttons are present
    2. Confirm that you can edit Tale properties
    3. Select "Close"
    4. Confirm that you are taken back to Browse
  • Launch instance
  1. Select "Run Tale" button on "Ligo" tale
    1. Confirm you are prompted to Copy and Run
    2. Select Copy and Run
    3. Confirm that you are redirected to the Tale's Run page
    4. Confirm that the notification dialog appears
    5. Confirm that the step progression is correct
    6. Navigate to the Browse page
    7. Confirm that the Tale is shown under "Currently Running"
    8. Select "View" on the Tale card
  2. Select "Stop" to end the Tale instance
    1. Confirm that the Tale has stopped
    2. Confirm that the button has changed to Run
  3. Navigate to Browse
    1. Confirm that there are no Tales under "Currently Running"
    2. Select the "Run Tale" button on a Tale you own
    3. After the instance is launched, navigate back to the Browse page
    4. Try to delete the Tale (not instance)
    5. Confirm you cannot select the delete button on the browse page
    6. Confirm that the "Run Tale" button has been replaced with "Stop Tale"
    7. Confirm that the Tale is shown at the top of the page under "Currently running"

TESTCASE: Add a step to "View Logs" while awaiting Tale image build

Manage

Preconditions

  • Empty home directory

  • No registered data

  • Register General

  1. Select Manage > Data > "+" to open register panel
  2. Confirm list of providers matches list of supported providers (Globus, DataONE, Dataverse, Zenodo)
  • Register DataONE data
  1. Select Manage > Data tab
  2. Select "+". Confirm "Search for Data Sources" modal displays
  3. Search for DOI 10.5065/D6862DM8
  4. Confirm "Humans and Hydrology" dataset is found on DataONE.
  5. Select Register
  6. Confirm dataset appears in Manage Data list
  7. Confirm additional URL formats:
    1. https://search.dataone.org/view/doi:10.5063/F1Z60M87
    2. https://search.dataone.org/view/https://pasta.lternet.edu/package/metadata/eml/knb-lter-nwt/115/1
    3. https://search.dataone.org/view/doi:10.18739/A2CN6XZ7H
    4. https://raw.githubusercontent.com/whole-tale/dashboard/master/.travis.yml

XXX: Had to manually refresh after removing datasets - possibly whole-tale/dashboard#427?

  • Dataverse
  1. Register dataset doi:10.7910/DVN/SZ9YXZ
  2. Confirm "Replication Data for: Direct Democracy and Women's Political Engagement" from Dataverse
  • Globus/MDF
  1. Confirm DOI resolution for http://dx.doi.org/doi:10.18126/M2301J results in https://petreldata.net/mdf/detail/pub_30_shahani_twinmediated_v1.2
  2. Register dataset https://petreldata.net/mdf/detail/pub_30_shahani_twinmediated_v1.2

XXX: Searching for this DOI/dataset yielded an error message: No matching results found.

Run

Preconditions:

  • No running Tale instances

  • General

  1. Launch (Copy and Run) the Ligo Tale and wait for instance to start
  2. Confirm you are on the Run page
    1. Confirm Run panel displays Tale icon, title, and author
    2. Confirm Run page displays Interact, Files, Metadata tabs
  3. Select "..." menu.
    1. "Learn more" displays https://wholetale.readthedocs.io/en/stable/users_guide/run.html
    2. Confirm fullscreen displays Run panel in full screen
    3. Confirm that the options for exporting the Tale are present

TESTCASE: There is now only one option for exporting a Tale - wording could be adjusted slightly to convey this

  • Interact tab
  1. Select the "Interact" tab
  2. Confirm Jupyter environment is displayed in iframe
  3. Select "popout" icon. Confirm Jupyter is opened in new Tab
  • Files tab
  1. Select "Files" tab
  2. You should see a vertical navigation menu with three tabs: "Home", "External Data", and "Tale Workspace".
  • Metadata tab - Owned Tale
  1. Launch a Tale that you own
  2. Add multiple datasets that have DOIs to the Tale
  3. Navigate to Run > metadata
  4. Valid environments should be listed in the Environment dropdown menu
  5. Valid licenses should be listed in the License dropdown
  6. Confirm that you see Created by <your_name> under Authors
  7. Confirm that your Tale has the CC4 license assigned to it
  8. Confirm that the Tale's Published Location reads This Tale has not been published
  9. Confirm that there are citations for the external datasets
  10. Change the name of the Tale, Category, Description, Illustration, Public, License, and add multiple authors
  11. Select Save. Confirm that you see a notification telling you that the Tale was saved.
  12. Refresh the page. Your changes should be preserved between page refreshes, confirming that they are being properly persisted.
  13. Confirm that the new Tale authors are displayed on the Tale card
  • Home
  1. Select Files > Home. Confirm that your home directory displays
  2. Create a folder and upload a file to the folder
  3. Confirm file operations:
    1. Copy, rename, remove, download

TESTCASE: Missing confirmation of "Move To..." - how should this work?
XXX: Needed manual refresh in between copying and deleting - we should attempt to refresh the data after each operation (e.g. copy, delete, etc)

  • External data
  1. Precondition: Register one or more Datasets (e.g. doi:10.18739/A29G5GD0V) on Manage > Data (see Manage > Register test cases above)
    • NOTE: You may need to wait for registration to complete
  2. Confirm "External Data" list is initially empty
  3. Confirm (+) button ("Select Data modal") behavior
    1. Confirm that "WholeTale Catalog" shows all registered datasets
    2. Confirm that "My Data" filters to only show your registered datasets
    3. "Add" data to associate it with a Tale
    4. "Remove" data to dissociate it with a Tale
    5. "Select" saves your changes back to the server
    6. "Cancel" aborts the operation without saving and reverts your changes
  4. Confirm "External Data" list matches what was saved
  • Workspaces
  1. Confirm create folder
  2. Confirm upload file
  3. Select "+" button has options "New folder", "Upload file", Import Tale Data..."
  4. Folder operations
    1. Confirm context menu Move To, Copy, Rename, Download, Remove
      • Note: "Move To" is missing as of v0.8
    2. Confirm rename folder
    3. Confirm download folder (this should result in a zip file)
    4. Confirm remove folder
  5. File operations
    1. Upload a file
    2. Confirm context menu Move To, Copy, Rename, Download, Remove
      • Note: "Move To" is missing as of v0.8
    3. Confirm rename folder
    4. Confirm download file
    5. Confirm remove file
  6. Select "Import Tale Data..."
    1. Note vertical navigation with Tale Workspaces
    2. Copy to Workspace from another workspace
    3. Move to workspace from another workspace

XXX: Needed manual refresh in between copying and deleting - we should attempt to refresh the data after each operation (e.g. copy, delete, etc)

  • Exporting - BagIt
  1. View a Tale that you own
  2. Navigate to Run
  3. Click the three-dot-dropdown
  4. Select 'Export as BagIt'
  5. Confirm that you are asked to start a download for the archive
  6. Open the archive
  7. Confirm that the top level has
    1. bag-info.txt
    2. bagit.txt
    3. data/
    4. fetch.txt
    5. manifest-md5.txt
    6. manifest-sha256.txt
    7. metadata/
    8. run-local.sh
    9. tagmanifest-sha256.txt
    10. tagmanifest-md5.txt
    11. README.md
  8. Navigate into the metadata folder
  9. Confirm that there is a manifest.json and environment.json file
  10. Navigate to /data
  11. Confirm that there is a LICENSE file

TESTCASE: I was not asked for confirmation, the download just started up

Settings

  • Default State
  1. Navigate to the Settings page
  2. Confirm there are empty settings for DataONE, Dataverse, and Zenodo
  • Connect to DataONE
  1. Click "Connect Account" under the DataONE repository
  2. Confirm that you're redirected to the DataONE login
  3. Log in with ORCID
  4. Confirm that you're redirected back to Whole Tale
  5. Confirm that you see "Authorized" under the DataONE server
  6. Confirm that the "Connect Account" Button is disabled
  7. Disconnect your account
  8. Confirm that you can re-connect it
  • Connect to Dataverse
  1. Click "Connect Account" in the Dataverse section
  2. Confirm that the connection modal opens
  3. Enter your API key for one of the repositories
  4. Click "Connect"
  5. Confirm that you see "Authorized on "
  6. Repeat for each Dataverse server

XXX: "Connect Account" should disable when no new resource_servers can be offered

  • Connect to Zenodo
  1. Click "Connect Account" in the Zenodo section
  2. Confirm that the connection modal opens
  3. Enter your API key for one of the repositories
  4. Click "Connect"
  5. Confirm that you see "Authorized on "
  6. Repeat for each Zenodo server

XXX: "Connect Account" should disable when no new resource_servers can be offered

  • Confirm tokens retained across logins
    #370
  1. Connect one or more accounts as outlined above
  2. Logout and login again
  3. Using Swagger UI, hit the /user/me endpoint to confirm tokens are still present

Tale Creation

  • Create RStudio Tale
  1. Select the Create New... button on the Browse Page
  2. Select the Create New Tale dropdown item
  3. Enter title "Test Tale"
  4. Select compute environment RStudio
  5. Select "Create New Tale and Launch"
  6. Confirm notification dialog opens
  7. Confirm that the build/launch steps are correct
  8. Confirm that you are redirected to the Run page
  9. Navigate to the Browse page
  10. Confirm the Tale is shown under "Currently running"
  • Compose Jupyter Tale

TESTCASE: Which Jupyter? All of them? (Current assumption is to try to run all of them)
XXX: I attempted to build all types of Jupyter Tales and received an error message ( Error: Building image) from both Jupyter Notebook and Jupyter Classic - . I am unable to view the logs of the Tale to debug further

  • Compose OpenRefine Tale

  • Too many instances

  1. Make sure you have two launched Tales
  2. Attempt to create a Tale
  3. Confirm that you receive an error that you have the max limit
  4. Confirm that the Tale is created, but not the instance

Analyze in Whole Tale

Task 1: Importing a Dataset from Dataverse

These test cases cover potential situations that can occur when importing datasets from Dataverse.

  • Case 1: Ideal Scenario:

Testing Steps:

  1. Remove all running Tale instances
  2. Navigate to https://girder.stage.wholetale.org/api/v1/integration/dataverse?datasetPid=doi%3A10.7910%2FDVN%2F3MJ7IR&siteUrl=https%3A%2F%2Fdataverse.harvard.edu
  3. Confirm that the Tale title reads as Replication Data for: "Agricultural Fires and Health at Birth"
  4. Confirm that the only item in the Input data section matches the uri with Data Source appended
  5. Confirm that no environment is selected
  6. Confirm that the Create New Tale and Launch button is disabled
  7. Select an environment
  8. Confirm that READ WRITE is selected
  9. Click Create New Tale and Launch
  10. Confirm that you are redirected to the run page
  11. Confirm that the Tale name matches the Tale Name in the Create Tale Modal
  12. Confirm that the dataset contents exists under External Data Tale Workspace
  13. Confirm that the Tale's category is science

TESTCASE: No "External Data" appeared, even after Tale was running. Dataset also did not appear under "Manage" after Tale was running (same as in #125). I believe this is a typo in the test case, as READ/WRITE shouldn't result in any "External Data"

Task 2: Importing a Dataset from DataONE

These test cases cover different scenarios that may happen when importing datasets from DataONE.

  • Case 1: Ideal Scenario:

This test covers the ideal case where dataset importing has all of the needed information
to properly run. This includes the dataset location, title, and selected environment.

Testing Steps:

  1. Remove all running Tale instances
  2. Navigate to https://girder.stage.wholetale.org/api/v1/integration/dataone?uri=https%3A%2F%2Fsearch.dataone.org%2Fview%2Fdoi%3A10.18739%2FA2VQ2S94D&title=Fire%20influences%20on%20forest%20recovery%20and%20associated%20climate%20feedbacks%20in%20Siberian%20Larch%20Forests%2C%20Russia&environment=RStudio
  3. Confirm that the Tale title reads as Fire influences on forest recovery and associated climate feedbacks in Siberian Larch Forests, Russia
  4. Confirm that the only item in the Selected data section matches the uri with Data Source appended
  5. Confirm that Rstudio is selected in the Environments widget
  6. Confirm that the Create New Tale and Launch button is enabled
  7. Confirm READ ONLY is selected
  8. Click Create New Tale and Launch
  9. Confirm that you are redirected to the run page
  10. Confirm that the Tale name matches the Tale Name in the Create Tale Modal
  11. Confirm that the data exists in the Tale under External Data
  12. Confirm that the Tale's category is science
  • Case 2: Testing Different DataONE Deployments
    The Analyze in Whole Tale feature is deployed across a few DataONE test sites. This test ensures Whole Tale has the ability to import
    data from each of them.

Links:

  1. https://dashboard.stage.wholetale.org/browse?api=https%3A%2F%2Fdev.nceas.ucsb.edu%2Fknb%2Fd1%2Fmn%2Fv2&name=Dataone%20Dataset&uri=https://dev.nceas.ucsb.edu/view/doi:10.5072/FK2K075M25
  2. https://dashboard.stage.wholetale.org/browse?api=https://test.arcticdata.io/metacat/d1/mn/v2&name=Dataone%20Dataset&uri=https://test.arcticdata.io/view/doi:10.5065/D6N014NC

Testing Steps:

  1. Remove all running Tale instances
  2. Navigate to each of the two links above
  3. Select an environment
  4. Click Create New Tale and Launch
  5. Confirm that the correct data exists in the Tale under External Data

Task 3: Shared Behavior

These cases show errors that are common between Dataverse and DataONE. Although they are tested using DataONE URIs, the errors should be the same when replacing it with a Dataverse URI.

  • Case 1: Missing Dataset Title Query Param:

This test covers the case where the name query parameter is missing. The expected behavior is
that the uri query parameter is used instead.

Testing Steps:

  1. Remove all running Tale instances
  2. Navigate to https://dashboard.stage.wholetale.org/browse?uri=https%3A%2F%2Fdataverse.harvard.edu%2Fapi%2Faccess%2Fdatafile%2F3323458
  3. Confirm that the Tale title reads as https://dataverse.harvard.edu/api/access/datafile/3323458
  4. Confirm that the only item in the Selected data section matches the uri with Data Source appended
  5. Confirm that no Environment is selected
  6. Confirm that the Create New Tale and Launch button is disabled
  7. Select an environment
  8. Click Create New Tale and Launch
  9. Confirm that the notification bar appears & properly updates
  10. Confirm that you are redirected to the run page
  11. Confirm that the Tale name matches the Tale Name in the Create Tale Modal
  12. Confirm that the data exists in the Tale under External Data
  • Case 2: Importing Data with Read/Write:

This test covers the case where a user imports data from an external source and selects READ/WRITE in the Create Tale Modal.

Testing Steps:

  1. Remove all running Tale instances
  2. Navigate to https://dashboard.stage.wholetale.org/browse?uri=https%3A%2F%2Fdataverse.harvard.edu%2Fapi%2Faccess%2Fdatafile%2F3323458 or https://dashboard.stage.wholetale.org/browse?api=https%3A%2F%2Fdev.nceas.ucsb.edu%2Fknb%2Fd1%2Fmn%2Fv2&environment=JupyterLab&name=proveit&uri=doi%3A10.5072%2FFK27P92Z55
  3. Confirm that the Tale title matches the dataset
  4. Confirm that the only item in the Selected data section matches the uri with Data Source appended
  5. Confirm that the Create New Tale and Launch button is disabled
  6. Select an environment
  7. Select READ/WRITE
  8. Click Create New Tale and Launch
  9. Confirm that the notification bar appears & properly updates
  10. Confirm that you are redirected to the run page
  11. Confirm that the Tale name matches the Tale Name in the Create Tale Modal
  12. Confirm that the data exists in the Tale Workspace

TESTCASE: https://dashboard.stage.wholetale.org/browse?uri=https%3A%2F%2Fdataverse.harvard.edu%2Fapi%2Faccess%2Fdatafile%2F3323458 does not provide a title, so step 3 may not be accurate for that case
TESTCASE: https://dashboard.stage.wholetale.org/browse?api=https%3A%2F%2Fdev.nceas.ucsb.edu%2Fknb%2Fd1%2Fmn%2Fv2&environment=JupyterLab&name=proveit&uri=doi%3A10.5072%2FFK27P92Z55 provides an environment, so step 7 is not necessary for that case
XXX: https://dashboard.stage.wholetale.org/browse?api=https%3A%2F%2Fdev.nceas.ucsb.edu%2Fknb%2Fd1%2Fmn%2Fv2&environment=JupyterLab&name=proveit&uri=doi%3A10.5072%2FFK27P92Z55 yields only a 404.html in the Tale Workspace.. possibly a bug, but perhaps this is expected?

Tale metadata tests

The purpose of these tests are to confirm that the metadata files (manifest.json, environment.json, LICENSE) we generate are correct.

  • manifest.json
  1. Launch a Tale that you own
  2. Add a dataset to the Tale
  3. Add at least one author
  4. Add at least one file to the workspace
  5. Export the Tale (as BagIt)
  6. Open the manifest.json file under metadata/
  7. Confirm that the author is listed under schema:author
  8. Confirm that you are listed under createdBy
  9. Confirm that the file(s) in the workspace are properly listed in aggregates
  10. Confirm that the external dataset is referenced in aggregates
  11. Confirm that the dataset is also listed under Datasets
  • environment.json
  1. Open the archive from the manifest.json test
  2. Navigate to metadata/environment.json
  3. Open the girder web API
  4. Locate and GET the Image that the Tale used
  5. Confirm that the config section from girder matches the config section in environment.json
  • LICENSE
  1. Open the archive from the manifest.json test
  2. Open the LICENSE file
  3. Navigate to Run > metadata
  4. Confirm that the opened LICENSE file matches the selected license on the metadata page
  5. Change the Tale's license
  6. Export the Tale
  7. Confirm that the LICENSE changed appropriately

Publishing tests

  • Case 1: No Accounts Configured

    1. Disconnect all of your external accounts
    2. Launch a Tale that you own
    3. Click the ellipsis dropdown on the Run page
    4. Click Publish tale...
    5. Confirm that your are notified to link accounts on the settings page
    6. Click Go to Settings
    7. Confirm you are re-directed to settings
  • Case 2: Publishing to a Third Party

    1. Connect to a third party provider (make sure it's a dev server)

    2. Launch a Tale that you own

    3. Add some data to it

    4. Click Publish tale...

    5. Confirm that the publishing modal opens

    6. Confirm that the third party that you are connected to appears in the dropdown

    7. Select the third party

    8. Click Publish

    9. Once complete, navigate to the metadata page

    10. Confirm that the published location is present

    11. Visit the published location

    12. Confirm that you see the following files plus yours

      1. metadata.xml
      2. LICENSE
      3. README.md
      4. manifest.json
      5. environment.json
    13. Repeat for each third party provider

      a. After publishing to DataONE, use girder to query the Tale

      b. Ensure that the 'pid' field in the 'publishInfo' object has an identifier in a doi format

XXX: Zenodo Sandbox worked fine, but DataONE Dev did not - after fixing the description and the authors, I was unable to publish with the following error message:

ERROR An error was encountered while publishing your Tale.
'size'

....... wat?

  • Case 3: Re-published Tale
  1. Launch a Tale that has been published before
  2. Take note of the Published Location in Run > metadata
  3. Re-publish the Tale to the third party
  4. Confirm that the Published Location has changed to the correct package landing page

Zenodo integration tests

  • Register Zenodo data
  1. Select Manage > Data tab
  2. Select "+". Confirm "Search for Data Sources" modal displays
  3. Search for Concept DOI doi:10.5281/zenodo.16384
  4. Confirm "Belmont Forum..." dataset is found on Zenodo with suffix ver_1
  5. Search for URL https://zenodo.org/record/1172960#.XidIvlNKh24
  6. Confirm "Belmont Forum..." dataset is found on Zenodo with suffix ver_2
  7. Search for DOI doi:10.5281/zenodo.1172960
  8. Confirm "Belmont Forum..." dataset is found on Zenodo with suffix ver_2
  9. Search for Concept DOI doi:10.5281/zenodo.608984
  10. Confirm "Belmont Forum..." dataset is found on Zenodo with suffix ver_2
  11. Select Register
  12. Confirm dataset appears in Manage Data list
  13. Add to tale and confirm contents match

The register tests the following cases.

  • Datasets with multiple files

  • Datasets with multiple versions

  • Concept DOI

  • Zenodo dataset via AiWT

  1. Open https://dashboard.stage.wholetale.org/browse?uri=https%3A%2F%2Fdoi.org%2F10.5281%2Fzenodo.820575&name=Automotive%20Sensor%20Data
  2. Confirm Source Data URL and Title match above URL and "READ ONLY" is selected
  3. Select environment
  4. Select 'Create and Launch Tale'
  5. Confirm dataset is mounted read-only, citation is as expected, zipfile is not extracted

The register tests the following cases.

  • Dataset with single file (zipfile)

  • Zenodo Binder via AiWT

  1. Open https://dashboard.stage.wholetale.org/browse?uri=https%3A%2F%2Fdoi.org%2F10.5281%2Fzenodo.3242073&environment=JupyterLab&name=Simple%20requirements.txt%20based%20example%20for%20repo2docker&asTale=true
  2. COnfirm Source Data and Title match URL and "READ WRITE" is selected
  3. Select 'Create and Launch Tale'
  4. Confirm image builds and notebook can run
  • Zenodo Tale via AiWT
  1. Open https://girder.stage.wholetale.org/api/v1/integration/zenodo?doi=10.5072%2Fzenodo.490450&resource_server=sandbox.zenodo.org
  2. Confirm Water Tale is created.
  3. Confirm citation on Metadata view
  4. Confirm DOI matches above
  5. Use the Swagger UI to confirm the publishInfo field on the tale object contains pid, repository, repository_id, uri
  6. Run the tale and and notebook, confirm it works as expected (produces glorious map of Texas)
  • Publish/import to/from Zenodo Sandbox
  1. Follow instructions above to configure your API key for Zenodo sandbox
  2. Use imported Water Tale above or create your own tale
  3. Publish to sandbox.zenodo.org
  4. Confirm publishInfo contains Sandbox entry
  5. Delete tale
  6. Import tale from Zenodo
  7. Confirm publishInfo
  8. Modify the tale
  9. Re-publish to sandbox.zenodo.org
  10. Delete tale
  11. Import tale from Zenodo
  12. Confirm publishInfo
  13. Download and run local

TESTCASE: Cannot use the Water Tale for this, must create your own Tale - Failed to get the deposition (id=490450). Server returned: 403 Client Error: FORBIDDEN for url: https://sandbox.zenodo.org/api/deposit/depositions/490450 { "message": "You don't have the permission to access the requested resource. It is either read-protected or not readable by the server.", "status": 403 }. Perhaps the imported tale already contains some publishInfo that is being reused?
TESTCASE: Clarification needed here. I know how to export, but not sure I quite grasp how to "download and run local" - do you mean run the Docker image on my local machine?

Regression tests

  • Internal-state problems (#326)
  1. Open a non-incognito browser tab, log into the UI and navigate to the /manage view
  2. Create a folder (e.g. test123) and click down into it
  3. Open an incognito browser tab, login to the UI again, and navigate to the /manage view
  4. In the incognito tab, delete the test123 folder and close the incognito tab
  5. Refresh your non-incognito browser tab
  6. You should not be stuck on a blue screen
  7. You should not need to manually refresh the page
  8. You should be taken to the /manage view of your Home folder
  9. NOTE: Your last refresh may take a couple of seconds longer than usual
  • Invalid instance ID (#333)
  1. Manually change the path suffix in the address bar to /run/ThisIsObviouslyNotARealID
  2. You should be brought to /browse page instead
  • Files don't overflow Manage page (#410)
  1. Navigate to the manage page
  2. Register enough/upload enough data to the point where you need to scroll through files on the right hand side
  3. Make sure that the files don't overflow the container, also check in Firefox
  • Handle read only Tales (#406)
  1. Login to the WholeTale Dashboard
  2. View a Tale that allows you to read, but not write
  3. Navigate to Run > Files > Tale Workspaces
    • You should see the Tale's Workspace folders/files are listed here
    • You should see that (+) has been greyed out, disallowing writes
  4. Navigate to Run > Files > External Data
    • You should see the Tale's External Datasets are listed here
    • You should see that (+) has been greyed out, disallowing writes

I'll compile these down into a more-easily digestible list soon

@bodom0015 bodom0015 changed the title v0.9rc1 testing (v0.9rc2-2-gc9c4b5e on OSX/Chrome) v0.9rc2 testing (v0.9rc2-2-gc9c4b5e on OSX/Chrome) Feb 28, 2020
@bodom0015
Copy link
Member Author

bodom0015 commented Mar 2, 2020

Results

Major: Test Failures (XXX)

Minor: Test Case Issues (TESTCASE)

  • Browse > Search - Search filtering appears to work, but the original LIGO Tale missing from master list on https://dashboard.stage.wholetale.org
  • Browse > Launch Instance - Add a step to "View Logs" while awaiting Tale image build
  • Run > General - There is now only one option for exporting a Tale - wording could be adjusted slightly to convey this
  • Run > Home - Missing confirmation of "Move To..." - how should this work?
  • Run > Exporting - BagIt - I was not asked for confirmation, the download just started up.. possibly just Firefox vs Chrome behavior?
  • Tale Creation > Jupyter - Which Jupyter? All of them? (Current assumption is to try to run all of them)
  • AiWT > Task 1 > Case 1 - No "External Data" appeared, even after Tale was running. Dataset also did not appear under "Manage" after Tale was running (same as in v0.9rc1 testing (v0.9rc1-0-gb53b944 on OSX/Chrome) #125). I believe this is a typo in the test case, as READ/WRITE shouldn't result in any "External Data"
  • AiWT > Task 3 > Case 2 -  https://dashboard.stage.wholetale.org/browse?uri=https%3A%2F%2Fdataverse.harvard.edu%2Fapi%2Faccess%2Fdatafile%2F3323458 does not provide a title, so step 3 may not be accurate for that case
  • AiWT > Task 3 > Case 2 - https://dashboard.stage.wholetale.org/browse?api=https%3A%2F%2Fdev.nceas.ucsb.edu%2Fknb%2Fd1%2Fmn%2Fv2&environment=JupyterLab&name=proveit&uri=doi%3A10.5072%2FFK27P92Z55 provides an environment, so step 7 is not necessary for that case
  • Zenodo integration tests > Import/publish to/from Zenodo - Cannot use the Water Tale for this, must create your own Tale.. Perhaps the imported tale already contains some publishInfo that is being reused? - Failed to get the deposition (id=490450). Server returned: 403 Client Error: FORBIDDEN for url: https://sandbox.zenodo.org/api/deposit/depositions/490450 { "message": "You don't have the permission to access the requested resource. It is either read-protected or not readable by the server.", "status": 403 }
  • Zenodo integration tests > Import/publish to/from Zenodo - Clarification needed here. I know how to export, but not sure I quite grasp how to "download and run local" - do you mean run the Tale's Docker image on my local machine mapping in the data from the exported ZIP file?

PR for test plan improvements forthcoming

@bodom0015
Copy link
Member Author

bodom0015 commented Mar 3, 2020

PR for test plan improvements: #130

Outstanding Issues:

  • Tale Creation > Jupyter - I attempted to build all types of Jupyter Tales and received an error message ( Error: Building image) from both Jupyter Notebook and Jupyter Classic - . I am currently unable to view the logs of the Tale image build to debug further. Not sure where to file this.. gwvolman?

Open Questions:

  • Browse > Search - Search filtering appears to work, but the original LIGO Tale missing from master list on https://dashboard.stage.wholetale.org. Is it safe to assume that LIGO Tale will always be present, and that this was just an oversight?
  • Tale Creation > Jupyter - Which Jupyter? All of them? Current assumption is to try to run all of them but, as shown above, only JupyterLab appears to actually build properly
  • Zenodo integration tests > Import/publish to/from Zenodo - Clarification needed here. I know how to export, but not sure I quite grasp how to "download and run local" - do you mean run the Tale's Docker image on my local machine mapping in the data from the exported ZIP file?

@ThomasThelen
Copy link
Member

  • I'm guessing that register_ligo.py wasn't run after everything was deployed.

  • I was able to build and run all of the Jupyter instances. Does the job log at girder.stage.wholetale.org show a stack trace?
    Spark
    Notebook
    Classic
    Lab

  • The exported Tale should have a run-local.sh script in the root of the zip. Running it will spin up a container that exposes itself though the browser. It should handle mounting the data.

@bodom0015
Copy link
Member Author

bodom0015 commented Mar 3, 2020

Thank you for clarifying, @ThomasThelen

I just reran the builds for Jupyter Classic and Jupyter Notebook and this time they completed just fine.

Looking back, I'm not sure which was which but it looks like a 502: Bad Gateway was hit during both of those builds? Perhaps Girder was somehow restarted during these builds? Unclear what might have happened, but it seems to be working now...

From https://girder.stage.wholetale.org/#job/5e59902e351c4c0da4b48872:

Step 51/76 : RUN R --quiet -e "install.packages('shiny', repos='https://mran.microsoft.com/snapshot/2020-02-26', method='libcurl')"
---> Running in 024c93a1c194
> install.packages('shiny', repos='https://mran.microsoft.com/snapshot/2020-02-26', method='libcurl')
�[91mInstalling package into/srv/rlibs’
(aslibis unspecified)
�[0m�[91malso installing the dependenciesBH’, ‘magrittr’, ‘httpuv’, ‘xtable’, ‘sourcetools’, ‘later’, ‘promises’, ‘fastmap’

    ...    ...    ...    ...    ...    ...    ...    ...    ...    ...    ...    ...

CC       src/libuv_la-fs-poll.lo
CC       src/libuv_la-idna.loHTTPError: 502 Server Error: Bad Gateway for url: https://girder.stage.wholetale.org/api/v1/job/5e59902e351c4c0da4b48872
  File "/usr/local/lib/python3.5/dist-packages/celery/app/trace.py", line 382, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/girder_worker/task.py", line 148, in __call__
    results = super(Task, self).__call__(*_t_args, **_t_kwargs)
  File "/usr/local/lib/python3.5/dist-packages/celery/app/trace.py", line 641, in __protected_call__
    return self.run(*args, **kwargs)
  File "/gwvolman/gwvolman/tasks.py", line 437, in build_tale_image
    ret = _build_image(cli, tale_id, image, tag, temp_dir, REPO2DOCKER_VERSION)
  File "/gwvolman/gwvolman/utils.py", line 324, in _build_image
    print(line.decode('utf-8').strip())
  File "/usr/local/lib/python3.5/dist-packages/girder_worker/utils.py", line 158, in write
    self._write_func(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/girder_worker/utils.py", line 259, in write
    self._flush()
  File "/usr/local/lib/python3.5/dist-packages/girder_worker/utils.py", line 237, in _flush
    req.raise_for_status()
  File "/usr/local/lib/python3.5/dist-packages/requests/models.py", line 941, in raise_for_status
    raise HTTPError(http_error_msg, response=self)

From https://girder.stage.wholetale.org/#job/5e598fb7351c4c0da4b48855:

Step 57/64 : RUN chown -R ${NB_USER}:${NB_USER} ${REPO_DIR}
---> Running in 5cf07978e98a
Removing intermediate container 5cf07978e98aHTTPError: 502 Server Error: Bad Gateway for url: https://girder.stage.wholetale.org/api/v1/job/5e598fb7351c4c0da4b48855
  File "/usr/local/lib/python3.5/dist-packages/celery/app/trace.py", line 382, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/girder_worker/task.py", line 148, in __call__
    results = super(Task, self).__call__(*_t_args, **_t_kwargs)
  File "/usr/local/lib/python3.5/dist-packages/celery/app/trace.py", line 641, in __protected_call__
    return self.run(*args, **kwargs)
  File "/gwvolman/gwvolman/tasks.py", line 437, in build_tale_image
    ret = _build_image(cli, tale_id, image, tag, temp_dir, REPO2DOCKER_VERSION)
  File "/gwvolman/gwvolman/utils.py", line 324, in _build_image
    print(line.decode('utf-8').strip())
  File "/usr/local/lib/python3.5/dist-packages/girder_worker/utils.py", line 158, in write
    self._write_func(*args, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/girder_worker/utils.py", line 259, in write
    self._flush()
  File "/usr/local/lib/python3.5/dist-packages/girder_worker/utils.py", line 237, in _flush
    req.raise_for_status()
  File "/usr/local/lib/python3.5/dist-packages/requests/models.py", line 941, in raise_for_status
    raise HTTPError(http_error_msg, response=self)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants