ResearchObject / ro-crate-inveniordm

RO-Crate uploader for InvenioRDM
MIT License
2 stars 1 forks source link

Test import on conda-forge fails due to requiring environment variables to be set #26

Closed elichad closed 2 months ago

elichad commented 2 months ago

The conda-forge build tests whether the package can be imported - see https://github.com/conda-forge/staged-recipes/pull/26848. Currently importing the uploader module raises an error:

import: 'rocrate_inveniordm.deposit'
Traceback (most recent call last):
  File "/home/conda/staged-recipes/build_artifacts/rocrate-inveniordm_1720454472640/test_tmp/run_test.py", line 5, in <module>
    import rocrate_inveniordm.deposit
  File "/home/conda/staged-recipes/build_artifacts/rocrate-inveniordm_1720454472640/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.12/site-packages/rocrate_inveniordm/deposit.py", line 18, in <module>
    import rocrate_inveniordm.upload.uploader as uploader
  File "/home/conda/staged-recipes/build_artifacts/rocrate-inveniordm_1720454472640/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.12/site-packages/rocrate_inveniordm/upload/uploader.py", line 16, in <module>
    api_url = credentials.get_repository_base_url()
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/conda/staged-recipes/build_artifacts/rocrate-inveniordm_1720454472640/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho/lib/python3.12/site-packages/rocrate_inveniordm/upload/credentials.py", line 22, in get_repository_base_url
    raise ValueError("INVENIORDM_BASE_URL environment variable not set")
ValueError: INVENIORDM_BASE_URL environment variable not set

This call to credentials should be moved inside a function so that credentials are only checked at the time when they are needed.