Skip to content

Pilot 4806: CLI differentiates the input path of downloading file between Project Folders and Name Folders - #140

Merged
colorzzr merged 32 commits into
developfrom
PILOT-4806
Apr 26, 2024
Merged

Pilot 4806: CLI differentiates the input path of downloading file between Project Folders and Name Folders#140
colorzzr merged 32 commits into
developfrom
PILOT-4806

Conversation

@colorzzr

Copy link
Copy Markdown
Member

Summary

In the same Project/zone, such as Indoc Test Project Green Room, platform allows a Project Folder shares same name with a Name folder, i.e., in Indoc Test Project Green Room, there can be:

  • a Project Folder “imaging” - manually created by Project Admin
  • a Name folder “imaging” - auto created when Project member joined the Project and registered their username as “imaging”

Detail:

  • New path prefix in download commands will allow user to select if downloading from namefolder or project folder.
  • See if we can centralize some of this pathing logic to reduce copy pasted code.
  • Unit tests to be updated.

JIRA Issues

Pilot 4806

Type of Change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update
  • Refactor or reformatting

Testing

Are there any new or updated tests to validate the changes?

  • Yes
  • No

Test Directions

Add more test cases for download command

@colorzzr colorzzr self-assigned this Apr 15, 2024
@github-actions

Copy link
Copy Markdown
Contributor

Coverage

Coverage Report
FileStmtsMissCoverMissing
__init__.py00100% 
pilotcli.py0310%5, 7–8, 10–14, 17–21, 23–28, 31–39, 42–44
commands
   __init__.py00100% 
   container_registry.py01959%16, 22–24, 31–33, 41–44, 50–53, 62–65
   dataset.py04844%19, 36–38, 41–48, 50–60, 78–80, 83–91, 93–103, 123, 127
   entry_point.py01085%39, 45, 89–91, 93–97
   file.py04184%41, 153–155, 159, 164, 167–169, 185–186, 228, 313–320, 322, 324, 338–344, 346, 375, 377, 380, 426, 429, 446–448, 454–455, 549
   project.py0197%17
   user.py0685%23, 40, 48, 56, 72–73
configs
   __init__.py00100% 
   app_config.py00100% 
   config.py00100% 
   user_config.py01784%61, 70, 114, 124, 131, 135, 139, 143, 147, 151, 155, 159, 163, 167, 171, 175, 179
models
   __init__.py00100% 
   enums.py00100% 
   item.py00100% 
   service_meta_class.py0180%9
   singleton.py00100% 
   upload_form.py0625%30, 42–46
resources
   custom_error.py00100% 
   custom_help.py00100% 
services
   __init__.py00100% 
services/container_registry_manager
   container_registry_manager.py010817%19–20, 23–26, 29–33, 36–44, 48–60, 62–64, 68–82, 84–86, 90–99, 101–103, 107–110, 125–136, 140–143, 147–162, 164, 166–169
services/crypto
   __init__.py00100% 
   crypto.py01940%35, 43–47, 49, 59–61, 69–75, 77, 79
services/dataset_manager
   dataset_detail.py02370%42, 44, 61, 68–73, 75–77, 79–88, 90
   dataset_download.py01983%56, 72–73, 84, 96, 98–99, 101–102, 104, 106–108, 116–119, 153, 165
   dataset_list.py0878%37, 43–46, 48–50
   model.py00100% 
services/file_manager
   __init__.py00100% 
   file_list.py01777%30, 55, 57, 81–83, 91–94, 96, 102–107
   file_manifests.py09525%19–24, 39–43, 47–48, 51–59, 61, 65–68, 71–75, 77, 81–82, 85–87, 91–92, 95–102, 104, 107, 109–110, 112–113, 115–118, 123–129, 134–139, 142–148, 150–152, 155–161, 163–165, 167–170
   file_tag.py03931%23, 27–31, 33, 36–48, 50–52, 54–55, 59–61, 64–68, 70–73, 75–76
services/file_manager/file_download
   __init__.py00100% 
   download_client.py012744%45–46, 48–54, 72–73, 115–120, 122, 125–126, 129–131, 133–135, 137–138, 140–142, 146–154, 157–162, 172–173, 194, 198–199, 205–215, 217–218, 221–222, 227–228, 232–237, 241–242, 245–247, 249–260, 264–267, 270–274, 276–278, 280–282, 284–285, 287, 291–293, 295–308, 310
   model.py00100% 
services/file_manager/file_metadata
   __init__.py00100% 
   file_metadata_client.py0395%97–99
