codemagic-cli-tools 0.50.0__tar.gz → 0.50.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 (410) hide show
  1. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/PKG-INFO +1 -1
  2. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/pyproject.toml +1 -1
  3. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/__version__.py +1 -1
  4. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/__version__.py-e +1 -1
  5. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/export_options.py +27 -8
  6. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/xctests/__init__.py +1 -0
  7. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/xctests/xcresulttool.py +10 -3
  8. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/xcode_project.py +32 -17
  9. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/test_export_options.py +49 -1
  10. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/LICENSE +0 -0
  11. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/README.md +0 -0
  12. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/__init__.py +0 -0
  13. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/__init__.py +0 -0
  14. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/__init__.py +0 -0
  15. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/api_client.py +0 -0
  16. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/api_error.py +0 -0
  17. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/api_session.py +0 -0
  18. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/apps/__init__.py +0 -0
  19. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/apps/apps.py +0 -0
  20. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/builds/__init__.py +0 -0
  21. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/builds/builds.py +0 -0
  22. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/json_web_token_manager.py +0 -0
  23. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/provisioning/__init__.py +0 -0
  24. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/provisioning/bundle_id_capabilities.py +0 -0
  25. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/provisioning/bundle_ids.py +0 -0
  26. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/provisioning/devices.py +0 -0
  27. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/provisioning/profiles.py +0 -0
  28. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/provisioning/signing_certificates.py +0 -0
  29. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/resource_manager.py +0 -0
  30. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/testflight/__init__.py +0 -0
  31. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/testflight/beta_groups.py +0 -0
  32. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/type_declarations.py +0 -0
  33. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/versioning/__init__.py +0 -0
  34. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/versioning/app_store_version_localizations.py +0 -0
  35. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/versioning/app_store_version_submissions.py +0 -0
  36. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/versioning/app_store_versions.py +0 -0
  37. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/versioning/beta_app_review_submissions.py +0 -0
  38. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/versioning/beta_build_localizations.py +0 -0
  39. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/versioning/pre_release_versions.py +0 -0
  40. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/versioning/review_submission_items.py +0 -0
  41. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/app_store_connect/versioning/review_submissions.py +0 -0
  42. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/__init__.py +0 -0
  43. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/app.py +0 -0
  44. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/app_store_version.py +0 -0
  45. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/app_store_version_localization.py +0 -0
  46. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/app_store_version_submission.py +0 -0
  47. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/beta_app_localization.py +0 -0
  48. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/beta_app_review_detail.py +0 -0
  49. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/beta_app_review_submission.py +0 -0
  50. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/beta_build_localization.py +0 -0
  51. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/beta_group.py +0 -0
  52. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/build.py +0 -0
  53. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/build_beta_detail.py +0 -0
  54. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/bundle_id.py +0 -0
  55. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/bundle_id_capability.py +0 -0
  56. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/device.py +0 -0
  57. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/enums.py +0 -0
  58. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/error_response.py +0 -0
  59. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/pre_release_version.py +0 -0
  60. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/profile.py +0 -0
  61. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/resource.py +0 -0
  62. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/review_submission.py +0 -0
  63. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/review_submission_item.py +0 -0
  64. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/apple/resources/signing_certificate.py +0 -0
  65. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/__init__.py +0 -0
  66. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/action.py +0 -0
  67. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/action_group.py +0 -0
  68. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/argument/__init__.py +0 -0
  69. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/argument/action_callable.py +0 -0
  70. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/argument/argument.py +0 -0
  71. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/argument/argument_formatter.py +0 -0
  72. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/argument/argument_parser_builder.py +0 -0
  73. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/argument/argument_properties.py +0 -0
  74. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/argument/common_argument_types.py +0 -0
  75. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/argument/typed_cli_argument.py +0 -0
  76. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/cli_app.py +0 -0
  77. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/cli_help_formatter.py +0 -0
  78. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/cli_process.py +0 -0
  79. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/cli_process_stream.py +0 -0
  80. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/cli_types.py +0 -0
  81. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/colors.py +0 -0
  82. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/cli/environment.py +0 -0
  83. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/data/jars/bundletool-all-1.13.1.jar +0 -0
  84. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/__init__.py +0 -0
  85. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/errors.py +0 -0
  86. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/firebase_client.py +0 -0
  87. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/google_client.py +0 -0
  88. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/resource_managers/__init__.py +0 -0
  89. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/resource_managers/mixins/__init__.py +0 -0
  90. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/resource_managers/mixins/acting_manager_mixin.py +0 -0
  91. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/resource_managers/mixins/listing_manager_mixin.py +0 -0
  92. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/resource_managers/release_manager.py +0 -0
  93. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/resource_managers/resource_manager.py +0 -0
  94. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/resources/__init__.py +0 -0
  95. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/resources/identifiers/__init__.py +0 -0
  96. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/resources/identifiers/app_identifier.py +0 -0
  97. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/resources/identifiers/resource_identifier.py +0 -0
  98. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/resources/release.py +0 -0
  99. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/resources/release_notes.py +0 -0
  100. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google/resources/resource.py +0 -0
  101. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google_play/__init__.py +0 -0
  102. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google_play/api_client.py +0 -0
  103. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google_play/api_error.py +0 -0
  104. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google_play/resources/__init__.py +0 -0
  105. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google_play/resources/edit.py +0 -0
  106. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google_play/resources/enums.py +0 -0
  107. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google_play/resources/resource.py +0 -0
  108. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/google_play/resources/track.py +0 -0
  109. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/mixins/__init__.py +0 -0
  110. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/mixins/path_finder.py +0 -0
  111. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/mixins/running_cli_app.py +0 -0
  112. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/mixins/str_converter.py +0 -0
  113. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/__init__.py +0 -0
  114. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/altool/__init__.py +0 -0
  115. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/altool/altool.py +0 -0
  116. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/altool/altool_result.py +0 -0
  117. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/altool/enums.py +0 -0
  118. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/android_signing_info.py +0 -0
  119. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/application_package/__init__.py +0 -0
  120. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/application_package/abstract_package.py +0 -0
  121. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/application_package/ipa.py +0 -0
  122. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/application_package/macos_package.py +0 -0
  123. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/bundle_id_detector.py +0 -0
  124. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/certificate.py +0 -0
  125. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/certificate_attributes.py +0 -0
  126. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/certificate_p12_exporter.py +0 -0
  127. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/code_sign_entitlements.py +0 -0
  128. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/code_signing_settings_manager.py +0 -0
  129. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/enums.py +0 -0
  130. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/json_serializable.py +0 -0
  131. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/junit/__init__.py +0 -0
  132. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/junit/definitions.py +0 -0
  133. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/junit/printer.py +0 -0
  134. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/keystore.py +0 -0
  135. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/pbx_project.py +0 -0
  136. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/private_key.py +0 -0
  137. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/provisioning_profile.py +0 -0
  138. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/simulator/__init__.py +0 -0
  139. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/simulator/core_simulator_service.py +0 -0
  140. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/simulator/runtime.py +0 -0
  141. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/simulator/simulator.py +0 -0
  142. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/table/__init__.py +0 -0
  143. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/table/line.py +0 -0
  144. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/table/table.py +0 -0
  145. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/xcode.py +0 -0
  146. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/xcodebuild.py +0 -0
  147. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/xcpretty.py +0 -0
  148. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/xctests/collector.py +0 -0
  149. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/xctests/converter.py +0 -0
  150. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/models/xctests/xcresult.py +0 -0
  151. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/py.typed +0 -0
  152. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/scripts/code_signing_manager.rb +0 -0
  153. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/shell_tools/__init__.py +0 -0
  154. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/shell_tools/abstract_shell_tool.py +0 -0
  155. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/shell_tools/keytool.py +0 -0
  156. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/__init__.py +0 -0
  157. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/_xcode_project/__init__.py +0 -0
  158. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/_xcode_project/arguments.py +0 -0
  159. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/android_app_bundle.py +0 -0
  160. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/android_keystore/__init__.py +0 -0
  161. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/android_keystore/__main__.py +0 -0
  162. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/android_keystore/android_keystore.py +0 -0
  163. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/android_keystore/argument_types.py +0 -0
  164. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/android_keystore/arguments.py +0 -0
  165. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/__init__.py +0 -0
  166. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/__main__.py +0 -0
  167. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/abstract_base_action.py +0 -0
  168. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_group.py +0 -0
  169. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_groups/__init__.py +0 -0
  170. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_groups/app_store_version_localizations_action_group.py +0 -0
  171. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_groups/app_store_version_submissions_action_group.py +0 -0
  172. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_groups/app_store_versions_action_group.py +0 -0
  173. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_groups/apps_action_group.py +0 -0
  174. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_groups/beta_app_review_submissions_action_group.py +0 -0
  175. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_groups/beta_build_localizations_action_group.py +0 -0
  176. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_groups/beta_groups_action_group.py +0 -0
  177. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_groups/builds_action_group.py +0 -0
  178. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_groups/bundle_ids_action_group.py +0 -0
  179. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_groups/certificates_action_group.py +0 -0
  180. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_groups/devices_action_group.py +0 -0
  181. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_groups/profiles_action_group.py +0 -0
  182. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_groups/review_submission_items_actions_group.py +0 -0
  183. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/action_groups/review_submissions_actions_group.py +0 -0
  184. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/actions/__init__.py +0 -0
  185. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/actions/fetch_signing_files_action.py +0 -0
  186. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/actions/latest_build_number_actions.py +0 -0
  187. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/actions/publish_action.py +0 -0
  188. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/app_store_connect.py +0 -0
  189. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/arguments.py +0 -0
  190. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/errors.py +0 -0
  191. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/mixins/__init__.py +0 -0
  192. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/mixins/resource_manager_mixin.py +0 -0
  193. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/mixins/signing_file_saver_mixin.py +0 -0
  194. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/app_store_connect/resource_printer.py +0 -0
  195. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/codemagic_cli_tools.py +0 -0
  196. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/firebase_app_distribution/__init__.py +0 -0
  197. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/firebase_app_distribution/__main__.py +0 -0
  198. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/firebase_app_distribution/action_groups/__init__.py +0 -0
  199. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/firebase_app_distribution/action_groups/firebase_action_groups.py +0 -0
  200. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/firebase_app_distribution/action_groups/releases_action_group.py +0 -0
  201. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/firebase_app_distribution/actions/__init__.py +0 -0
  202. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/firebase_app_distribution/actions/get_latest_build_version_action.py +0 -0
  203. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/firebase_app_distribution/argument_types.py +0 -0
  204. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/firebase_app_distribution/arguments.py +0 -0
  205. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/firebase_app_distribution/errors.py +0 -0
  206. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/firebase_app_distribution/firebase_app_distribution.py +0 -0
  207. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/firebase_app_distribution/firebase_app_distribution_action.py +0 -0
  208. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/firebase_app_distribution/resource_printer.py +0 -0
  209. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/git_changelog.py +0 -0
  210. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/google_play/__init__.py +0 -0
  211. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/google_play/__main__.py +0 -0
  212. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/google_play/action_groups/__init__.py +0 -0
  213. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/google_play/action_groups/google_play_action_groups.py +0 -0
  214. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/google_play/action_groups/tracks_action_group.py +0 -0
  215. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/google_play/actions/__init__.py +0 -0
  216. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/google_play/actions/get_latest_build_number_action.py +0 -0
  217. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/google_play/argument_types.py +0 -0
  218. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/google_play/arguments.py +0 -0
  219. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/google_play/errors.py +0 -0
  220. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/google_play/google_play.py +0 -0
  221. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/google_play/google_play_base_action.py +0 -0
  222. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/keychain.py +0 -0
  223. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/tools/universal_apk_generator.py +0 -0
  224. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/utilities/__init__.py +0 -0
  225. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/utilities/auditing/__init__.py +0 -0
  226. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/utilities/auditing/base_auditor.py +0 -0
  227. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/utilities/auditing/exception_auditor.py +0 -0
  228. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/utilities/auditing/http_request_auditor.py +0 -0
  229. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/utilities/backwards_file_reader.py +0 -0
  230. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/utilities/case_conversion.py +0 -0
  231. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/utilities/decorators.py +0 -0
  232. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/utilities/levenshtein_distance.py +0 -0
  233. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/utilities/log.py +0 -0
  234. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/src/codemagic/utilities/versions.py +0 -0
  235. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/__init__.py +0 -0
  236. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/__init__.py +0 -0
  237. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/__init__.py +0 -0
  238. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/apps/__init__.py +0 -0
  239. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/apps/test_apps.py +0 -0
  240. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/builds/__init__.py +0 -0
  241. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/builds/test_builds.py +0 -0
  242. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/provisioning/__init__.py +0 -0
  243. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/provisioning/conftest.py +0 -0
  244. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/provisioning/test_bundle_id_capabilities.py +0 -0
  245. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/provisioning/test_bundle_ids.py +0 -0
  246. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/provisioning/test_devices.py +0 -0
  247. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/provisioning/test_profiles.py +0 -0
  248. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/provisioning/test_signing_certificates.py +0 -0
  249. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/resource_manager_test_base.py +0 -0
  250. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/test_api_client.py +0 -0
  251. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/test_api_session.py +0 -0
  252. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/test_json_web_token_manager.py +0 -0
  253. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/test_resource_manager.py +0 -0
  254. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/testflight/__init__.py +0 -0
  255. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/testflight/test_beta_groups.py +0 -0
  256. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/versioning/test_app_store_version_localizations.py +0 -0
  257. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/versioning/test_app_store_version_submissions.py +0 -0
  258. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/versioning/test_app_store_versions.py +0 -0
  259. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/versioning/test_beta_app_review_submissions.py +0 -0
  260. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/versioning/test_beta_build_localizations.py +0 -0
  261. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/versioning/test_pre_release_versions.py +0 -0
  262. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/versioning/test_review_submission_items.py +0 -0
  263. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/app_store_connect/versioning/test_review_submissions.py +0 -0
  264. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/__init__.py +0 -0
  265. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/conftest.py +0 -0
  266. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/enums/__init__.py +0 -0
  267. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/enums/test_capability_type.py +0 -0
  268. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/enums/test_certificate_type.py +0 -0
  269. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/enums/test_profile_type.py +0 -0
  270. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/mocks/app_store_version.json +0 -0
  271. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/mocks/build.json +0 -0
  272. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/mocks/bundle_id.json +0 -0
  273. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/mocks/bundle_id_capability.json +0 -0
  274. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/mocks/certificate.json +0 -0
  275. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/mocks/device.json +0 -0
  276. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/mocks/error_response.json +0 -0
  277. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/mocks/error_response_entity_state_invalid.json +0 -0
  278. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/mocks/error_response_with_links.json +0 -0
  279. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/mocks/mock_resource.json +0 -0
  280. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/mocks/pre_release_version.json +0 -0
  281. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/mocks/profile.json +0 -0
  282. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/test_app_store_version_resource.py +0 -0
  283. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/test_build_resource.py +0 -0
  284. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/test_bundle_id_capability_resource.py +0 -0
  285. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/test_bundle_id_resource.py +0 -0
  286. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/test_device_resource.py +0 -0
  287. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/test_error_response.py +0 -0
  288. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/test_pre_release_version_resource.py +0 -0
  289. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/test_profile_resource.py +0 -0
  290. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/test_resource.py +0 -0
  291. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/test_signing_certificate_resource.py +0 -0
  292. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/apple/resources/test_undefined_resource_fields.py +0 -0
  293. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/cli/__init__.py +0 -0
  294. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/cli/argument/__init__.py +0 -0
  295. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/cli/argument/common_argument_types/__init__.py +0 -0
  296. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/cli/argument/common_argument_types/test_bounded_number.py +0 -0
  297. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/cli/argument/common_argument_types/test_iso_8601_datetime.py +0 -0
  298. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/cli/argument/common_argument_types/test_maybe_dir.py +0 -0
  299. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/cli/argument/test_argument.py +0 -0
  300. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/cli/mocks/utf-8-sample.txt +0 -0
  301. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/cli/test_cli_process.py +0 -0
  302. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/cli/test_decorators.py +0 -0
  303. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/conftest.py +0 -0
  304. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/google/__init__.py +0 -0
  305. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/google/conftest.py +0 -0
  306. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/google/test_firebase_client.py +0 -0
  307. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/google/test_live_firebase_client.py +0 -0
  308. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/google_play/__init__.py +0 -0
  309. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/google_play/resources/__init__.py +0 -0
  310. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/google_play/resources/conftest.py +0 -0
  311. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/google_play/resources/mocks/edit.json +0 -0
  312. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/google_play/resources/mocks/track.json +0 -0
  313. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/google_play/resources/test_edit_resource.py +0 -0
  314. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/google_play/resources/test_resource_print.py +0 -0
  315. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/google_play/resources/test_track_resource.py +0 -0
  316. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/google_play/test_api_client.py +0 -0
  317. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/mixins/__init__.py +0 -0
  318. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/mixins/test_string_converter.py +0 -0
  319. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/mocks/certificate.asn1 +0 -0
  320. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/mocks/encrypted.pem +0 -0
  321. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/mocks/encrypted.pem.pub +0 -0
  322. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/mocks/unencrypted.pem +0 -0
  323. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/mocks/unencrypted.pem.pub +0 -0
  324. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/__init__.py +0 -0
  325. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/altool/__init__.py +0 -0
  326. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/altool/mocks/mock_failure_auth.txt +0 -0
  327. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/altool/mocks/mock_failure_other.txt +0 -0
  328. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/altool/mocks/mock_upload_success.json +0 -0
  329. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/altool/mocks/mock_validation_failure.json +0 -0
  330. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/altool/test_altool_result.py +0 -0
  331. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/altool/test_altool_retrying.py +0 -0
  332. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/conftest.py +0 -0
  333. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/enums/__init__.py +0 -0
  334. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/enums/test_resource_enum.py +0 -0
  335. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/junit/__init__.py +0 -0
  336. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/junit/mocks/testsuite.xml +0 -0
  337. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/junit/test_xml_generation.py +0 -0
  338. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/mocks/certificate-no-password.p12 +0 -0
  339. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/mocks/certificate.p12 +0 -0
  340. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/mocks/codemagic_io_wildcard_development.mobileprovision +0 -0
  341. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/mocks/export_options.plist +0 -0
  342. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/mocks/mock.ipa +0 -0
  343. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/mocks/mock.xcarchive/Products/Applications/Capybara App.app/Capybara App +0 -0
  344. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/mocks/mock_0_icloud_container_environments.plist +0 -0
  345. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/mocks/mock_1_icloud_container_environments.plist +0 -0
  346. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/mocks/mock_2_icloud_container_environments.plist +0 -0
  347. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/mocks/mock_openssh_private_key +0 -0
  348. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/mocks/mock_rsa_private_key +0 -0
  349. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/mocks/mock_xcode/Contents/version.plist +0 -0
  350. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/simulator/__init__.py +0 -0
  351. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/simulator/mocks/devices.json +0 -0
  352. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/simulator/mocks/simulator.json +0 -0
  353. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/simulator/test_runtime.py +0 -0
  354. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/simulator/test_simulator.py +0 -0
  355. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/test_certificate.py +0 -0
  356. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/test_certificate_attributes.py +0 -0
  357. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/test_code_sign_entitlements.py +0 -0
  358. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/test_private_key.py +0 -0
  359. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/test_provisioning_profile.py +0 -0
  360. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/test_table.py +0 -0
  361. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/test_xcode.py +0 -0
  362. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/__init__.py +0 -0
  363. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/conftest.py +0 -0
  364. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/mocks/0_1NtPgUPcB1A83X977l5Q91ElstUeVDnqAhumk_VJG8DIS4GA1sb8ElPPHZZGYEHmNvnHU1VVaPDCw1tI8n3uXg__.json +0 -0
  365. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/mocks/0_5rAUs3HknUI7DU8Jyc5RlFcosqCXTOV-qwOaOE1Mul_ppK8QCta-NSxxCdtVg6i12km4zTR5l0SjgzfHGUNxog__.json +0 -0
  366. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/mocks/0_97T9qQZ3dEI1oDS6NvYTPcFk_jUXFJ0NRwyd5FZ2S585JGMtlqbF28Hc85yeifgKEnNoInoW93Za9c5QJCspeQ__.json +0 -0
  367. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/mocks/0_DVcJZnHFaQQlzl8czovv7RuDRQIToEr5_3lLe-Mn1Sm6VreJ5xoXEFqBaWNv0XRmSg00NJ77XzQKgddhfkuk7w__.json +0 -0
  368. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/mocks/0_FZMbIp5VAUEiJv1wUUM-K78Dtmb4o-titbTusDJqRuarbS9OatzAykygXo4NUqEoR9sxCIoeu8VDioQmbba6mw__.json +0 -0
  369. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/mocks/0_Hj6SOUxY1APmxdQEA2HdqbA52GD3WJE571nqr_Z-w8vi_buxP-GUjNxCsGYQvnKnnwlyykwxY-KJmjqKYmPyXQ__.json +0 -0
  370. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/mocks/0_NnCmQ8rMqVyUBgL3ZDjfjJ9Vt1AMGeMzZPkDH30rGMYer0pFDpp4UDZlCEHRImO-48LdC_KdcbjP70IZA6zKUQ__.json +0 -0
  371. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/mocks/0_YK9aPHVT-grv_ZVooRT79GBO9n82BNogkuWVzFO6itJEtbtsRTQpK2-0ZDLot1JpCfPb26aZwEZjeb9G4GHiBQ__.json +0 -0
  372. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/mocks/0__H1_RrdBT9b-ZhkWCQiRKpHlwURmyWUudeOhj5UslLXhXl8mr9w5CGqdobi9A5wCVEIRMsO4yuFyzx2gMPr-_Q__.json +0 -0
  373. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/mocks/0_evvkuGf92MVrmIvhr07911LuRTiPBKDjIQ0q_7L-mPGGYkWVKMBPQ5pB5lbjoaOnvr0fpC9k003EunfwSdss2g__.json +0 -0
  374. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/mocks/actions_invocation_record.json +0 -0
  375. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/test_collector.py +0 -0
  376. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/test_converter.py +0 -0
  377. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/models/xctests/test_xcresult.py +0 -0
  378. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/shell_tools/__init__.py +0 -0
  379. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/shell_tools/keytool/__init__.py +0 -0
  380. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/shell_tools/keytool/conftest.py +0 -0
  381. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/shell_tools/keytool/mocks/android.ks +0 -0
  382. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/shell_tools/keytool/mocks/non-rfc-cert-keystore.jks +0 -0
  383. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/shell_tools/keytool/mocks/non-rfc-cert-keystore.p12 +0 -0
  384. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/shell_tools/keytool/mocks/rfc-cert-keystore.jks +0 -0
  385. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/shell_tools/keytool/mocks/rfc-cert-keystore.p12 +0 -0
  386. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/shell_tools/keytool/test_get_certificate.py +0 -0
  387. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/shell_tools/keytool/test_get_certificates.py +0 -0
  388. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/shell_tools/keytool/test_validate.py +0 -0
  389. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/tools/__init__.py +0 -0
  390. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/tools/app_store_connect/__init__.py +0 -0
  391. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/tools/app_store_connect/arguments/__init__.py +0 -0
  392. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/tools/app_store_connect/arguments/test_beta_build_localizations.py +0 -0
  393. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/tools/app_store_connect/conftest.py +0 -0
  394. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/tools/app_store_connect/mocks/AuthKeyMock.p8 +0 -0
  395. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/tools/app_store_connect/test_from_cli_args.py +0 -0
  396. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/tools/app_store_connect/test_publish_action.py +0 -0
  397. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/tools/mocks/firebase_releases.json +0 -0
  398. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/tools/mocks/google_play_tracks.json +0 -0
  399. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/tools/test_android_app_bundle.py +0 -0
  400. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/tools/test_firebase_app_distribution.py +0 -0
  401. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/tools/test_google_play.py +0 -0
  402. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/tools/test_keychain.py +0 -0
  403. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/tools/test_universal_apk_generator.py +0 -0
  404. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/utilities/__init__.py +0 -0
  405. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/utilities/decorators/__init__.py +0 -0
  406. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/utilities/decorators/test_deprecated.py +0 -0
  407. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/utilities/test_backwards_file_reader.py +0 -0
  408. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/utilities/test_case_conversion.py +0 -0
  409. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/utilities/test_levenshtein_distance.py +0 -0
  410. {codemagic_cli_tools-0.50.0 → codemagic_cli_tools-0.50.2}/tests/utilities/test_versions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: codemagic-cli-tools
3
- Version: 0.50.0
3
+ Version: 0.50.2
4
4
  Summary: CLI tools used in Codemagic builds
5
5
  Home-page: https://github.com/codemagic-ci-cd/cli-tools
6
6
  License: GPL-3.0-or-later
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "codemagic-cli-tools"
3
- version = "0.50.0"
3
+ version = "0.50.2"
4
4
  description = "CLI tools used in Codemagic builds"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -1,5 +1,5 @@
1
1
  __title__ = "codemagic-cli-tools"
2
2
  __description__ = "CLI tools used in Codemagic builds"
3
- __version__ = '0.50.0'
3
+ __version__ = '0.50.2'
4
4
  __url__ = "https://github.com/codemagic-ci-cd/cli-tools"
5
5
  __licence__ = "GNU General Public License v3.0"
@@ -1,5 +1,5 @@
1
1
  __title__ = "codemagic-cli-tools"
2
2
  __description__ = "CLI tools used in Codemagic builds"
3
- __version__ = "0.50.0.dev"
3
+ __version__ = "0.50.2.dev"
4
4
  __url__ = "https://github.com/codemagic-ci-cd/cli-tools"
5
5
  __licence__ = "GNU General Public License v3.0"
@@ -107,6 +107,12 @@ ExportOptionValue = Union[
107
107
 
108
108
  @dataclass
109
109
  class ExportOptions(StringConverterMixin):
110
+ """
111
+ Definition for Xcode export options. Available keys and their allowed types
112
+ can be seen from `xcodebuild -help` output under section
113
+ "Available keys for -exportOptionsPlist"
114
+ """
115
+
110
116
  compileBitcode: Optional[bool] = None
111
117
  destination: Optional[Destination] = None
112
118
  distributionBundleIdentifier: Optional[str] = None
@@ -114,8 +120,8 @@ class ExportOptions(StringConverterMixin):
114
120
  generateAppStoreInformation: Optional[bool] = None
115
121
  iCloudContainerEnvironment: Optional[str] = None
116
122
  installerSigningCertificate: Optional[str] = None
117
- manifest: Optional[Manifest] = None
118
123
  manageAppVersionAndBuildNumber: Optional[bool] = None
124
+ manifest: Optional[Manifest] = None
119
125
  method: Optional[ArchiveMethod] = None
120
126
  onDemandResourcesAssetPacksBaseURL: Optional[str] = None
121
127
  provisioningProfiles: Optional[List[ProvisioningProfileInfo]] = None
@@ -123,6 +129,7 @@ class ExportOptions(StringConverterMixin):
123
129
  signingStyle: Optional[SigningStyle] = None
124
130
  stripSwiftSymbols: Optional[bool] = None
125
131
  teamID: Optional[str] = None
132
+ testFlightInternalTestingOnly: Optional[bool] = None
126
133
  thinning: Optional[str] = None
127
134
  uploadBitcode: Optional[bool] = None
128
135
  uploadSymbols: Optional[bool] = None
@@ -132,8 +139,12 @@ class ExportOptions(StringConverterMixin):
132
139
  self.set_value(field_name, getattr(self, field_name))
133
140
 
134
141
  @classmethod
135
- def _get_field_type(cls, field_name: str) -> type:
136
- type_hint = get_type_hints(cls)[field_name]
142
+ def _get_field_type(cls, field_name: str) -> Optional[type]:
143
+ try:
144
+ type_hint = get_type_hints(cls)[field_name]
145
+ except KeyError:
146
+ # Type info is missing for unknown fields
147
+ return None
137
148
  if hasattr(type_hint, "__origin__") and type_hint.__origin__ is Union:
138
149
  # Optionals are unions of actual type and NoneType
139
150
  actual_type = type_hint.__args__[0]
@@ -183,7 +194,8 @@ class ExportOptions(StringConverterMixin):
183
194
 
184
195
  def set_value(self, field_name: str, value: ExportOptionValue):
185
196
  if field_name not in self.__dict__:
186
- raise ValueError(f"Invalid filed {field_name}")
197
+ logger = log.get_logger(self.__class__)
198
+ logger.warning(Colors.YELLOW(f'Warning: Using unknown export option "{field_name}"'))
187
199
 
188
200
  field_type = self._get_field_type(field_name)
189
201
  if value is None:
@@ -192,9 +204,12 @@ class ExportOptions(StringConverterMixin):
192
204
  self._set_manifest(value)
193
205
  elif field_name == "provisioningProfiles":
194
206
  self._set_provisioning_profiles(value)
195
- elif not isinstance(value, field_type):
196
- with ResourceEnumMeta.without_graceful_fallback():
197
- setattr(self, field_name, field_type(value))
207
+ elif field_type and not isinstance(value, field_type):
208
+ if issubclass(field_type, enum.Enum):
209
+ with ResourceEnumMeta.without_graceful_fallback():
210
+ setattr(self, field_name, field_type(value))
211
+ else:
212
+ raise ValueError(f"Invalid value for {field_name!r}")
198
213
  else:
199
214
  setattr(self, field_name, value)
200
215
 
@@ -213,7 +228,11 @@ class ExportOptions(StringConverterMixin):
213
228
  data = plistlib.load(fd) # type: ignore
214
229
  except plistlib.InvalidFileException:
215
230
  raise ValueError("Invalid plist")
216
- return ExportOptions(**data)
231
+
232
+ export_options = ExportOptions()
233
+ for key_name, value in data.items():
234
+ export_options.set_value(field_name=key_name, value=value)
235
+ return export_options
217
236
 
218
237
  @classmethod
219
238
  def from_profile_assignments(cls, profile_assignments: Sequence[ProvisioningProfileAssignment]) -> ExportOptions:
@@ -2,3 +2,4 @@ from .collector import XcResultCollector
2
2
  from .converter import XcResultConverter
3
3
  from .xcresult import ActionsInvocationRecord
4
4
  from .xcresulttool import XcResultTool
5
+ from .xcresulttool import XcResultToolError
@@ -13,12 +13,19 @@ from typing import Sequence
13
13
 
14
14
  from codemagic.cli import CommandArg
15
15
  from codemagic.mixins import RunningCliAppMixin
16
+ from codemagic.mixins import StringConverterMixin
16
17
 
17
18
  if TYPE_CHECKING:
18
19
  from codemagic.cli import CliApp
19
20
 
20
21
 
21
- class XcResultTool(RunningCliAppMixin):
22
+ class XcResultToolError(IOError):
23
+ def __init__(self, message: str, stderr: str):
24
+ super().__init__(message)
25
+ self.stderr = stderr
26
+
27
+
28
+ class XcResultTool(RunningCliAppMixin, StringConverterMixin):
22
29
  @classmethod
23
30
  def get_bundle(cls, xcresult: pathlib.Path) -> Dict[str, Any]:
24
31
  cmd_args: List[CommandArg] = [
@@ -66,8 +73,8 @@ class XcResultTool(RunningCliAppMixin):
66
73
  return cls._run_command_with_cli_app(cli_app, command_args)
67
74
  else:
68
75
  return subprocess.check_output(command_args)
69
- except subprocess.CalledProcessError:
70
- raise IOError(error_message)
76
+ except subprocess.CalledProcessError as cpe:
77
+ raise XcResultToolError(error_message, cls._str(cpe.stderr)) from cpe
71
78
 
72
79
  @classmethod
73
80
  def _run_command_with_cli_app(cls, cli_app: CliApp, command_args: Sequence[CommandArg]) -> bytes:
@@ -36,6 +36,7 @@ from codemagic.models.simulator import Runtime
36
36
  from codemagic.models.simulator import Simulator
37
37
  from codemagic.models.xctests import XcResultCollector
38
38
  from codemagic.models.xctests import XcResultConverter
39
+ from codemagic.models.xctests import XcResultToolError
39
40
 
40
41
  from ._xcode_project.arguments import CustomExportOptions
41
42
  from ._xcode_project.arguments import ExportIpaArgument
@@ -501,21 +502,25 @@ class XcodeProject(cli.CliApp, PathFinderMixin):
501
502
  if not xcresult_collector.get_collected_results():
502
503
  raise XcodeProjectException("Did not find any test results")
503
504
 
504
- test_suites, xcresult = self._get_test_suites(
505
- xcresult_collector,
506
- show_found_result=True,
507
- save_xcresult_dir=output_dir,
508
- )
509
-
510
- message = (
511
- f"Executed {test_suites.tests} tests with "
512
- f"{test_suites.failures} failures and "
513
- f"{test_suites.errors} errors in "
514
- f"{test_suites.time:.2f} seconds.\n"
515
- )
516
- self.echo(Colors.BLUE(message))
517
- TestSuitePrinter(self.echo).print_test_suites(test_suites)
518
- self._save_test_suite(xcresult, test_suites, output_dir, output_extension)
505
+ try:
506
+ test_suites, xcresult = self._get_test_suites(
507
+ xcresult_collector,
508
+ show_found_result=True,
509
+ save_xcresult_dir=output_dir,
510
+ )
511
+ except XcResultToolError as e:
512
+ test_suites = None
513
+ self.logger.error(Colors.RED(f"Parsing test results failed\n{e}\n{e.stderr}"))
514
+ else:
515
+ message = (
516
+ f"Executed {test_suites.tests} tests with "
517
+ f"{test_suites.failures} failures and "
518
+ f"{test_suites.errors} errors in "
519
+ f"{test_suites.time:.2f} seconds.\n"
520
+ )
521
+ self.echo(Colors.BLUE(message))
522
+ TestSuitePrinter(self.echo).print_test_suites(test_suites)
523
+ self._save_test_suite(xcresult, test_suites, output_dir, output_extension)
519
524
 
520
525
  if not graceful_exit:
521
526
  if testing_failed or (test_suites and test_suites.has_failed_tests()):
@@ -539,7 +544,12 @@ class XcodeProject(cli.CliApp, PathFinderMixin):
539
544
  if not xcresults:
540
545
  raise XcodeProjectException("Did not find any Xcode test results for given patterns")
541
546
 
542
- test_suites, xcresult = self._get_test_suites(xcresult_collector, show_found_result=True)
547
+ try:
548
+ test_suites, xcresult = self._get_test_suites(xcresult_collector, show_found_result=True)
549
+ except XcResultToolError as e:
550
+ self.logger.error(Colors.RED(f"{e}\n{e.stderr}"))
551
+ raise XcodeProjectException("Parsing test results failed") from e
552
+
543
553
  TestSuitePrinter(self.echo).print_test_suites(test_suites)
544
554
 
545
555
  @cli.action(
@@ -564,7 +574,12 @@ class XcodeProject(cli.CliApp, PathFinderMixin):
564
574
  if not xcresults:
565
575
  raise XcodeProjectException("Did not find any Xcode test results for given patterns")
566
576
 
567
- test_suites, xcresult = self._get_test_suites(xcresult_collector, show_found_result=True)
577
+ try:
578
+ test_suites, xcresult = self._get_test_suites(xcresult_collector, show_found_result=True)
579
+ except XcResultToolError as e:
580
+ self.logger.error(Colors.RED(f"{e}\n{e.stderr}"))
581
+ raise XcodeProjectException("Parsing test results failed") from e
582
+
568
583
  output_dir.mkdir(parents=True, exist_ok=True)
569
584
  self._save_test_suite(xcresult, test_suites, output_dir, output_extension)
570
585
 
@@ -1,10 +1,17 @@
1
+ import logging
2
+ import plistlib
3
+ import tempfile
1
4
  from tempfile import NamedTemporaryFile
2
5
  from tempfile import TemporaryDirectory
6
+ from unittest import mock
3
7
 
4
8
  import pytest
9
+ from codemagic.cli import Colors
5
10
  from codemagic.models import ExportOptions
6
11
  from codemagic.models.export_options import ProvisioningProfileInfo
7
12
 
13
+ mock_logger = mock.Mock(spec=logging.Logger)
14
+
8
15
 
9
16
  def test_export_options_initialize_from_path(export_options_list_path, export_options_dict):
10
17
  export_options = ExportOptions.from_path(export_options_list_path)
@@ -74,14 +81,55 @@ def test_export_options_set_valid_values(field_name, value, export_options_dict)
74
81
  ("manifest", 1),
75
82
  ("manifest", 3.4),
76
83
  ("manifest", {"invalid_key": 1}),
77
- ("invalid_field", -1),
78
84
  ("provisioningProfiles", [1]),
79
85
  ("provisioningProfiles", [ProvisioningProfileInfo("bundle_id", "name"), {"k": "v"}]),
80
86
  ("method", "invalid method"),
81
87
  ("destination", "invalid destination"),
88
+ ("teamID", -1),
89
+ ("teamID", True),
90
+ ("stripSwiftSymbols", "false"),
91
+ ("stripSwiftSymbols", "YES"),
82
92
  ],
83
93
  )
84
94
  def test_export_options_set_invalid_values(field_name, value, export_options_dict):
85
95
  export_options = ExportOptions(**export_options_dict)
86
96
  with pytest.raises(ValueError):
87
97
  export_options.set_value(field_name=field_name, value=value)
98
+
99
+
100
+ @mock.patch("codemagic.models.export_options.log.get_logger", new=mock.Mock(return_value=mock_logger))
101
+ def test_export_options_set_unknown_fields():
102
+ export_options = ExportOptions()
103
+ export_options.set_value(field_name="unknownExportOption", value=False)
104
+
105
+ expected_warning = 'Warning: Using unknown export option "unknownExportOption"'
106
+ mock_logger.warning.assert_called_once_with(Colors.YELLOW(expected_warning))
107
+ assert export_options.dict() == {"unknownExportOption": False}
108
+
109
+
110
+ @mock.patch("codemagic.models.export_options.log.get_logger", new=mock.Mock(return_value=mock_logger))
111
+ def test_export_options_unknown_fields_notify():
112
+ export_options = ExportOptions()
113
+ export_options.set_value(field_name="unknownExportOption", value=False)
114
+ export_options.notify("Title")
115
+
116
+ mock_logger.info.assert_has_calls(
117
+ [
118
+ mock.call("Title"),
119
+ mock.call(Colors.BLUE(" - Unknown Export Option: False")),
120
+ ],
121
+ )
122
+
123
+
124
+ def test_export_options_unknown_fields_from_path():
125
+ expected_export_options = {
126
+ "signingStyle": "manual", # Known field
127
+ "unknownExportOption": False, # Unknown field
128
+ }
129
+
130
+ with tempfile.NamedTemporaryFile(mode="wb") as tf:
131
+ tf.write(plistlib.dumps(expected_export_options))
132
+ tf.flush()
133
+ export_options = ExportOptions.from_path(tf.name)
134
+
135
+ assert export_options.dict() == expected_export_options