cumulusci 3.52.0__tar.gz → 3.52.0.dev0__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 (613) hide show
  1. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/HISTORY.rst +0 -20
  2. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/PKG-INFO +4 -22
  3. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/README.rst +3 -1
  4. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/CumulusCI.py +0 -26
  5. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/test_cumulusci_library.py +0 -44
  6. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/snowfakery_utils/snowfakery_working_directory.py +0 -4
  7. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/snowfakery_utils/subtask_configurator.py +0 -10
  8. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/libdoc.py +3 -27
  9. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/tests/test_robotframework.py +9 -49
  10. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/fileutils.py +0 -14
  11. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/tests/test_fileutils.py +1 -23
  12. cumulusci-3.52.0.dev0/cumulusci/version.txt +1 -0
  13. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci.egg-info/PKG-INFO +4 -22
  14. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci.egg-info/requires.txt +9 -8
  15. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/cli.rst +5 -3
  16. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/requirements/dev.txt +17 -14
  17. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/requirements/prod.txt +12 -8
  18. cumulusci-3.52.0/cumulusci/version.txt +0 -1
  19. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/AUTHORS.rst +0 -0
  20. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/CONTRIBUTING.rst +0 -0
  21. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/LICENSE +0 -0
  22. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/MANIFEST.in +0 -0
  23. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/__init__.py +0 -0
  24. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/__main__.py +0 -0
  25. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/__init__.py +0 -0
  26. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/cci.py +0 -0
  27. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/error.py +0 -0
  28. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/flow.py +0 -0
  29. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/logger.py +0 -0
  30. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/org.py +0 -0
  31. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/plan.py +0 -0
  32. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/project.py +0 -0
  33. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/runtime.py +0 -0
  34. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/service.py +0 -0
  35. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/task.py +0 -0
  36. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/tests/__init__.py +0 -0
  37. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/tests/test_cci.py +0 -0
  38. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/tests/test_error.py +0 -0
  39. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/tests/test_flow.py +0 -0
  40. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/tests/test_logger.py +0 -0
  41. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/tests/test_org.py +0 -0
  42. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/tests/test_plan.py +0 -0
  43. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/tests/test_project.py +0 -0
  44. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/tests/test_runtime.py +0 -0
  45. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/tests/test_service.py +0 -0
  46. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/tests/test_task.py +0 -0
  47. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/tests/test_ui.py +0 -0
  48. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/tests/test_utils.py +0 -0
  49. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/tests/utils.py +0 -0
  50. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/ui.py +0 -0
  51. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cli/utils.py +0 -0
  52. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/conftest.py +0 -0
  53. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/__init__.py +0 -0
  54. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/BaseConfig.py +0 -0
  55. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/BaseTaskFlowConfig.py +0 -0
  56. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/OrgConfig.py +0 -0
  57. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/ScratchOrgConfig.py +0 -0
  58. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/__init__.py +0 -0
  59. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/base_config.py +0 -0
  60. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/base_task_flow_config.py +0 -0
  61. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/marketing_cloud_service_config.py +0 -0
  62. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/oauth2_service_config.py +0 -0
  63. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/org_config.py +0 -0
  64. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/project_config.py +0 -0
  65. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/scratch_org_config.py +0 -0
  66. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/sfdx_org_config.py +0 -0
  67. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/tests/_test_config_backwards_compatibility.py +0 -0
  68. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/tests/test_config.py +0 -0
  69. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/tests/test_config_expensive.py +0 -0
  70. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/tests/test_config_util.py +0 -0
  71. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/universal_config.py +0 -0
  72. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/config/util.py +0 -0
  73. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/debug.py +0 -0
  74. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/dependencies/__init__.py +0 -0
  75. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/dependencies/dependencies.py +0 -0
  76. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/dependencies/github.py +0 -0
  77. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/dependencies/resolvers.py +0 -0
  78. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/dependencies/tests/__init__.py +0 -0
  79. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/dependencies/tests/conftest.py +0 -0
  80. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/dependencies/tests/test_dependencies.py +0 -0
  81. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/dependencies/tests/test_github.py +0 -0
  82. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/dependencies/tests/test_resolvers.py +0 -0
  83. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/dependencies/utils.py +0 -0
  84. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/exceptions.py +0 -0
  85. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/flowrunner.py +0 -0
  86. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/github.py +0 -0
  87. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/keychain/__init__.py +0 -0
  88. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/keychain/base_project_keychain.py +0 -0
  89. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/keychain/encrypted_file_project_keychain.py +0 -0
  90. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/keychain/environment_project_keychain.py +0 -0
  91. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/keychain/tests/conftest.py +0 -0
  92. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/keychain/tests/test_base_project_keychain.py +0 -0
  93. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/keychain/tests/test_encrypted_file_project_keychain.py +0 -0
  94. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/metadeploy.py +0 -0
  95. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/runtime.py +0 -0
  96. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/sfdx.py +0 -0
  97. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/source/__init__.py +0 -0
  98. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/source/github.py +0 -0
  99. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/source/local_folder.py +0 -0
  100. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/tasks.py +0 -0
  101. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/template_utils.py +0 -0
  102. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/tests/__init__.py +0 -0
  103. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/tests/test_exceptions.py +0 -0
  104. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/tests/test_flowrunner.py +0 -0
  105. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/tests/test_github.py +0 -0
  106. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/tests/test_sfdx.py +0 -0
  107. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/tests/test_source.py +0 -0
  108. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/tests/test_tasks.py +0 -0
  109. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/tests/test_utils.py +0 -0
  110. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/tests/test_utils_merge_config.py +0 -0
  111. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/tests/test_versions.py +0 -0
  112. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/tests/utils.py +0 -0
  113. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/utils.py +0 -0
  114. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/core/versions.py +0 -0
  115. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/cumulusci.yml +0 -0
  116. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/files/admin_profile.xml +0 -0
  117. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/files/delete_excludes.txt +0 -0
  118. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/files/templates/project/README.md +0 -0
  119. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/files/templates/project/cumulusci.yml +0 -0
  120. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/files/templates/project/dot-gitignore +0 -0
  121. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/files/templates/project/mapping.yml +0 -0
  122. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/files/templates/project/scratch_def.json +0 -0
  123. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/oauth/__init__.py +0 -0
  124. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/oauth/client.py +0 -0
  125. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/oauth/exceptions.py +0 -0
  126. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/oauth/salesforce.py +0 -0
  127. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/oauth/tests/__init__.py +0 -0
  128. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/oauth/tests/test_client.py +0 -0
  129. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/oauth/tests/test_salesforce.py +0 -0
  130. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/CumulusCI.robot +0 -0
  131. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/Salesforce.py +0 -0
  132. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/Salesforce.robot +0 -0
  133. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/__init__.py +0 -0
  134. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/form_handlers.py +0 -0
  135. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/locator_manager.py +0 -0
  136. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/locators_52.py +0 -0
  137. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/locators_53.py +0 -0
  138. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/locators_54.py +0 -0
  139. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/pageobjects/BasePageObjects.py +0 -0
  140. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/pageobjects/ObjectManagerPageObject.py +0 -0
  141. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/pageobjects/PageObjectLibrary.py +0 -0
  142. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/pageobjects/PageObjects.py +0 -0
  143. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/pageobjects/__init__.py +0 -0
  144. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/pageobjects/baseobjects.py +0 -0
  145. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/perftests/short/collection_perf.robot +0 -0
  146. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/BarTestPage.py +0 -0
  147. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/FooTestPage.py +0 -0
  148. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/cumulusci/base.robot +0 -0
  149. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/cumulusci/bulkdata.robot +0 -0
  150. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/cumulusci/communities.robot +0 -0
  151. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/cumulusci/datagen.robot +0 -0
  152. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/TestLibraryA.py +0 -0
  153. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/TestLibraryB.py +0 -0
  154. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/TestListener.py +0 -0
  155. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/api.robot +0 -0
  156. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/browsers.robot +0 -0
  157. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/classic.robot +0 -0
  158. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/create_contact.robot +0 -0
  159. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/faker.robot +0 -0
  160. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/forms.robot +0 -0
  161. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/locators.robot +0 -0
  162. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/pageobjects/base_pageobjects.robot +0 -0
  163. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/pageobjects/example_page_object.py +0 -0
  164. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/pageobjects/listing_page.robot +0 -0
  165. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/pageobjects/objectmanager.robot +0 -0
  166. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/pageobjects/pageobjects.robot +0 -0
  167. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/performance.robot +0 -0
  168. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/populate.robot +0 -0
  169. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/test_testlistener.py +0 -0
  170. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/salesforce/ui.robot +0 -0
  171. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/test_locator_manager.py +0 -0
  172. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/test_pageobjects.py +0 -0
  173. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/test_salesforce.py +0 -0
  174. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/test_salesforce_locators.py +0 -0
  175. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/test_template_util.py +0 -0
  176. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/tests/test_utils.py +0 -0
  177. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/robotframework/utils.py +0 -0
  178. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/__init__.py +0 -0
  179. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/exceptions.py +0 -0
  180. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/mc_soap_envelopes.py +0 -0
  181. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/metadata.py +0 -0
  182. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/org_schema.py +0 -0
  183. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/org_schema_models.py +0 -0
  184. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/package_install.py +0 -0
  185. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/package_zip.py +0 -0
  186. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/soap_envelopes.py +0 -0
  187. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/tests/__init__.py +0 -0
  188. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/tests/metadata_test_strings.py +0 -0
  189. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/tests/test_metadata.py +0 -0
  190. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/tests/test_package_install.py +0 -0
  191. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/tests/test_package_zip.py +0 -0
  192. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/tests/test_utils.py +0 -0
  193. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/salesforce_api/utils.py +0 -0
  194. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/schema/cumulusci.jsonschema.json +0 -0
  195. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/__init__.py +0 -0
  196. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/apex/__init__.py +0 -0
  197. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/apex/anon.py +0 -0
  198. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/apex/batch.py +0 -0
  199. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/apex/testrunner.py +0 -0
  200. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/apex/tests/test_apex_tasks.py +0 -0
  201. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/__init__.py +0 -0
  202. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/base_generate_data_task.py +0 -0
  203. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/dates.py +0 -0
  204. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/delete.py +0 -0
  205. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/extract.py +0 -0
  206. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/factory_utils.py +0 -0
  207. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/generate.py +0 -0
  208. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/generate_and_load_data.py +0 -0
  209. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/generate_and_load_data_from_yaml.py +0 -0
  210. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/generate_from_yaml.py +0 -0
  211. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/generate_mapping.py +0 -0
  212. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/load.py +0 -0
  213. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/mapping_parser.py +0 -0
  214. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/snowfakery.py +0 -0
  215. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/snowfakery_utils/queue_manager.py +0 -0
  216. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/snowfakery_utils/snowfakery_run_until.py +0 -0
  217. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/step.py +0 -0
  218. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/Account.json +0 -0
  219. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/Case.json +0 -0
  220. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/Contact.json +0 -0
  221. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/Opportunity.json +0 -0
  222. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/OpportunityContactRole.json +0 -0
  223. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/__init__.py +0 -0
  224. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/dummy_data_factory.py +0 -0
  225. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/global_describe.json +0 -0
  226. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping-oid.yml +0 -0
  227. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_after.yml +0 -0
  228. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_simple.yml +0 -0
  229. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_v1.yml +0 -0
  230. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_v2.yml +0 -0
  231. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_v3.yml +0 -0
  232. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_vanilla_sf.yml +0 -0
  233. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/mock_data_factory_without_mapping.py +0 -0
  234. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/recordtypes.yml +0 -0
  235. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/child/child2.yml +0 -0
  236. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/child.yml +0 -0
  237. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/gen_npsp_standard_objects.recipe.yml +0 -0
  238. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/include_parent.yml +0 -0
  239. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/npsp_standard_objects_macros.yml +0 -0
  240. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/options.recipe.yml +0 -0
  241. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/query_snowfakery.recipe.yml +0 -0
  242. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/sf_standard_object_macros.yml +0 -0
  243. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery.load.yml +0 -0
  244. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery.recipe.yml +0 -0
  245. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_2.load.yml +0 -0
  246. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_channels.load.yml +0 -0
  247. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_channels.recipe.yml +0 -0
  248. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_channels_2.load.yml +0 -0
  249. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/unique_values.recipe.yml +0 -0
  250. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/test_base_generate_data_tasks.py +0 -0
  251. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/test_dates.py +0 -0
  252. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/test_delete.py +0 -0
  253. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/test_extract.py +0 -0
  254. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/test_factory_utils.py +0 -0
  255. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/test_generate_and_load.py +0 -0
  256. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/test_generate_from_snowfakery_task.py +0 -0
  257. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/test_generatemapping.py +0 -0
  258. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/test_load.py +0 -0
  259. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/test_mapping_parser.py +0 -0
  260. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/test_snowfakery.py +0 -0
  261. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/test_step.py +0 -0
  262. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/test_utils.py +0 -0
  263. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/tests/utils.py +0 -0
  264. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/bulkdata/utils.py +0 -0
  265. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/command.py +0 -0
  266. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/connectedapp.py +0 -0
  267. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/create_package_version.py +0 -0
  268. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/datadictionary.py +0 -0
  269. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/dx_convert_from.py +0 -0
  270. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/__init__.py +0 -0
  271. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/base.py +0 -0
  272. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/commit_status.py +0 -0
  273. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/merge.py +0 -0
  274. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/publish.py +0 -0
  275. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/pull_request.py +0 -0
  276. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/release.py +0 -0
  277. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/release_report.py +0 -0
  278. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/tag.py +0 -0
  279. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/tests/__init__.py +0 -0
  280. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/tests/test_commit_status.py +0 -0
  281. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/tests/test_merge.py +0 -0
  282. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/tests/test_publish.py +0 -0
  283. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/tests/test_pull_request.py +0 -0
  284. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/tests/test_release.py +0 -0
  285. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/tests/test_release_report.py +0 -0
  286. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/tests/test_tag.py +0 -0
  287. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/tests/test_util.py +0 -0
  288. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/tests/util_github_api.py +0 -0
  289. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/github/util.py +0 -0
  290. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/marketing_cloud/__init__.py +0 -0
  291. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/marketing_cloud/api.py +0 -0
  292. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/marketing_cloud/base.py +0 -0
  293. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/marketing_cloud/deploy.py +0 -0
  294. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/marketing_cloud/get_user_info.py +0 -0
  295. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/marketing_cloud/mc_constants.py +0 -0
  296. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/marketing_cloud/tests/__init__.py +0 -0
  297. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/marketing_cloud/tests/conftest.py +0 -0
  298. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/marketing_cloud/tests/expected-payload.json +0 -0
  299. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/marketing_cloud/tests/test_api.py +0 -0
  300. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/marketing_cloud/tests/test_api_soap_envelopes.py +0 -0
  301. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/marketing_cloud/tests/test_base.py +0 -0
  302. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/marketing_cloud/tests/test_deploy.py +0 -0
  303. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/marketing_cloud/tests/test_get_user_info.py +0 -0
  304. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata/__init__.py +0 -0
  305. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata/ee_src.py +0 -0
  306. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata/managed_src.py +0 -0
  307. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata/metadata_map.yml +0 -0
  308. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata/modify.py +0 -0
  309. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata/package.py +0 -0
  310. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata/tests/__init__.py +0 -0
  311. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/destructiveChanges.xml +0 -0
  312. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/package.xml +0 -0
  313. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/reports/namespace__TestFolder/TestReport.report +0 -0
  314. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata/tests/sample_package.xml +0 -0
  315. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata/tests/test_ee_src.py +0 -0
  316. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata/tests/test_managed_src.py +0 -0
  317. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata/tests/test_modify.py +0 -0
  318. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata/tests/test_package.py +0 -0
  319. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/__init__.py +0 -0
  320. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/base.py +0 -0
  321. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/duplicate_rules.py +0 -0
  322. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/field_sets.py +0 -0
  323. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/help_text.py +0 -0
  324. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/layouts.py +0 -0
  325. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/permissions.py +0 -0
  326. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/picklists.py +0 -0
  327. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/sharing.py +0 -0
  328. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_base.py +0 -0
  329. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_duplicate_rules.py +0 -0
  330. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_field_sets.py +0 -0
  331. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_help_text.py +0 -0
  332. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_layouts.py +0 -0
  333. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_permissions.py +0 -0
  334. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_picklists.py +0 -0
  335. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_sharing.py +0 -0
  336. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_value_sets.py +0 -0
  337. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadata_etl/value_sets.py +0 -0
  338. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metadeploy.py +0 -0
  339. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/metaxml.py +0 -0
  340. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/preflight/__init__.py +0 -0
  341. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/preflight/licenses.py +0 -0
  342. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/preflight/packages.py +0 -0
  343. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/preflight/permsets.py +0 -0
  344. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/preflight/recordtypes.py +0 -0
  345. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/preflight/settings.py +0 -0
  346. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/preflight/sobjects.py +0 -0
  347. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/preflight/tests/test_licenses.py +0 -0
  348. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/preflight/tests/test_packages.py +0 -0
  349. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/preflight/tests/test_permset_preflights.py +0 -0
  350. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/preflight/tests/test_recordtypes.py +0 -0
  351. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/preflight/tests/test_settings.py +0 -0
  352. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/preflight/tests/test_sobjects.py +0 -0
  353. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/push/README.md +0 -0
  354. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/push/__init__.py +0 -0
  355. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/push/push_api.py +0 -0
  356. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/push/pushfails.py +0 -0
  357. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/push/tasks.py +0 -0
  358. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/push/tests/conftest.py +0 -0
  359. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/push/tests/test_push_api.py +0 -0
  360. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/push/tests/test_push_tasks.py +0 -0
  361. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/README.md +0 -0
  362. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/__init__.py +0 -0
  363. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/exceptions.py +0 -0
  364. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/generator.py +0 -0
  365. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/parser.py +0 -0
  366. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/provider.py +0 -0
  367. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/task.py +0 -0
  368. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/tests/__init__.py +0 -0
  369. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/tests/change_notes/full/example1.md +0 -0
  370. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/tests/change_notes/multi/1.txt +0 -0
  371. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/tests/change_notes/multi/2.txt +0 -0
  372. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/tests/change_notes/multi/3.txt +0 -0
  373. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/tests/change_notes/single/1.txt +0 -0
  374. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/tests/test_generator.py +0 -0
  375. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/tests/test_parser.py +0 -0
  376. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/tests/test_provider.py +0 -0
  377. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/tests/test_task.py +0 -0
  378. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/release_notes/tests/utils.py +0 -0
  379. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/__init__.py +0 -0
  380. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/debugger/DebugListener.py +0 -0
  381. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/debugger/__init__.py +0 -0
  382. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/debugger/model.py +0 -0
  383. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/debugger/ui.py +0 -0
  384. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/lint.py +0 -0
  385. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/lint_defaults.txt +0 -0
  386. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/robotframework.py +0 -0
  387. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/stylesheet.css +0 -0
  388. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/template.html +0 -0
  389. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/tests/TestLibrary.py +0 -0
  390. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/tests/TestPageObjects.py +0 -0
  391. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/tests/TestResource.robot +0 -0
  392. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/tests/failing_tests.robot +0 -0
  393. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/tests/performance.robot +0 -0
  394. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/tests/test_debugger.py +0 -0
  395. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/tests/test_robot_lint.py +0 -0
  396. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/robotframework/tests/test_robot_parallel.py +0 -0
  397. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/BaseRetrieveMetadata.py +0 -0
  398. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/BaseSalesforceApiTask.py +0 -0
  399. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/BaseSalesforceMetadataApiTask.py +0 -0
  400. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/BaseSalesforceTask.py +0 -0
  401. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/BaseUninstallMetadata.py +0 -0
  402. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/CreateCommunity.py +0 -0
  403. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/CreatePackage.py +0 -0
  404. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/Deploy.py +0 -0
  405. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/DeployBundles.py +0 -0
  406. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/EnsureRecordTypes.py +0 -0
  407. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/GetInstalledPackages.py +0 -0
  408. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/ListCommunities.py +0 -0
  409. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/ListCommunityTemplates.py +0 -0
  410. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/PublishCommunity.py +0 -0
  411. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/RetrievePackaged.py +0 -0
  412. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/RetrieveReportsAndDashboards.py +0 -0
  413. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/RetrieveUnpackaged.py +0 -0
  414. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/SOQLQuery.py +0 -0
  415. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/UninstallLocal.py +0 -0
  416. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/UninstallLocalBundles.py +0 -0
  417. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/UninstallLocalNamespacedBundles.py +0 -0
  418. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/UninstallPackage.py +0 -0
  419. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/UninstallPackaged.py +0 -0
  420. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/UpdateAdminProfile.py +0 -0
  421. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/__init__.py +0 -0
  422. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/activate_flow.py +0 -0
  423. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/composite.py +0 -0
  424. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/create_permission_sets.py +0 -0
  425. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/custom_settings.py +0 -0
  426. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/custom_settings_wait.py +0 -0
  427. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/enable_prediction.py +0 -0
  428. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/insert_record.py +0 -0
  429. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/install_package_version.py +0 -0
  430. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/license_preflights.py +0 -0
  431. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/network_member_group.py +0 -0
  432. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/org_settings.py +0 -0
  433. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/package_upload.py +0 -0
  434. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/profiles.py +0 -0
  435. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/promote_package_version.py +0 -0
  436. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/sourcetracking.py +0 -0
  437. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/__init__.py +0 -0
  438. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_CreateCommunity.py +0 -0
  439. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_CreatePackage.py +0 -0
  440. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_Deploy.py +0 -0
  441. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_DeployBundles.py +0 -0
  442. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_EnsureRecordTypes.py +0 -0
  443. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_ListCommunities.py +0 -0
  444. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_ListCommunityTemplates.py +0 -0
  445. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_PackageUpload.py +0 -0
  446. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_ProfileGrantAllAccess.py +0 -0
  447. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_PublishCommunity.py +0 -0
  448. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_RetrievePackaged.py +0 -0
  449. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_RetrieveReportsAndDashboards.py +0 -0
  450. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_RetrieveUnpackaged.py +0 -0
  451. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_SOQLQuery.py +0 -0
  452. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_UninstallLocal.py +0 -0
  453. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_UninstallLocalBundles.py +0 -0
  454. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_UninstallLocalNamespacedBundles.py +0 -0
  455. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_UninstallPackage.py +0 -0
  456. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_UninstallPackaged.py +0 -0
  457. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_UninstallPackagedIncremental.py +0 -0
  458. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_activate_flow.py +0 -0
  459. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_base_tasks.py +0 -0
  460. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_composite.py +0 -0
  461. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_create_permission_sets.py +0 -0
  462. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_custom_settings.py +0 -0
  463. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_custom_settings_wait.py +0 -0
  464. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_enable_prediction.py +0 -0
  465. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_insert_record.py +0 -0
  466. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_install_package_version.py +0 -0
  467. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_network_member_group.py +0 -0
  468. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_org_settings.py +0 -0
  469. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_profiles.py +0 -0
  470. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_sourcetracking.py +0 -0
  471. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_trigger_handlers.py +0 -0
  472. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/test_update_dependencies.py +0 -0
  473. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/tests/util.py +0 -0
  474. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/trigger_handlers.py +0 -0
  475. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/uninstall_packaged_incremental.py +0 -0
  476. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/update_dependencies.py +0 -0
  477. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/update_profile.py +0 -0
  478. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/users/permsets.py +0 -0
  479. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/users/photos.py +0 -0
  480. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/users/tests/photo.mock.txt +0 -0
  481. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/users/tests/test_permsets.py +0 -0
  482. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/salesforce/users/tests/test_photos.py +0 -0
  483. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/sfdx.py +0 -0
  484. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/tests/__init__.py +0 -0
  485. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/tests/conftest.py +0 -0
  486. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/tests/test_command.py +0 -0
  487. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/tests/test_connectedapp.py +0 -0
  488. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/tests/test_create_package_version.py +0 -0
  489. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/tests/test_datadictionary.py +0 -0
  490. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/tests/test_dx_convert_from.py +0 -0
  491. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/tests/test_metadeploy.py +0 -0
  492. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/tests/test_metaxml.py +0 -0
  493. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/tests/test_promote_package_version.py +0 -0
  494. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/tests/test_pushfails.py +0 -0
  495. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/tests/test_salesforce.py +0 -0
  496. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/tests/test_sfdx.py +0 -0
  497. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/tests/test_util.py +0 -0
  498. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tasks/util.py +0 -0
  499. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tests/__init__.py +0 -0
  500. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tests/pytest_plugins/pytest_sf_orgconnect.py +0 -0
  501. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tests/pytest_plugins/pytest_sf_vcr.py +0 -0
  502. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tests/pytest_plugins/pytest_typeguard.py +0 -0
  503. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tests/test_entry_points.py +0 -0
  504. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tests/test_integration_infrastructure.py +0 -0
  505. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tests/test_main.py +0 -0
  506. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tests/test_schema.py +0 -0
  507. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tests/test_utils.py +0 -0
  508. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/tests/util.py +0 -0
  509. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/__init__.py +0 -0
  510. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/classutils.py +0 -0
  511. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/git.py +0 -0
  512. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/http/multi_request.py +0 -0
  513. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/http/requests_utils.py +0 -0
  514. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/http/tests/test_multi_request.py +0 -0
  515. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/iterators.py +0 -0
  516. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/logging.py +0 -0
  517. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/parallel/task_worker_queues/parallel_worker.py +0 -0
  518. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/parallel/task_worker_queues/parallel_worker_queue.py +0 -0
  519. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/parallel/task_worker_queues/tests/test_parallel_worker.py +0 -0
  520. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/tests/test_git.py +0 -0
  521. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/tests/test_logging.py +0 -0
  522. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/tests/test_org_schema.py +0 -0
  523. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/tests/test_org_schema_models.py +0 -0
  524. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/tests/test_waiting.py +0 -0
  525. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/waiting.py +0 -0
  526. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/xml/__init__.py +0 -0
  527. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/xml/metadata_tree.py +0 -0
  528. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/xml/robot_xml.py +0 -0
  529. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/xml/salesforce_encoding.py +0 -0
  530. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/xml/test/test_metadata_tree.py +0 -0
  531. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/xml/test/test_salesforce_encoding.py +0 -0
  532. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/yaml/cumulusci_yml.py +0 -0
  533. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/yaml/model_parser.py +0 -0
  534. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/yaml/safer_loader.py +0 -0
  535. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/yaml/tests/bad_cci.yml +0 -0
  536. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/yaml/tests/test_cumulusci_yml.py +0 -0
  537. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/yaml/tests/test_model_parser.py +0 -0
  538. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/yaml/tests/test_safer_loader.py +0 -0
  539. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci/utils/ziputils.py +0 -0
  540. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci.egg-info/SOURCES.txt +0 -0
  541. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci.egg-info/dependency_links.txt +0 -0
  542. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci.egg-info/entry_points.txt +0 -0
  543. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci.egg-info/not-zip-safe +0 -0
  544. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/cumulusci.egg-info/top_level.txt +0 -0
  545. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/2gp_testing.rst +0 -0
  546. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/Makefile +0 -0
  547. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/about.rst +0 -0
  548. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/cheat_sheet.rst +0 -0
  549. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/commands.rst +0 -0
  550. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/concepts.rst +0 -0
  551. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/conf.py +0 -0
  552. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/config.rst +0 -0
  553. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/connected_orgs.rst +0 -0
  554. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/continuous_integration.rst +0 -0
  555. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/contributing.rst +0 -0
  556. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/cookbook.rst +0 -0
  557. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/cumulusci_flow.rst +0 -0
  558. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/data.rst +0 -0
  559. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/dev.rst +0 -0
  560. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/diagram/img/image1.png +0 -0
  561. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/diagram/img/image12.png +0 -0
  562. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/diagram/img/image15.png +0 -0
  563. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/diagram/img/image17.png +0 -0
  564. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/diagram/img/image3.png +0 -0
  565. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/env_var_reference.rst +0 -0
  566. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/get_started.rst +0 -0
  567. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/github_actions.rst +0 -0
  568. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/headless.rst +0 -0
  569. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/history.rst +0 -0
  570. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/cci_service_list.png +0 -0
  571. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/cumulus_ci_workflow.png +0 -0
  572. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/env-var.png +0 -0
  573. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/env-var2.png +0 -0
  574. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/github-commit_status_error.png +0 -0
  575. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/github-commit_status_pass.png +0 -0
  576. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/github-creating_a_uat_release.png +0 -0
  577. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/github_checks.png +0 -0
  578. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/github_personal_access_token_scopes.png +0 -0
  579. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/github_secrets.png +0 -0
  580. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/github_workflow.png +0 -0
  581. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/locate_elements_screenshot.png +0 -0
  582. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/pipx.png +0 -0
  583. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/robot_log_screenshot.png +0 -0
  584. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/robot_toggled_results_screenshot.png +0 -0
  585. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/salesforce-org-process.png +0 -0
  586. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/service-list.png +0 -0
  587. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/skipping_task.png +0 -0
  588. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/windows_python.png +0 -0
  589. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/images/windows_python_success.png +0 -0
  590. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/index.rst +0 -0
  591. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/install.rst +0 -0
  592. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/internals.rst +0 -0
  593. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/intro.rst +0 -0
  594. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/make.bat +0 -0
  595. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/managed_2gp.rst +0 -0
  596. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/managed_package.rst +0 -0
  597. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/metadata_etl.rst +0 -0
  598. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/npsp_eda_2gp.rst +0 -0
  599. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/packaging.rst +0 -0
  600. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/push_upgrades.rst +0 -0
  601. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/reference.rst +0 -0
  602. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/release_notes.rst +0 -0
  603. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/robot.rst +0 -0
  604. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/robot_advanced.rst +0 -0
  605. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/robot_debugger.rst +0 -0
  606. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/robot_tutorial.rst +0 -0
  607. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/scratch_orgs.rst +0 -0
  608. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/tutorial.rst +0 -0
  609. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/unlocked_package.rst +0 -0
  610. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/docs/unpackaged.rst +0 -0
  611. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/pyproject.toml +0 -0
  612. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/setup.cfg +0 -0
  613. {cumulusci-3.52.0 → cumulusci-3.52.0.dev0}/setup.py +0 -0