services/file_manager/file_move
   __init__.py00100% 
   file_move_client.py0691%71, 80–82, 84, 111
services/file_manager/file_upload
   __init__.py00100% 
   exception.py0175%10
   file_upload.py02884%36–43, 97–99, 111, 142–143, 147, 152, 189, 209–211, 252–253, 255–257, 331, 334, 338
   models.py0591%24, 44, 150–152
   upload_client.py07760%101–104, 207–209, 223–229, 231–235, 237–249, 251, 295, 298, 302, 304–306, 308–311, 315–319, 321, 325, 327, 329, 331, 350, 380–381, 386, 390–393, 397, 413, 415–417, 424, 429–430, 432, 434–435, 437–440, 442
   upload_validator.py02156%29–31, 34–39, 42–48, 51–52, 57, 59, 61
services/logger_services
   __init__.py00100% 
   log_functions.py00100% 
services/output_manager
   __init__.py00100% 
   error_handler.py00100% 
   help_page.py00100% 
   message_handler.py05770%23, 45, 50, 65–67, 72, 82, 87, 100, 105, 112, 117, 122, 126, 142, 177, 187, 196, 214, 224, 243, 265–276, 287–292, 294–300, 311, 315–316, 320–321, 323–324, 328, 332, 336
services/project_manager
   __init__.py00100% 
   project.py0878%38, 44–47, 49–51
services/user_authentication
   __init__.py00100% 
   decorator.py0293%27, 30
   token_manager.py0986%26, 41–42, 73, 76, 91, 96, 100, 105
   user_login_logout.py04266%30–31, 41, 122, 126–132, 134–136, 140–141, 145–152, 154–156, 160–161, 168–173, 175–177, 181–184
utils
   __init__.py00100% 
   aggregated.py02283%52, 64, 104, 118–119, 129–130, 132, 156–163, 165–166, 194, 202, 219–220
TOTAL312491670% 

@colorzzr colorzzr added the enhancement New feature or request label Apr 16, 2024
@colorzzr
colorzzr changed the base branch from develop to PILOT-4808 April 25, 2024 19:46
@colorzzr
colorzzr requested a review from Samantha77 April 25, 2024 20:07
@colorzzr
colorzzr changed the base branch from PILOT-4808 to develop April 26, 2024 14:15
@colorzzr
colorzzr merged commit 9db196e into develop Apr 26, 2024
colorzzr added a commit that referenced this pull request May 1, 2024
…ween Project Folders and Name Folders (#140)

* add [p] prefix for project folder when listing items under project

* group itemprefix class with itemtype class

* add double quotation when item name contains space

* udpate move/rename commands to distinguish project folder/name folder

* change enum type PROJECTFOLDER to SHAREDFOLDER

* update move/rename logic but will need to fix upload/list command for prefix changes

* replace PROJECTFOLDER with SHAREDFOLDER

* replace PROJECTFOLDER with SHAREDFOLDER

* fixup test cases

* fixup logic for different prefix

* add prefix for name folder

* bump up version to 3.0.0

* fixup test cases

* fixup test cases

* replace hardcoded string with enum value in test cases

* remove the reference of project_folder

* fixup test cases

* replace hardcode project folder with enum class

* add more download test cases

* fixup test cases

* remove SHAREFOLDER specific logic

* fixup test cases

* remove old comments

---------

Co-authored-by: zhiren <zzhan@indocresearch.org>
colorzzr added a commit that referenced this pull request May 1, 2024
…ween Project Folders and Name Folders (#140)

* add [p] prefix for project folder when listing items under project

* group itemprefix class with itemtype class

* add double quotation when item name contains space

* udpate move/rename commands to distinguish project folder/name folder

* change enum type PROJECTFOLDER to SHAREDFOLDER

* update move/rename logic but will need to fix upload/list command for prefix changes

* replace PROJECTFOLDER with SHAREDFOLDER

* replace PROJECTFOLDER with SHAREDFOLDER

* fixup test cases

* fixup logic for different prefix

* add prefix for name folder

* bump up version to 3.0.0

* fixup test cases

* fixup test cases

* replace hardcoded string with enum value in test cases

* remove the reference of project_folder

* fixup test cases

* replace hardcode project folder with enum class

* add more download test cases

* fixup test cases

* remove SHAREFOLDER specific logic

* fixup test cases

* remove old comments

---------

Co-authored-by: zhiren <zzhan@indocresearch.org>
Former-commit-id: a1291ad
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants