hdx-python-api 6.4.1__tar.gz → 6.4.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/PKG-INFO +1 -1
  2. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/api/_version.py +2 -2
  3. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/data/user.py +29 -10
  4. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/data/test_user.py +19 -0
  5. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/.coveragerc +0 -0
  6. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/.github/workflows/publish.yaml +0 -0
  7. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/.github/workflows/run-python-tests.yaml +0 -0
  8. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/.gitignore +0 -0
  9. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/.pre-commit-config.yaml +0 -0
  10. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/CONTRIBUTING.md +0 -0
  11. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/LICENSE +0 -0
  12. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/README.md +0 -0
  13. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/documentation/.readthedocs.yaml +0 -0
  14. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/documentation/index.md +0 -0
  15. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/documentation/mkdocs.yaml +0 -0
  16. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/hatch.toml +0 -0
  17. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/pyproject.toml +0 -0
  18. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/pytest.ini +0 -0
  19. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/requirements.txt +0 -0
  20. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/ruff.toml +0 -0
  21. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/api/__init__.py +0 -0
  22. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/api/configuration.py +0 -0
  23. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/api/hdx_base_configuration.yaml +0 -0
  24. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/api/locations.py +0 -0
  25. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/api/remotehdx.py +0 -0
  26. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/api/utilities/__init__.py +0 -0
  27. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/api/utilities/dataset_title_helper.py +0 -0
  28. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/api/utilities/date_helper.py +0 -0
  29. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/api/utilities/filestore_helper.py +0 -0
  30. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/api/utilities/hdx_error_handler.py +0 -0
  31. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/data/__init__.py +0 -0
  32. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/data/dataset.py +0 -0
  33. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/data/hdx_datasource_topline.yaml +0 -0
  34. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/data/hdxobject.py +0 -0
  35. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/data/indicator_resource_view_template.yaml +0 -0
  36. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/data/organization.py +0 -0
  37. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/data/resource.py +0 -0
  38. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/data/resource_matcher.py +0 -0
  39. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/data/resource_view.py +0 -0
  40. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/data/showcase.py +0 -0
  41. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/data/vocabulary.py +0 -0
  42. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/facades/__init__.py +0 -0
  43. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/facades/infer_arguments.py +0 -0
  44. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/facades/keyword_arguments.py +0 -0
  45. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/src/hdx/facades/simple.py +0 -0
  46. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/Accepted_Tags.csv +0 -0
  47. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/CKAN/hdx_dataset_static.yaml +0 -0
  48. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/Tag_Mapping.csv +0 -0
  49. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/Tag_Mapping_ChainRuleError.csv +0 -0
  50. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/empty.yaml +0 -0
  51. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_base_config.json +0 -0
  52. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_base_config.yaml +0 -0
  53. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_config.json +0 -0
  54. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_config.yaml +0 -0
  55. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_dataset_static.json +0 -0
  56. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_dataset_static.yaml +0 -0
  57. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_datasource_topline.json +0 -0
  58. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_datasource_topline.yaml +0 -0
  59. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_email_configuration.json +0 -0
  60. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_email_configuration.yaml +0 -0
  61. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_missing_site_config.json +0 -0
  62. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_organization_static.json +0 -0
  63. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_organization_static.yaml +0 -0
  64. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_resource_static.json +0 -0
  65. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_resource_static.yaml +0 -0
  66. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_resource_view_static.json +0 -0
  67. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_resource_view_static.yaml +0 -0
  68. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_showcase_static.json +0 -0
  69. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_showcase_static.yaml +0 -0
  70. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_user_static.json +0 -0
  71. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_user_static.yaml +0 -0
  72. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_vocabulary_static.json +0 -0
  73. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/hdx_vocabulary_static.yaml +0 -0
  74. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/project_configuration.json +0 -0
  75. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/project_configuration.yaml +0 -0
  76. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/user_agent_config.yaml +0 -0
  77. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/user_agent_config2.yaml +0 -0
  78. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/user_agent_config3.yaml +0 -0
  79. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/config/user_agent_config_wrong.yaml +0 -0
  80. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/dataset_search_results.yaml +0 -0
  81. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/datastore/ACLED-All-Africa-File_20170101-to-20170708.xlsx +0 -0
  82. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/empty.csv +0 -0
  83. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/gen_resource/conflict_data_alg.csv +0 -0
  84. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/gen_resource/min_qc_conflict_data_alg.csv +0 -0
  85. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/gen_resource/qc_conflict_data_alg.csv +0 -0
  86. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/gen_resource/test_data_no_data.csv +0 -0
  87. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/gen_resource/test_data_no_years.csv +0 -0
  88. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/organization_show_results.yaml +0 -0
  89. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/qc_from_rows/qc_conflict_data_alg.csv +0 -0
  90. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/qc_from_rows/qc_conflict_data_alg_one_col.csv +0 -0
  91. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/resource_formats.json +0 -0
  92. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/showcase_all_search_results.yaml +0 -0
  93. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/test_data.csv +0 -0
  94. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/test_data.zip +0 -0
  95. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/update_dataset_resources/dem_data_zwe.csv +0 -0
  96. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/update_dataset_resources/dem_indicatorlist_zwe.csv +0 -0
  97. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/update_dataset_resources/expected_resources_to_update.json +0 -0
  98. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/update_dataset_resources/opri_data_zwe.csv +0 -0
  99. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/update_dataset_resources/opri_indicatorlist_zwe.csv +0 -0
  100. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/update_dataset_resources/opri_metadata_zwe.csv +0 -0
  101. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/update_dataset_resources/qc_sdg_data_zwe.csv +0 -0
  102. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/update_dataset_resources/sdg_data_zwe.csv +0 -0
  103. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/update_dataset_resources/sdg_indicatorlist_zwe.csv +0 -0
  104. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/update_dataset_resources/sdg_metadata_zwe.csv +0 -0
  105. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/update_dataset_resources/unesco_dataset.json +0 -0
  106. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/update_dataset_resources/unesco_update_dataset.json +0 -0
  107. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/update_logic/update_logic_resources.yaml +0 -0
  108. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/fixtures/update_logic/update_logic_resources_new.yaml +0 -0
  109. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/api/test_ckan.py +0 -0
  110. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/api/test_configuration.py +0 -0
  111. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/api/test_locations.py +0 -0
  112. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/conftest.py +0 -0
  113. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/data/__init__.py +0 -0
  114. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/data/test_dataset_add_hapi_error.py +0 -0
  115. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/data/test_dataset_core.py +0 -0
  116. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/data/test_dataset_noncore.py +0 -0
  117. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/data/test_dataset_resource_generation.py +0 -0
  118. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/data/test_organization.py +0 -0
  119. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/data/test_resource.py +0 -0
  120. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/data/test_resource_view.py +0 -0
  121. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/data/test_showcase.py +0 -0
  122. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/data/test_update_dataset_resources.py +0 -0
  123. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/data/test_update_logic.py +0 -0
  124. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/data/test_vocabulary.py +0 -0
  125. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/facades/__init__.py +0 -0
  126. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/facades/test_infer_arguments.py +0 -0
  127. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/facades/test_keyword_arguments.py +0 -0
  128. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/facades/test_simple.py +0 -0
  129. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/utilities/test_dataset_title_helper.py +0 -0
  130. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/utilities/test_filestore_helper.py +0 -0
  131. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/tests/hdx/utilities/test_hdx_error_handler.py +0 -0
  132. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/workingexample/my_code.py +0 -0
  133. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/workingexample/my_resource.csv +0 -0
  134. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/workingexample/my_resource.xlsx +0 -0
  135. {hdx_python_api-6.4.1 → hdx_python_api-6.4.2}/workingexample/run.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hdx-python-api