@@ -2,27 +2,7 @@
2
2
  History
3
3
  =======
4
4
 
5
- 3.52.0 (2022-02-03)
6
- -------------------
7
-
8
- Changes
9
-
10
- * Flow steps can now be replaced with the same syntax for all step types! (Current step types are: 'task' or 'flow'). See the [replacing a flow step](https://cumulusci.readthedocs.io/en/latest/config.html?highlight=override#replace-a-flow-step) docs for more details. CumulusCI is still compatible with the old syntax which required setting the current step type to ``None`` when replacing with a step of a differing type. (#3043)
11
- * Whenever possible, while running the ``robot_libdoc`` task libdoc generates relative pathnames when creating CSV output (#3058)
12
- * Added a new option ``--preview`` to the ``robot_libdoc`` task. When set to ``true`` it automatically opens a browser window to the generated documentation. (#3057)
13
- * The robot keyword ``Locate element by label`` has been removed from the Salesforce.py library. This wasn't designed to be a keyword but was accidentally exported as one. If you want to find an input or textarea element by its label you can use a locator of the form ``label:<text>`` (eg: ``label:First Name``) (#3048)
14
- * Updated to `Snowfakery 2.5.0 <https://github.com/SFDO-Tooling/Snowfakery/releases/tag/v2.5.0>`__
15
- * If you have Python code that is importing CumulusCI's config classes, some of them have been reorganized into modules with a snake_case name. The old CamelCase imports should still work, but the new names are preferred for consistency with other parts of the codebase.
16
-
17
- Issues Closed
18
-
19
- * Fixed an issue where overriding flow steps was not working as documented. (#3043)
20
- * We fixed a bug where the ``Run Task`` and ``Run Task Class`` robot keywords throw an error like ``AttributeError: module 'robot.api.logger' has no attribute 'log'`` in rare cases (#3053)
21
- * Fixed a bug in the `snowfakery` task which caused Unique IDs to not always be actually unique. (#3059)
22
-
23
-
24
5
  3.51.1 (2022-01-25)
25
- -------------------
26
6
 
27
7
  Issues Closed
28
8
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cumulusci
3
- Version: 3.52.0
3
+ Version: 3.52.0.dev0
4
4
  Summary: Build and release tools for Salesforce developers
5
5
  Home-page: https://github.com/SFDO-Tooling/CumulusCI
6
6
  Author: Salesforce.org
@@ -57,7 +57,9 @@ Description: =========
57
57
  Questions?
58
58
  ----------
59
59
 
60
- Ask in the `CumulusCI group in the Trailblazer Community <https://success.salesforce.com/_ui/core/chatter/groups/GroupProfilePage?g=0F9300000009M9ZCAU>`_.
60
+ Salesforce.org (http://salesforce.org/) customers and partners can ask in the `CumulusCI group in the Power of Us Hub <https://powerofus.force.com/s/group/0F980000000PSRHCA4/cumulusci-cci>`_.
61
+
62
+ Others can ask in the `CumulusCI group in the Trailblazer Community <https://success.salesforce.com/_ui/core/chatter/groups/GroupProfilePage?g=0F9300000009M9ZCAU>`_.
61
63
 
62
64
  *Please note:* CumulusCI is distributed under an `open source license <https://github.com/SFDO-Tooling/CumulusCI/blob/main/LICENSE>`_ and is not covered by the Salesforce Master Subscription Agreement.
63
65
 
@@ -66,27 +68,7 @@ Description: =========
66
68
  History
67
69
  =======
68
70
 
69
- 3.52.0 (2022-02-03)
70
- -------------------
71
-
72
- Changes
73
-
74
- * Flow steps can now be replaced with the same syntax for all step types! (Current step types are: 'task' or 'flow'). See the [replacing a flow step](https://cumulusci.readthedocs.io/en/latest/config.html?highlight=override#replace-a-flow-step) docs for more details. CumulusCI is still compatible with the old syntax which required setting the current step type to ``None`` when replacing with a step of a differing type. (#3043)
75
- * Whenever possible, while running the ``robot_libdoc`` task libdoc generates relative pathnames when creating CSV output (#3058)
76
- * Added a new option ``--preview`` to the ``robot_libdoc`` task. When set to ``true`` it automatically opens a browser window to the generated documentation. (#3057)
77
- * The robot keyword ``Locate element by label`` has been removed from the Salesforce.py library. This wasn't designed to be a keyword but was accidentally exported as one. If you want to find an input or textarea element by its label you can use a locator of the form ``label:<text>`` (eg: ``label:First Name``) (#3048)
78
- * Updated to `Snowfakery 2.5.0 <https://github.com/SFDO-Tooling/Snowfakery/releases/tag/v2.5.0>`__
79
- * If you have Python code that is importing CumulusCI's config classes, some of them have been reorganized into modules with a snake_case name. The old CamelCase imports should still work, but the new names are preferred for consistency with other parts of the codebase.
80
-
81
- Issues Closed
82
-
83
- * Fixed an issue where overriding flow steps was not working as documented. (#3043)
84
- * We fixed a bug where the ``Run Task`` and ``Run Task Class`` robot keywords throw an error like ``AttributeError: module 'robot.api.logger' has no attribute 'log'`` in rare cases (#3053)
85
- * Fixed a bug in the `snowfakery` task which caused Unique IDs to not always be actually unique. (#3059)
86
-
87
-
88
71
  3.51.1 (2022-01-25)
89
- -------------------
90
72
 
91
73
  Issues Closed
92
74
 
@@ -49,6 +49,8 @@ from minute 36 through minute 54.
49
49
  Questions?
50
50
  ----------
51
51
 
52
- Ask in the `CumulusCI group in the Trailblazer Community <https://success.salesforce.com/_ui/core/chatter/groups/GroupProfilePage?g=0F9300000009M9ZCAU>`_.
52
+ Salesforce.org (http://salesforce.org/) customers and partners can ask in the `CumulusCI group in the Power of Us Hub <https://powerofus.force.com/s/group/0F980000000PSRHCA4/cumulusci-cci>`_.
53
+
54
+ Others can ask in the `CumulusCI group in the Trailblazer Community <https://success.salesforce.com/_ui/core/chatter/groups/GroupProfilePage?g=0F9300000009M9ZCAU>`_.
53
55
 
54
56
  *Please note:* CumulusCI is distributed under an `open source license <https://github.com/SFDO-Tooling/CumulusCI/blob/main/LICENSE>`_ and is not covered by the Salesforce Master Subscription Agreement.
@@ -227,13 +227,6 @@ class CumulusCI(object):
227
227
  # robot logger can handle that.
228
228
  if not hasattr(robot.api.logger, "warning"):
229
229
  robot.api.logger.warning = robot.api.logger.warn
230
-
231
- # robot's logger doesn't have the 'log' method, and there's at least one
232
- # piece of code that depends on this method. So, if we haven't already
233
- # monkeypatched it in, do so now. See W-10503175
234
- if not hasattr(robot.api.logger, "log"):
235
- robot.api.logger.log = _logger_log
236
-
237
230
  task = task_class(
238
231
  task_config.project_config or self.project_config,
239
232
  task_config,
@@ -268,22 +261,3 @@ class CumulusCI(object):
268
261
  def debug(self):
269
262
  """Pauses execution and enters the Python debugger."""
270
263
  set_pdb_trace()
271
-
272
-
273
- def _logger_log(level, msg):
274
- """Implements the 'log' method for robot.api.logger
275
-
276
- This takes a normal python log level, converts it to one of
277
- the supported robot log levels, then calls the write method
278
- of the logger.
279
- """
280
- level = (
281
- "ERROR"
282
- if level >= logging.ERROR
283
- else "WARN"
284
- if level >= logging.WARN
285
- else "INFO"
286
- if level >= logging.INFO
287
- else "DEBUG"
288
- )
289
- robot.api.logger.write(msg, level)
@@ -1,4 +1,3 @@
1
- import logging
2
1
  import unittest
3
2
  from pathlib import Path
4
3
  from unittest import mock
@@ -70,49 +69,6 @@ class TestCumulusCILibrary(MockLoggerMixin, unittest.TestCase):
70
69
  task.logger, "warning"
71
70
  ), "robot logger should have a warning method but doesn't"
72
71
 
73
- def test_robot_logger_supports_log(self):
74
- """Verify that 'run task' uses a logger that supports .log()
75
-
76
- log() normally will be passed a predefined log level (eg:
77
- logging.INFO, logging.DEBUG, etc), but it can take any integer
78
- which get mapped to a robot log level as a string. This attempts
79
- to catch all of the various mappings.
80
- """
81
- with mock.patch.object(self.cumulusci, "_run_task"):
82
- self.cumulusci.run_task("get_pwd")
83
- args, kwargs = self.cumulusci._run_task.call_args
84
- task = args[0]
85
- with mock.patch.object(task.logger, "write") as logger_write:
86
-
87
- task.logger.log(logging.CRITICAL, "a critical message")
88
- task.logger.log(logging.ERROR, "an error message")
89
- task.logger.log(logging.WARN, "a warning message")
90
- task.logger.log(logging.INFO, "an info message")
91
- task.logger.log(logging.DEBUG, "a debug message")
92
-
93
- task.logger.log(0, "a message with level 0")
94
- task.logger.log(1, "a message with level 1")
95
- task.logger.log(11, "a message with level 11")
96
- task.logger.log(21, "a message with level 21")
97
- task.logger.log(31, "a message with level 31")
98
- task.logger.log(41, "a message with level 41")
99
-
100
- logger_write.assert_has_calls(
101
- (
102
- mock.call("a critical message", "ERROR"),
103
- mock.call("an error message", "ERROR"),
104
- mock.call("a warning message", "WARN"),
105
- mock.call("an info message", "INFO"),
106
- mock.call("a debug message", "DEBUG"),
107
- mock.call("a message with level 0", "DEBUG"),
108
- mock.call("a message with level 1", "DEBUG"),
109
- mock.call("a message with level 11", "DEBUG"),
110
- mock.call("a message with level 21", "INFO"),
111
- mock.call("a message with level 31", "WARN"),
112
- mock.call("a message with level 41", "ERROR"),
113
- )
114
- )
115
-
116
72
  def test_run_task_class_robot_logger(self):
117
73
  """Verify that 'run task class' uses the robot logger"""
118
74
  with mock.patch.object(self.cumulusci, "_run_task"):
@@ -22,10 +22,6 @@ class SnowfakeryWorkingDirectory:
22
22
  metadata.reflect()
23
23
  return engine, metadata
24
24
 
25
- @property
26
- def index(self) -> str:
27
- return self.path.name.rsplit("_")[0]
28
-
29
25
  def get_record_counts(self):
30
26
  """Get record counts generated for this portion."""
31
27
  engine, metadata = self.setup_engine()
@@ -29,15 +29,6 @@ class SubtaskConfigurator:
29
29
  parts = name.rsplit("_", 1)
30
30
  batch_size = int(parts[-1])
31
31
 
32
- # The pid is the tool that ensures that every uniqueid is
33
- # unique even across different processes.
34
- #
35
- # big_ids ensures that the pid is incorporated into the ids.
36
- plugin_options = {
37
- "pid": str(wd.index),
38
- "big_ids": "True",
39
- }
40
-
41
32
  return {
42
33
  "generator_yaml": str(self.recipe),
43
34
  "database_url": wd.database_url,
@@ -46,7 +37,6 @@ class SubtaskConfigurator:
46
37
  "continuation_file": wd.continuation_file,
47
38
  "num_records_tablename": self.run_until.sobject_name or COUNT_REPS,
48
39
  "vars": recipe_options,
49
- "plugin_options": plugin_options,
50
40
  }
51
41
 
52
42
  def data_loader_opts(self, working_dir: Path):
@@ -3,7 +3,6 @@ import os
3
3
  import os.path
4
4
  import re
5
5
  import time
6
- from pathlib import Path
7
6
 
8
7
  import jinja2
9
8
  import robot.utils
@@ -15,9 +14,8 @@ from robot.utils import Importer
15
14
  import cumulusci
16
15
  from cumulusci.core.exceptions import TaskOptionsError
17
16
  from cumulusci.core.tasks import BaseTask
18
- from cumulusci.core.utils import process_bool_arg, process_glob_list_arg
17
+ from cumulusci.core.utils import process_glob_list_arg
19
18
  from cumulusci.robotframework import PageObjects
20
- from cumulusci.utils.fileutils import view_file
21
19
 
22
20
 
23
21
  class RobotLibDoc(BaseTask):
@@ -46,13 +44,6 @@ class RobotLibDoc(BaseTask):
46
44
  "description": "A string to use as the title of the generated output",
47
45
  "required": False,
48
46
  },
49
- "preview": {
50
- "description": (
51
- "If True, automatically open a window to view the "
52
- "generated data when the task is successful"
53
- ),
54
- "required": False,
55
- },
56
47
  }
57
48
 
58
49
  def _validate_options(self):
@@ -81,8 +72,6 @@ class RobotLibDoc(BaseTask):
81
72
  )
82
73
  raise TaskOptionsError(error_message)
83
74
 
84
- self.options["preview"] = process_bool_arg(self.options.get("preview", False))
85
-
86
75
  def is_pageobject_library(self, path):
87
76
  """Return True if the file looks like a page object library"""
88
77
  if path.endswith(".py"):
@@ -143,9 +132,6 @@ class RobotLibDoc(BaseTask):
143
132
  f.write(html)
144
133
  self.logger.info("created {}".format(self.options["output"]))
145
134
 
146
- if self.options["preview"]:
147
- view_file(self.options["output"])
148
-
149
135
  except Exception as e:
150
136
  raise TaskOptionsError(
151
137
  "Unable to create output file '{}' ({})".format(
@@ -221,10 +207,8 @@ class KeywordFile:
221
207
  self.keywords[page_object] = libdoc
222
208
 
223
209
  def to_tuples(self):
224
- """Convert the dictionary of keyword data to a set of tuples"""
210
+ """Convert the dictionary of keyword data to tuple of tuples"""
225
211
  rows = []
226
- cwd = Path.cwd()
227
-
228
212
  for po, libdoc in self.keywords.items():
229
213
  (po_type, po_object) = po if po else ("", "")
230
214
  for keyword in libdoc.keywords:
@@ -234,19 +218,11 @@ class KeywordFile:
234
218
  if "cumulusci/robotframework/pageobjects" in keyword.source:
235
219
  continue
236
220
 
237
- path = keyword.source
238
- if path.startswith("/"):
239
- try:
240
- path = str(Path(path).relative_to(cwd))
241
- except ValueError:
242
- # ok, fine. We'll use the path as-is.
243
- pass
244
-
245
221
  # make sure that if you change the list of columns here
246
222
  # that you modify the `get_header` property too!
247
223
  row = (
248
224
  keyword.name,
249
- path,
225
+ keyword.source,
250
226
  keyword.lineno,
251
227
  po_type,
252
228
  po_object,
@@ -12,7 +12,6 @@ from xml.etree import ElementTree as ET
12
12
 
13
13
  import pytest
14
14
  import responses
15
- from robot.libdocpkg.robotbuilder import LibraryDocBuilder
16
15
 
17
16
  from cumulusci.core.config import BaseProjectConfig, TaskConfig, UniversalConfig
18
17
  from cumulusci.core.exceptions import RobotTestFailure, TaskOptionsError
@@ -484,7 +483,7 @@ class TestRobotLibDoc(MockLoggerMixin, unittest.TestCase):
484
483
  ["Name", "Source", "Line#", "po type", "po_object", "Documentation"],
485
484
  [
486
485
  "Keyword One",
487
- "cumulusci/tasks/robotframework/tests/TestPageObjects.py",
486
+ f"{self.datadir}/TestPageObjects.py",
488
487
  "13",
489
488
  "Listing",
490
489
  "Something__c",
@@ -492,7 +491,7 @@ class TestRobotLibDoc(MockLoggerMixin, unittest.TestCase):
492
491
  ],
493
492
  [
494
493
  "Keyword One",
495
- "cumulusci/tasks/robotframework/tests/TestPageObjects.py",
494
+ f"{self.datadir}/TestPageObjects.py",
496
495
  "24",
497
496
  "Detail",
498
497
  "Something__c",
@@ -500,7 +499,7 @@ class TestRobotLibDoc(MockLoggerMixin, unittest.TestCase):
500
499
  ],
501
500
  [
502
501
  "Keyword Three",
503
- "cumulusci/tasks/robotframework/tests/TestPageObjects.py",
502
+ f"{self.datadir}/TestPageObjects.py",
504
503
  "30",
505
504
  "Detail",
506
505
  "Something__c",
@@ -508,7 +507,7 @@ class TestRobotLibDoc(MockLoggerMixin, unittest.TestCase):
508
507
  ],
509
508
  [
510
509
  "Keyword Two",
511
- "cumulusci/tasks/robotframework/tests/TestPageObjects.py",
510
+ f"{self.datadir}/TestPageObjects.py",
512
511
  "16",
513
512
  "Listing",
514
513
  "Something__c",
@@ -516,7 +515,7 @@ class TestRobotLibDoc(MockLoggerMixin, unittest.TestCase):
516
515
  ],
517
516
  [
518
517
  "Keyword Two",
519
- "cumulusci/tasks/robotframework/tests/TestPageObjects.py",
518
+ f"{self.datadir}/TestPageObjects.py",
520
519
  "27",
521
520
  "Detail",
522
521
  "Something__c",
@@ -524,7 +523,7 @@ class TestRobotLibDoc(MockLoggerMixin, unittest.TestCase):
524
523
  ],
525
524
  [
526
525
  "Library Keyword One",
527
- "cumulusci/tasks/robotframework/tests/TestLibrary.py",
526
+ f"{self.datadir}/TestLibrary.py",
528
527
  "13",
529
528
  "",
530
529
  "",
@@ -532,7 +531,7 @@ class TestRobotLibDoc(MockLoggerMixin, unittest.TestCase):
532
531
  ],
533
532
  [
534
533
  "Library Keyword Two",
535
- "cumulusci/tasks/robotframework/tests/TestLibrary.py",
534
+ f"{self.datadir}/TestLibrary.py",
536
535
  "17",
537
536
  "",
538
537
  "",
@@ -540,7 +539,7 @@ class TestRobotLibDoc(MockLoggerMixin, unittest.TestCase):
540
539
  ],
541
540
  [
542
541
  "Resource keyword one",
543
- "cumulusci/tasks/robotframework/tests/TestResource.robot",
542
+ f"{self.datadir}/TestResource.robot",
544
543
  "2",
545
544
  "",
546
545
  "",
@@ -548,7 +547,7 @@ class TestRobotLibDoc(MockLoggerMixin, unittest.TestCase):
548
547
  ],
549
548
  [
550
549
  "Resource keyword two",
551
- "cumulusci/tasks/robotframework/tests/TestResource.robot",
550
+ f"{self.datadir}/TestResource.robot",
552
551
  "6",
553
552
  "",
554
553
  "",
@@ -558,17 +557,6 @@ class TestRobotLibDoc(MockLoggerMixin, unittest.TestCase):
558
557
 
559
558
  self.assertListEqual(actual_output, expected_output)
560
559
 
561
- @mock.patch("cumulusci.tasks.robotframework.libdoc.view_file")
562
- def test_preview_option(self, mock_view_file):
563
- """Verify that the 'preview' option results in calling the view_file method"""
564
- path = os.path.join(self.datadir, "TestLibrary.py")
565
- output = os.path.join(self.tmpdir, "index.html")
566
- task = create_task(
567
- RobotLibDoc, {"path": path, "output": output, "preview": True}
568
- )
569
- task()
570
- mock_view_file.assert_called_once_with(output)
571
-
572
560
 
573
561
  class TestRobotLibDocKeywordFile(unittest.TestCase):
574
562
  def setUp(self):
@@ -597,34 +585,6 @@ class TestRobotLibDocKeywordFile(unittest.TestCase):
597
585
  assert len(kwfile.keywords) == 1
598
586
  assert kwfile.keywords[("Detail", "Contact")] == "the documentation..."
599
587
 
600
- def test_to_tuples(self):
601
- """Test that to_tuples returns relative paths when possible
602
-
603
- The code attempts to convert absolute paths to relative paths,
604
- but if it can't then the path remains unchainged. This test generates
605
- results with one file that is relative to cwd and one that is not.
606
- """
607
-
608
- here = os.path.dirname(__file__)
609
- path = Path(here) / "TestLibrary.py"
610
- libdoc = LibraryDocBuilder().build(str(path))
611
-
612
- # we'll set the first to a non-relative directory and leave
613
- # the other one relative to here (assuming that `here` is
614
- # relative to cwd)
615
- libdoc.keywords[0].source = "/bogus/whatever.py"
616
-
617
- # The returned result is a set, so the order is indeterminate. That's
618
- # why the following line sorts it.
619
- kwfile = KeywordFile("Whatever")
620
- kwfile.add_keywords(libdoc)
621
- rows = sorted(kwfile.to_tuples())
622
-
623
- # verify the absolute path remains absolute
624
- assert rows[0][1] == "/bogus/whatever.py"
625
- # verify that the path to a file under cwd is relative
626
- assert rows[1][1] == str(path.relative_to(os.getcwd()))
627
-
628
588
 
629
589
  class TestRobotLibDocOutput(unittest.TestCase):
630
590
  """Tests for the generated robot keyword documentation"""
@@ -1,6 +1,4 @@
1
1
  import os
2
- import urllib.request
3
- import webbrowser
4
2
  from contextlib import contextmanager
5
3
  from io import StringIO, TextIOWrapper
6
4
  from pathlib import Path
@@ -102,18 +100,6 @@ def proxy(funcname):
102
100
  return func
103
101
 
104
102
 
105
- def view_file(path):
106
- """Open the given file in a webbrowser or whatever
107
-
108
- This uses webbrowser.open which might open the file in something other
109
- than a web browser (eg: a spreadsheet app if you open a .csv file)
110
- """
111
- if not isinstance(path, Path):
112
- path = Path(path)
113
- url = f"file://{urllib.request.pathname2url(str(path.resolve()))}"
114
- webbrowser.open(url)
115
-
116
-
117
103
  class FSResource:
118
104
  """Generalization of pathlib.Path to support S3, FTP, etc
119
105
 
@@ -1,7 +1,6 @@
1
1
  import doctest
2
2
  import os
3
3
  import sys
4
- import urllib.request
5
4
  from io import BytesIO, UnsupportedOperation
6
5
  from pathlib import Path
7
6
  from tempfile import TemporaryDirectory
@@ -13,12 +12,7 @@ from fs import errors, open_fs
13
12
 
14
13
  import cumulusci
15
14
  from cumulusci.utils import fileutils, temporary_dir
16
- from cumulusci.utils.fileutils import (
17
- FSResource,
18
- load_from_source,
19
- open_fs_resource,
20
- view_file,
21
- )
15
+ from cumulusci.utils.fileutils import FSResource, load_from_source, open_fs_resource
22
16
 
23
17
 
24
18
  class TestFileutils:
@@ -80,22 +74,6 @@ class TestFileutils:
80
74
  with load_from_source(p2) as (data, filename):
81
75
  assert "tasks:" in data.read()
82
76
 
83
- def test_view_file_str_path(self):
84
- """Verify view_file works when given a path as a string"""
85
- with mock.patch("webbrowser.open") as webbrowser_open:
86
- path = "robot/results/index.html"
87
- view_file(path)
88
- url = f"file://{urllib.request.pathname2url(str(Path(path).resolve()))}"
89
- webbrowser_open.assert_called_once_with(url)
90
-
91
- def test_view_file_Path(self):
92
- """Verify view_file works when given a path as a Path object"""
93
- with mock.patch("webbrowser.open") as webbrowser_open:
94
- path = Path("robot/results/index.html")
95
- view_file(path)
96
- url = f"file://{urllib.request.pathname2url(str(path.resolve()))}"
97
- webbrowser_open.assert_called_once_with(url)
98
-
99
77
 
100
78
  class _TestFSResourceShared:
101
79
  file = Path(__file__)
@@ -0,0 +1 @@
1
+ 3.52.0.dev0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cumulusci
3
- Version: 3.52.0
3
+ Version: 3.52.0.dev0
4
4
  Summary: Build and release tools for Salesforce developers
5
5
  Home-page: https://github.com/SFDO-Tooling/CumulusCI
6
6
  Author: Salesforce.org
@@ -57,7 +57,9 @@ Description: =========
57
57
  Questions?
58
58
  ----------
59
59
 
60
- Ask in the `CumulusCI group in the Trailblazer Community <https://success.salesforce.com/_ui/core/chatter/groups/GroupProfilePage?g=0F9300000009M9ZCAU>`_.
60
+ Salesforce.org (http://salesforce.org/) customers and partners can ask in the `CumulusCI group in the Power of Us Hub <https://powerofus.force.com/s/group/0F980000000PSRHCA4/cumulusci-cci>`_.
61
+
62
+ Others can ask in the `CumulusCI group in the Trailblazer Community <https://success.salesforce.com/_ui/core/chatter/groups/GroupProfilePage?g=0F9300000009M9ZCAU>`_.
61
63
 
62
64
  *Please note:* CumulusCI is distributed under an `open source license <https://github.com/SFDO-Tooling/CumulusCI/blob/main/LICENSE>`_ and is not covered by the Salesforce Master Subscription Agreement.
63
65
 
@@ -66,27 +68,7 @@ Description: =========
66
68
  History
67
69
  =======
68
70
 
69
- 3.52.0 (2022-02-03)
70
- -------------------
71
-
72
- Changes
73
-
74
- * Flow steps can now be replaced with the same syntax for all step types! (Current step types are: 'task' or 'flow'). See the [replacing a flow step](https://cumulusci.readthedocs.io/en/latest/config.html?highlight=override#replace-a-flow-step) docs for more details. CumulusCI is still compatible with the old syntax which required setting the current step type to ``None`` when replacing with a step of a differing type. (#3043)
75
- * Whenever possible, while running the ``robot_libdoc`` task libdoc generates relative pathnames when creating CSV output (#3058)
76
- * Added a new option ``--preview`` to the ``robot_libdoc`` task. When set to ``true`` it automatically opens a browser window to the generated documentation. (#3057)
77
- * The robot keyword ``Locate element by label`` has been removed from the Salesforce.py library. This wasn't designed to be a keyword but was accidentally exported as one. If you want to find an input or textarea element by its label you can use a locator of the form ``label:<text>`` (eg: ``label:First Name``) (#3048)
78
- * Updated to `Snowfakery 2.5.0 <https://github.com/SFDO-Tooling/Snowfakery/releases/tag/v2.5.0>`__
79
- * If you have Python code that is importing CumulusCI's config classes, some of them have been reorganized into modules with a snake_case name. The old CamelCase imports should still work, but the new names are preferred for consistency with other parts of the codebase.
80
-
81
- Issues Closed
82
-
83
- * Fixed an issue where overriding flow steps was not working as documented. (#3043)
84
- * We fixed a bug where the ``Run Task`` and ``Run Task Class`` robot keywords throw an error like ``AttributeError: module 'robot.api.logger' has no attribute 'log'`` in rare cases (#3053)
85
- * Fixed a bug in the `snowfakery` task which caused Unique IDs to not always be actually unique. (#3059)
86
-
87
-
88
71
  3.51.1 (2022-01-25)
89
- -------------------
90
72
 
91
73
  Issues Closed
92
74
 
@@ -2,14 +2,14 @@ appdirs==1.4.4
2
2
  authlib==0.15.5
3
3
  certifi==2021.10.8
4
4
  cffi==1.15.0
5
- charset-normalizer==2.0.11
6
- click==8.0.3
5
+ charset-normalizer==2.0.10
6
+ click==7.1.2
7
7
  colorama==0.4.4
8
8
  commonmark==0.9.1
9
9
  cryptography==36.0.1
10
10
  deprecated==1.2.13
11
11
  docutils==0.16
12
- faker==12.0.0
12
+ faker==11.1.0
13
13
  fs==2.4.14
14
14
  github3.py==3.0.0
15
15
  greenlet==1.1.2
@@ -30,9 +30,9 @@ python-baseconv==1.2.2
30
30
  python-dateutil==2.8.2
31
31
  pytz==2021.3
32
32
  pyyaml==6.0
33
- requests==2.27.1
33
+ requests==2.27.0
34
34
  requests-futures==1.0.0
35
- rich==11.1.0
35
+ rich==11.0.0
36
36
  robotframework==4.1.3
37
37
  robotframework-lint==1.1
38
38
  robotframework-pabot==2.1.0
@@ -46,12 +46,13 @@ sarge==0.1.7.post1
46
46
  selenium==3.141.0
47
47
  simple-salesforce==1.11.4
48
48
  six==1.16.0
49
- snowfakery==2.5.0
50
- sqlalchemy==1.4.31
49
+ snowfakery==2.4.0
50
+ sqlalchemy==1.4.29
51
+ text-unidecode==1.3
51
52
  typing-extensions==4.0.1
52
53
  unicodecsv==0.14.1
53
54
  uritemplate==4.1.1
54
- urllib3==1.26.8
55
+ urllib3==1.26.7
55
56
  wrapt==1.13.3
56
57
  xmltodict==0.12.0
57
58
  zipp==3.7.0
@@ -216,10 +216,12 @@ a plan named 'config'.
216
216
  ──────────────────────────────────────────────────────────────────────────────
217
217
  Title Express Setup Configuration Plan
218
218
  Preflight This will install metadata configurations into your org.
219
- Post-install Thanks for installing Advisor Link. Visit the Trailblazer Community
220
- for any questions about Advisor Link.
219
+ Post-install Thanks for installing Advisor Link. Visit the [Advisor Link
220
+ topic](https://powerofus.force.com/s/topic/0TO80000000VXyzGA…
221
+ on the Power of Us Hub for any questions about Advisor Link.
221
222
  Error If you experience an issue with the installation, please post
222
- in the Trailblazer Community.
223
+ in the [Power of Us
224
+ Hub](https://powerofus.force.com/s/topic/0TO80000000VXyzGAG/…
223
225
 
224
226
  Plan Preflights
225
227