3
- Version: 6.4.1
3
+ Version: 6.4.2
4
4
  Summary: HDX Python API for interacting with the Humanitarian Data Exchange
5
5
  Project-URL: Homepage, https://github.com/OCHA-DAP/hdx-python-api
6
6
  Author: Michael Rans
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '6.4.1'
21
- __version_tuple__ = version_tuple = (6, 4, 1)
20
+ __version__ = version = '6.4.2'
21
+ __version_tuple__ = version_tuple = (6, 4, 2)
@@ -311,7 +311,7 @@ class User(HDXObject):
311
311
  Returns:
312
312
  bool: True if the logged in user is a member of the organization.
313
313
  """
314
- for organization_dict in self.get_organization_dicts(permission=permission):
314
+ for organization_dict in self.get_organization_dicts(permission):
315
315
  if organization_dict["id"] == organization:
316
316
  return True
317
317
  if organization_dict["name"] == organization:
@@ -367,19 +367,23 @@ class User(HDXObject):
367
367
 
368
368
  @classmethod
369
369
  def check_current_user_organization_access(
370
- cls, organization: str, permission: str = "read"
370
+ cls,
371
+ organization: str,
372
+ permission: str = "read",
373
+ configuration: Optional[Configuration] = None,
371
374
  ) -> bool:
372
375
  """Check logged in user is a member of a given organization.
373
376
 
374
377
  Args:
375
378
  organization (str): Organization id or name.
376
379
  permission (str): Permission to check for. Defaults to 'read'.
380
+ configuration (Optional[Configuration]): HDX configuration. Defaults to global configuration.
377
381
 
378
382
  Returns:
379
383
  bool: True if the logged in user is a member of the organization.
380
384
  """
381
385
  for organization_dict in cls.get_current_user_organization_dicts(
382
- permission=permission
386
+ permission, configuration
383
387
  ):
384
388
  if organization_dict["id"] == organization:
385
389
  return True
@@ -389,32 +393,47 @@ class User(HDXObject):
389
393
 
390
394
  @classmethod
391
395
  def check_current_user_write_access(
392
- cls, organization: str, permission: str = "create_dataset"
396
+ cls,
397
+ organization: str,
398
+ permission: str = "create_dataset",
399
+ configuration: Optional[Configuration] = None,
393
400
  ) -> "User":
394
401
  """Check logged in user has write access to a given organization. Raises
395
- PermissionError if teh user does not have access otherwise logs and returns the
402
+ PermissionError if the user does not have access otherwise logs and returns the
396
403
  current username.
397
404
 
398
405
  Args:
399
406
  organization (str): Organization id or name.
400
407
  permission (str): Permission to check for. Defaults to 'create_dataset'.
408
+ configuration (Optional[Configuration]): HDX configuration. Defaults to global configuration.
401
409
 
402
410
  Returns:
403
411
  str: Username of current user
404
412
  """
413
+ if configuration is None:
414
+ configuration = Configuration.read()
415
+ hdx_key = configuration.hdx_key
416
+ if not hdx_key:
417
+ raise PermissionError(
418
+ "There is no logged in user. API token is missing or blank!"
419
+ )
420
+ logger.info(f"API token is {len(hdx_key)} characters long")
405
421
  try:
406
- current_user = cls.get_current_user()
422
+ current_user = cls.get_current_user(configuration)
407
423
  except HDXError:
408
424
  raise PermissionError(
409
- "There is no logged in user (missing or invalid API token)!"
425
+ "There appears to be no logged in user. API token may be invalid!"
410
426
  )
411
427
  username = current_user["name"]
412
- if not cls.check_current_user_organization_access(organization, permission):
428
+ logger.info(f'Current user is "{username}"')
429
+ if not cls.check_current_user_organization_access(
430
+ organization, permission, configuration
431
+ ):
413
432
  raise PermissionError(
414
- f'Current user "{username}" does not have "{permission}" access to "{organization}" organization!'
433
+ f'Current user does not have "{permission}" access to "{organization}" organization!'
415
434
  )
416
435
  logger.info(
417
- f'Current user "{username}" has "{permission}" access to "{organization}" organization'
436
+ f'Current user has "{permission}" access to "{organization}" organization'
418
437
  )
419
438
  return username
420
439
 
@@ -332,6 +332,13 @@ class TestUser:
332
332
  datadict = json.loads(decodedata)
333
333
  if "user" in url:
334
334
  if "show" in url:
335
+ configuration = Configuration.read()
336
+ hdx_key = configuration.hdx_key
337
+ if hdx_key == "fail":
338
+ return MockResponse(
339
+ 404,
340
+ '{"success": false, "error": {"message": "Not found", "__type": "Not Found Error"}, "help": "http://test-data.humdata.org/api/3/action/help_show?name=user_show"}',
341
+ )
335
342
  result = json.dumps(resultdict)
336
343
  return MockResponse(
337
344
  200,
@@ -706,6 +713,18 @@ Content-Transfer-Encoding: 7bit
706
713
  assert username == "MyUser1"
707
714
  with pytest.raises(PermissionError):
708
715
  User.check_current_user_write_access("lala")
716
+ with pytest.raises(PermissionError):
717
+ configuration = Configuration.read()
718
+ hdx_key = configuration.hdx_key
719
+ configuration.hdx_key = "fail"
720
+ User.check_current_user_write_access("b67e6c74-c185-4f43-b561-0e114a736f19")
721
+ configuration.hdx_key = hdx_key
722
+ with pytest.raises(PermissionError):
723
+ configuration = Configuration.read()
724
+ hdx_key = configuration.hdx_key
725
+ configuration.hdx_key = None
726
+ User.check_current_user_write_access("acled", configuration=configuration)
727
+ configuration.hdx_key = hdx_key
709
728
 
710
729
  def test_get_token_list(self, configuration, post_tokenlist):
711
730
  user = User.read_from_hdx("9f3e9973-7dbe-4c65-8820-f48578e3ffea")
File without changes
File without changes
File without changes