squad 1.93__tar.gz → 1.93.1__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (664) hide show
  1. {squad-1.93 → squad-1.93.1}/CHANGELOG.md +5 -0
  2. {squad-1.93/squad.egg-info → squad-1.93.1}/PKG-INFO +1 -1
  3. {squad-1.93 → squad-1.93.1}/doc/intro.rst +3 -1
  4. {squad-1.93 → squad-1.93.1}/squad/ci/models.py +1 -3
  5. {squad-1.93 → squad-1.93.1}/squad/core/models.py +6 -0
  6. {squad-1.93 → squad-1.93.1}/squad/core/tasks/__init__.py +2 -0
  7. {squad-1.93 → squad-1.93.1}/squad/plugins/lib/base_log_parser.py +20 -5
  8. {squad-1.93 → squad-1.93.1}/squad/plugins/linux_log_parser_build.py +4 -2
  9. squad-1.93.1/squad/version.py +1 -0
  10. {squad-1.93 → squad-1.93.1/squad.egg-info}/PKG-INFO +1 -1
  11. {squad-1.93 → squad-1.93.1}/squad.egg-info/SOURCES.txt +2 -0
  12. {squad-1.93 → squad-1.93.1}/test/ci/test_models.py +2 -2
  13. {squad-1.93 → squad-1.93.1}/test/core/test_tasks.py +22 -1
  14. squad-1.93.1/test/plugins/linux_log_parser/different-numbers-in-function-name-oops.log +53 -0
  15. squad-1.93.1/test/plugins/linux_log_parser/duplicated-oops.log +53 -0
  16. {squad-1.93 → squad-1.93.1}/test/plugins/test_linux_log_parser.py +25 -12
  17. {squad-1.93 → squad-1.93.1}/test/plugins/test_log_parser_base.py +40 -7
  18. squad-1.93/squad/version.py +0 -1
  19. {squad-1.93 → squad-1.93.1}/.ackrc +0 -0
  20. {squad-1.93 → squad-1.93.1}/.coveragerc +0 -0
  21. {squad-1.93 → squad-1.93.1}/.ctags +0 -0
  22. {squad-1.93 → squad-1.93.1}/.dockerignore +0 -0
  23. {squad-1.93 → squad-1.93.1}/.gitignore +0 -0
  24. {squad-1.93 → squad-1.93.1}/.mailmap +0 -0
  25. {squad-1.93 → squad-1.93.1}/.readthedocs.yml +0 -0
  26. {squad-1.93 → squad-1.93.1}/.reuse/dep5 +0 -0
  27. {squad-1.93 → squad-1.93.1}/COPYING +0 -0
  28. {squad-1.93 → squad-1.93.1}/COPYRIGHTS +0 -0
  29. {squad-1.93 → squad-1.93.1}/Dockerfile +0 -0
  30. {squad-1.93 → squad-1.93.1}/LICENSES/GPL-3.0-or-later.txt +0 -0
  31. {squad-1.93 → squad-1.93.1}/LICENSES/MIT.txt +0 -0
  32. {squad-1.93 → squad-1.93.1}/LICENSES/OFL-1.1.txt +0 -0
  33. {squad-1.93 → squad-1.93.1}/MANIFEST.in +0 -0
  34. {squad-1.93 → squad-1.93.1}/Procfile +0 -0
  35. {squad-1.93 → squad-1.93.1}/README.rst +0 -0
  36. {squad-1.93 → squad-1.93.1}/babel.cfg +0 -0
  37. {squad-1.93 → squad-1.93.1}/dev-docker +0 -0
  38. {squad-1.93 → squad-1.93.1}/doc/.gitignore +0 -0
  39. {squad-1.93 → squad-1.93.1}/doc/Makefile +0 -0
  40. {squad-1.93 → squad-1.93.1}/doc/api.rst +0 -0
  41. {squad-1.93 → squad-1.93.1}/doc/ci.rst +0 -0
  42. {squad-1.93 → squad-1.93.1}/doc/conf.py +0 -0
  43. {squad-1.93 → squad-1.93.1}/doc/hacking.rst +0 -0
  44. {squad-1.93 → squad-1.93.1}/doc/index.rst +0 -0
  45. {squad-1.93 → squad-1.93.1}/doc/install.rst +0 -0
  46. {squad-1.93 → squad-1.93.1}/doc/lava_usecase.rst +0 -0
  47. {squad-1.93 → squad-1.93.1}/doc/plugins.rst +0 -0
  48. {squad-1.93 → squad-1.93.1}/doc/quickstart.rst +0 -0
  49. {squad-1.93 → squad-1.93.1}/doc/translating.rst +0 -0
  50. {squad-1.93 → squad-1.93.1}/doc/tuxsuite_usecase.rst +0 -0
  51. {squad-1.93 → squad-1.93.1}/docker/db-dumped +0 -0
  52. {squad-1.93 → squad-1.93.1}/docker/db-to-be-restored +0 -0
  53. {squad-1.93 → squad-1.93.1}/docker/docker-compose.yml +0 -0
  54. {squad-1.93 → squad-1.93.1}/docker/extra_settings.py +0 -0
  55. {squad-1.93 → squad-1.93.1}/docker/init-db.sh +0 -0
  56. {squad-1.93 → squad-1.93.1}/docker/rabbitmq.config +0 -0
  57. {squad-1.93 → squad-1.93.1}/docker/squad-apache.conf +0 -0
  58. {squad-1.93 → squad-1.93.1}/docker-compose.yaml +0 -0
  59. {squad-1.93 → squad-1.93.1}/manage.py +0 -0
  60. {squad-1.93 → squad-1.93.1}/package-lock.json +0 -0
  61. {squad-1.93 → squad-1.93.1}/package.json +0 -0
  62. {squad-1.93 → squad-1.93.1}/pytest.ini +0 -0
  63. {squad-1.93 → squad-1.93.1}/requirements-dev.txt +0 -0
  64. {squad-1.93 → squad-1.93.1}/requirements.txt +0 -0
  65. {squad-1.93 → squad-1.93.1}/scripts/build +0 -0
  66. {squad-1.93 → squad-1.93.1}/scripts/check-ci +0 -0
  67. {squad-1.93 → squad-1.93.1}/scripts/check-ignore +0 -0
  68. {squad-1.93 → squad-1.93.1}/scripts/community_connector/main.js +0 -0
  69. {squad-1.93 → squad-1.93.1}/scripts/community_connector/manifest.json +0 -0
  70. {squad-1.93 → squad-1.93.1}/scripts/dogfood +0 -0
  71. {squad-1.93 → squad-1.93.1}/scripts/get-metrics +0 -0
  72. {squad-1.93 → squad-1.93.1}/scripts/get-tests +0 -0
  73. {squad-1.93 → squad-1.93.1}/scripts/git-build +0 -0
  74. {squad-1.93 → squad-1.93.1}/scripts/pytest +0 -0
  75. {squad-1.93 → squad-1.93.1}/scripts/rabbitmq-server +0 -0
  76. {squad-1.93 → squad-1.93.1}/scripts/release +0 -0
  77. {squad-1.93 → squad-1.93.1}/scripts/release-docker +0 -0
  78. {squad-1.93 → squad-1.93.1}/scripts/squad-config +0 -0
  79. {squad-1.93 → squad-1.93.1}/scripts/test-ci +0 -0
  80. {squad-1.93 → squad-1.93.1}/scripts/test-docker +0 -0
  81. {squad-1.93 → squad-1.93.1}/scripts/testdata/gen-ci-jobs +0 -0
  82. {squad-1.93 → squad-1.93.1}/scripts/testdata/gen-metrics +0 -0
  83. {squad-1.93 → squad-1.93.1}/scripts/testdata/gen-test-data +0 -0
  84. {squad-1.93 → squad-1.93.1}/scripts/testdata/gen-tests +0 -0
  85. {squad-1.93 → squad-1.93.1}/scripts/testdata/setup-dev +0 -0
  86. {squad-1.93 → squad-1.93.1}/scripts/testdata/submit-ci-jobs +0 -0
  87. {squad-1.93 → squad-1.93.1}/scripts/testdata/submit-test-data +0 -0
  88. {squad-1.93 → squad-1.93.1}/scripts/translate +0 -0
  89. {squad-1.93 → squad-1.93.1}/scripts/travis-lava +0 -0
  90. {squad-1.93 → squad-1.93.1}/scripts/update-translation-files +0 -0
  91. {squad-1.93 → squad-1.93.1}/setup.cfg +0 -0
  92. {squad-1.93 → squad-1.93.1}/setup.py +0 -0
  93. {squad-1.93 → squad-1.93.1}/squad/__init__.py +0 -0
  94. {squad-1.93 → squad-1.93.1}/squad/admin.py +0 -0
  95. {squad-1.93 → squad-1.93.1}/squad/api/__init__.py +0 -0
  96. {squad-1.93 → squad-1.93.1}/squad/api/apps.py +0 -0
  97. {squad-1.93 → squad-1.93.1}/squad/api/ci.py +0 -0
  98. {squad-1.93 → squad-1.93.1}/squad/api/data.py +0 -0
  99. {squad-1.93 → squad-1.93.1}/squad/api/filters.py +0 -0
  100. {squad-1.93 → squad-1.93.1}/squad/api/prometheus.py +0 -0
  101. {squad-1.93 → squad-1.93.1}/squad/api/rest.py +0 -0
  102. {squad-1.93 → squad-1.93.1}/squad/api/urls.py +0 -0
  103. {squad-1.93 → squad-1.93.1}/squad/api/utils.py +0 -0
  104. {squad-1.93 → squad-1.93.1}/squad/api/views.py +0 -0
  105. {squad-1.93 → squad-1.93.1}/squad/celery.py +0 -0
  106. {squad-1.93 → squad-1.93.1}/squad/ci/__init__.py +0 -0
  107. {squad-1.93 → squad-1.93.1}/squad/ci/admin.py +0 -0
  108. {squad-1.93 → squad-1.93.1}/squad/ci/apps.py +0 -0
  109. {squad-1.93 → squad-1.93.1}/squad/ci/backend/__init__.py +0 -0
  110. {squad-1.93 → squad-1.93.1}/squad/ci/backend/fake.py +0 -0
  111. {squad-1.93 → squad-1.93.1}/squad/ci/backend/lava.py +0 -0
  112. {squad-1.93 → squad-1.93.1}/squad/ci/backend/null.py +0 -0
  113. {squad-1.93 → squad-1.93.1}/squad/ci/backend/tuxsuite.py +0 -0
  114. {squad-1.93 → squad-1.93.1}/squad/ci/exceptions.py +0 -0
  115. {squad-1.93 → squad-1.93.1}/squad/ci/management/__init__.py +0 -0
  116. {squad-1.93 → squad-1.93.1}/squad/ci/management/commands/__init__.py +0 -0
  117. {squad-1.93 → squad-1.93.1}/squad/ci/management/commands/create_tuxsuite_boot_tests.py +0 -0
  118. {squad-1.93 → squad-1.93.1}/squad/ci/management/commands/listen.py +0 -0
  119. {squad-1.93 → squad-1.93.1}/squad/ci/management/commands/testfetch.py +0 -0
  120. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0001_initial.py +0 -0
  121. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0002_auto_20170406_1252.py +0 -0
  122. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0003_backend_name.py +0 -0
  123. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0004_testjob_failure.py +0 -0
  124. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0005_remove_listener_data.py +0 -0
  125. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0006_simplify_backend_loading.py +0 -0
  126. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0007_auto_20170517_1736.py +0 -0
  127. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0008_testjob_testrun.py +0 -0
  128. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0009_slug_pattern.py +0 -0
  129. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0010_testjob_can_resubmit.py +0 -0
  130. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0011_testjob_resubmitted_count.py +0 -0
  131. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0012_testjob_build.py +0 -0
  132. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0013_testjob_name.py +0 -0
  133. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0014_testjob_target_build.py +0 -0
  134. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0015_testjob_populate_target_build.py +0 -0
  135. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0016_backend_max_fetch_attempts.py +0 -0
  136. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0017_testjob_fetch_attempts.py +0 -0
  137. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0018_testjob_dates.py +0 -0
  138. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0019_add_fake_backend.py +0 -0
  139. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0020_backend_settings_field.py +0 -0
  140. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0021_testjob_parent_job.py +0 -0
  141. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0022_backend_poll_enabled.py +0 -0
  142. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0023_remove_testjob_build.py +0 -0
  143. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0024_fix_testjob_environment_validation.py +0 -0
  144. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0025_backend_listen_enabled.py +0 -0
  145. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0026_job_start_end_time.py +0 -0
  146. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0027_add_tuxsuite_implementation_type.py +0 -0
  147. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0028_create_testjob_indexes.py +0 -0
  148. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0029_create_testjob_results_input.py +0 -0
  149. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0030_testjob_subtasks_count.py +0 -0
  150. {squad-1.93 → squad-1.93.1}/squad/ci/migrations/__init__.py +0 -0
  151. {squad-1.93 → squad-1.93.1}/squad/ci/tasks.py +0 -0
  152. {squad-1.93 → squad-1.93.1}/squad/ci/templates/squad/ci/testjob_resubmit.html.jinja2 +0 -0
  153. {squad-1.93 → squad-1.93.1}/squad/ci/templates/squad/ci/testjob_resubmit.txt.jinja2 +0 -0
  154. {squad-1.93 → squad-1.93.1}/squad/ci/templatetags/__init__.py +0 -0
  155. {squad-1.93 → squad-1.93.1}/squad/ci/templatetags/filter_jobs.py +0 -0
  156. {squad-1.93 → squad-1.93.1}/squad/ci/utils.py +0 -0
  157. {squad-1.93 → squad-1.93.1}/squad/compat.py +0 -0
  158. {squad-1.93 → squad-1.93.1}/squad/container_settings.py +0 -0
  159. {squad-1.93 → squad-1.93.1}/squad/core/__init__.py +0 -0
  160. {squad-1.93 → squad-1.93.1}/squad/core/admin.py +0 -0
  161. {squad-1.93 → squad-1.93.1}/squad/core/apps.py +0 -0
  162. {squad-1.93 → squad-1.93.1}/squad/core/callback.py +0 -0
  163. {squad-1.93 → squad-1.93.1}/squad/core/comparison.py +0 -0
  164. {squad-1.93 → squad-1.93.1}/squad/core/data.py +0 -0
  165. {squad-1.93 → squad-1.93.1}/squad/core/failures.py +0 -0
  166. {squad-1.93 → squad-1.93.1}/squad/core/history.py +0 -0
  167. {squad-1.93 → squad-1.93.1}/squad/core/locale/django.pot +0 -0
  168. {squad-1.93 → squad-1.93.1}/squad/core/locale/es_MX/LC_MESSAGES/django.po +0 -0
  169. {squad-1.93 → squad-1.93.1}/squad/core/locale/pl/LC_MESSAGES/django.po +0 -0
  170. {squad-1.93 → squad-1.93.1}/squad/core/locale/pt/LC_MESSAGES/django.po +0 -0
  171. {squad-1.93 → squad-1.93.1}/squad/core/locale/pt_BR/LC_MESSAGES/django.po +0 -0
  172. {squad-1.93 → squad-1.93.1}/squad/core/management/__init__.py +0 -0
  173. {squad-1.93 → squad-1.93.1}/squad/core/management/commands/__init__.py +0 -0
  174. {squad-1.93 → squad-1.93.1}/squad/core/management/commands/compute_build_summaries.py +0 -0
  175. {squad-1.93 → squad-1.93.1}/squad/core/management/commands/compute_project_statuses.py +0 -0
  176. {squad-1.93 → squad-1.93.1}/squad/core/management/commands/fill_test_metadata.py +0 -0
  177. {squad-1.93 → squad-1.93.1}/squad/core/management/commands/fix_squadplugin_data.py +0 -0
  178. {squad-1.93 → squad-1.93.1}/squad/core/management/commands/import_data.py +0 -0
  179. {squad-1.93 → squad-1.93.1}/squad/core/management/commands/import_data.rst +0 -0
  180. {squad-1.93 → squad-1.93.1}/squad/core/management/commands/migrate_test_runs.py +0 -0
  181. {squad-1.93 → squad-1.93.1}/squad/core/management/commands/populate_metric_build_and_environment.py +0 -0
  182. {squad-1.93 → squad-1.93.1}/squad/core/management/commands/populate_test_build_and_environment.py +0 -0
  183. {squad-1.93 → squad-1.93.1}/squad/core/management/commands/prepdump.py +0 -0
  184. {squad-1.93 → squad-1.93.1}/squad/core/management/commands/run_log_parser.py +0 -0
  185. {squad-1.93 → squad-1.93.1}/squad/core/management/commands/send-email.py +0 -0
  186. {squad-1.93 → squad-1.93.1}/squad/core/management/commands/update_project_statuses.py +0 -0
  187. {squad-1.93 → squad-1.93.1}/squad/core/management/commands/users.py +0 -0
  188. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0001_initial.py +0 -0
  189. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0002_auto_20160525_1403.py +0 -0
  190. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0003_testrun_log_file.py +0 -0
  191. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0004_group_user_groups.py +0 -0
  192. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0005_token.py +0 -0
  193. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0006_auto_20160826_2242.py +0 -0
  194. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0007_testrun_data_processed.py +0 -0
  195. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0008_status.py +0 -0
  196. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0009_testrun_status_recorded.py +0 -0
  197. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0010_testrun_datetime.py +0 -0
  198. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0011_testrun_metadata_fields.py +0 -0
  199. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0012_build_datetime.py +0 -0
  200. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0013_testrun_resubmit_url.py +0 -0
  201. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0014_testrun_metadata_file.py +0 -0
  202. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0015_attachment.py +0 -0
  203. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0016_project_is_public.py +0 -0
  204. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0017_slug_validator.py +0 -0
  205. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0018_build_name.py +0 -0
  206. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0019_build_version.py +0 -0
  207. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0020_build_ordering.py +0 -0
  208. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0021_global_tokens.py +0 -0
  209. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0022_projectstatus.py +0 -0
  210. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0023_subscription.py +0 -0
  211. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0024_project_build_completion_threshold.py +0 -0
  212. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0025_unique_testrun_job_id.py +0 -0
  213. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0026_testrun_result_accept_null.py +0 -0
  214. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0027_project_notification_strategy.py +0 -0
  215. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0028_suite_and_test_name_length.py +0 -0
  216. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0029_subscription_email_formats.py +0 -0
  217. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0030_remove_project_build_completion_threshold.py +0 -0
  218. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0031_environment_expected_test_runs.py +0 -0
  219. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0032_testrun_completed.py +0 -0
  220. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0033_drop_debversion.py +0 -0
  221. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0034_prepare_to_remove_build_name.py +0 -0
  222. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0035_remove_build_name.py +0 -0
  223. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0036_status_tests_skip.py +0 -0
  224. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0037_project_status_test_summary_fields.py +0 -0
  225. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0038_populate_project_status_cache.py +0 -0
  226. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0039_orderings.py +0 -0
  227. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0040_remove_subscription_html.py +0 -0
  228. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0041_projectstatus_notified.py +0 -0
  229. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0042_set_projectstatus_notified.py +0 -0
  230. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0043_project_status_build.py +0 -0
  231. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0044_project_html_mail.py +0 -0
  232. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0045_adminsubscription.py +0 -0
  233. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0046_projectstatus_last_updated.py +0 -0
  234. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0047_populate_projectstatus_last_updated.py +0 -0
  235. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0048_moderate_notifications.py +0 -0
  236. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0049_projectstatus_plural.py +0 -0
  237. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0050_projectstatus_finished.py +0 -0
  238. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0051_build_status.py +0 -0
  239. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0052_recreate_projectstatus_data.py +0 -0
  240. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0053_remove_projectstatus_previous.py +0 -0
  241. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0054_custom_email_template.py +0 -0
  242. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0055_emailtemplate_subject.py +0 -0
  243. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0056_project_description.py +0 -0
  244. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0057_projectstatus_has_metrics.py +0 -0
  245. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0058_populate_projectstatus_has_metrics.py +0 -0
  246. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0059_project_important_metadata_keys.py +0 -0
  247. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0060_test_log.py +0 -0
  248. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0061_project_enabled_plugins_list.py +0 -0
  249. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0062_project_allow_empty_enabled_plugin_list.py +0 -0
  250. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0063_project_wait_before_notification.py +0 -0
  251. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0064_project_notification_timeout.py +0 -0
  252. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0065_projectstatus_notified_on_timeout.py +0 -0
  253. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0066_environment_description.py +0 -0
  254. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0067_accept_blank_suite_name.py +0 -0
  255. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0068_suite_version.py +0 -0
  256. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0069_suite_metadata.py +0 -0
  257. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0070_create_suite_test_and_metric_metadata.py +0 -0
  258. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0071_migrate_old_tokens.py +0 -0
  259. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0072_group_description.py +0 -0
  260. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0073_auto_20180420_1643.py +0 -0
  261. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0074_add_indexes.py +0 -0
  262. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0075_update_project_enabled_plugin_list.py +0 -0
  263. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0076_patch_builds.py +0 -0
  264. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0077_knownissue.py +0 -0
  265. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0078_cache_test_run_counts.py +0 -0
  266. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0079_init_cache_test_run_counts.py +0 -0
  267. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0080_auto_20180810_0047.py +0 -0
  268. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0081_status_has_metrics.py +0 -0
  269. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0082_populate_status_has_metrics.py +0 -0
  270. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0083_rename_knownissue_environments.py +0 -0
  271. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0084_projectstatus_regressions_fixes.py +0 -0
  272. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0085_projectstatus_defaults.py +0 -0
  273. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0086_xfail.py +0 -0
  274. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0087_test_known_issues.py +0 -0
  275. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0088_user_subscriptions.py +0 -0
  276. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0089_test_has_known_issues.py +0 -0
  277. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0090_populate_test_has_known_issues.py +0 -0
  278. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0091_notification_delivery_remove_unique_status.py +0 -0
  279. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0092_annotation.py +0 -0
  280. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0093_historicalemailtemplate.py +0 -0
  281. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0094_populatehistoricalemailtemplate.py +0 -0
  282. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0095_project_data_retention_days.py +0 -0
  283. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0096_build_keep_data.py +0 -0
  284. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0097_build_placeholder.py +0 -0
  285. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0098_blank_annotation.py +0 -0
  286. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0099_metricthreshold.py +0 -0
  287. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0100_metric_is_outlier.py +0 -0
  288. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0101_project_project_settings.py +0 -0
  289. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0102_projectstatus_null_metric_summary.py +0 -0
  290. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0103_populate_project_status.py +0 -0
  291. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0104_delayedreport.py +0 -0
  292. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0105_delayed_report_error_message.py +0 -0
  293. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0106_delayedreport_output_subject.py +0 -0
  294. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0107_move_notification_strategy.py +0 -0
  295. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0108_add_email_template_validator.py +0 -0
  296. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0109_group_member.py +0 -0
  297. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0110_move_users_from_django_groups_to_squad_groups.py +0 -0
  298. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0111_remove_group_user_groups.py +0 -0
  299. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0112_user_namespaces.py +0 -0
  300. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0113_group_project_blank_name_and_description.py +0 -0
  301. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0114_project_enabled_plugin_list_can_be_blank.py +0 -0
  302. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0115_fix_slug_validation.py +0 -0
  303. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0116_make_group_membership_unique.py +0 -0
  304. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0117_drop_obsolete_token_model.py +0 -0
  305. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0118_project_is_archived.py +0 -0
  306. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0119_i18n.py +0 -0
  307. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0120_buildsummary.py +0 -0
  308. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0121_add_password_patchsource.py +0 -0
  309. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0122_fix_patchsource_url_and_token.py +0 -0
  310. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0123_django_upgrade_missing_migrations.py +0 -0
  311. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0124_set_default_expected_test_runs_to_zero.py +0 -0
  312. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0125_fix_missing_status_has_metrics_for_testruns.py +0 -0
  313. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0126_metricthreshold_environment.py +0 -0
  314. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0127_metric_thresholds_migrate_data.py +0 -0
  315. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0128_metric_thresholds_remove_proj_col.py +0 -0
  316. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0129_projectstatus_nullable_notified_on_timeout.py +0 -0
  317. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0130_project_status_baseline_next.py +0 -0
  318. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0131_create_squad_auth_group_and_add_users.py +0 -0
  319. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0132_attachment_mimetype.py +0 -0
  320. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0133_append_project_permissions_to_squad_auth_group.py +0 -0
  321. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0134_longer_metric_name.py +0 -0
  322. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0135_add_privileged_access_level.py +0 -0
  323. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0136_migrate_submitters_to_privileged.py +0 -0
  324. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0137_patchsource_token_null.py +0 -0
  325. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0138_metric_unit.py +0 -0
  326. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0139_nullable_test_name.py +0 -0
  327. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0140_increase_gerrit_password_length.py +0 -0
  328. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0141_remove_test_name.py +0 -0
  329. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0142_add_testrun_file_storage.py +0 -0
  330. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0143_attachment_storage.py +0 -0
  331. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0144_attachment_data_null.py +0 -0
  332. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0145_pluginscratch.py +0 -0
  333. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0146_deprecate_testrun_and_attachment_data_fields.py +0 -0
  334. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0147_add_build_and_environment_to_test.py +0 -0
  335. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0148_remove_legacy_storage_fields.py +0 -0
  336. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0149_build_patch_url.py +0 -0
  337. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0150_add_new_notification_strategy.py +0 -0
  338. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0151_callback.py +0 -0
  339. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0152_add_build_patch_notified.py +0 -0
  340. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0153_callback_make_response_content_blob.py +0 -0
  341. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0154_project_add_force_finishing_builds_field.py +0 -0
  342. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0155_add_build_and_environment_to_metric.py +0 -0
  343. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0156_nullable_metric_name.py +0 -0
  344. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0157_remove_metric_name.py +0 -0
  345. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0158_add_metric_comparison_to_projectstatus.py +0 -0
  346. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0159_nullable_metricthreshold_value.py +0 -0
  347. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0160_add_project_to_metricthreshold.py +0 -0
  348. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0161_add_metricthreshold_perm_to_squad_group.py +0 -0
  349. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0162_project_add_build_confidence_settings.py +0 -0
  350. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0163_hirtoricalemailtemplate_update.py +0 -0
  351. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0164_django_update.py +0 -0
  352. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0165_buildsummary_uniqueness.py +0 -0
  353. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0166_build_is_release.py +0 -0
  354. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0167_add_project_datetime.py +0 -0
  355. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0168_add_group_settings.py +0 -0
  356. {squad-1.93 → squad-1.93.1}/squad/core/migrations/0169_userpreferences.py +0 -0
  357. {squad-1.93 → squad-1.93.1}/squad/core/migrations/__init__.py +0 -0
  358. {squad-1.93 → squad-1.93.1}/squad/core/notification.py +0 -0
  359. {squad-1.93 → squad-1.93.1}/squad/core/plugins.py +0 -0
  360. {squad-1.93 → squad-1.93.1}/squad/core/queries.py +0 -0
  361. {squad-1.93 → squad-1.93.1}/squad/core/statistics.py +0 -0
  362. {squad-1.93 → squad-1.93.1}/squad/core/tasks/exceptions.py +0 -0
  363. {squad-1.93 → squad-1.93.1}/squad/core/tasks/notification.py +0 -0
  364. {squad-1.93 → squad-1.93.1}/squad/core/templates/squad/notification/base.jinja2 +0 -0
  365. {squad-1.93 → squad-1.93.1}/squad/core/templates/squad/notification/diff.html.jinja2 +0 -0
  366. {squad-1.93 → squad-1.93.1}/squad/core/templates/squad/notification/diff.txt.jinja2 +0 -0
  367. {squad-1.93 → squad-1.93.1}/squad/core/templates/squad/notification/failed_test_jobs.html.jinja2 +0 -0
  368. {squad-1.93 → squad-1.93.1}/squad/core/templates/squad/notification/failed_test_jobs.txt.jinja2 +0 -0
  369. {squad-1.93 → squad-1.93.1}/squad/core/templates/squad/notification/moderation.html.jinja2 +0 -0
  370. {squad-1.93 → squad-1.93.1}/squad/core/templates/squad/notification/moderation.txt.jinja2 +0 -0
  371. {squad-1.93 → squad-1.93.1}/squad/core/templatetags/__init__.py +0 -0
  372. {squad-1.93 → squad-1.93.1}/squad/core/templatetags/squad_notification.py +0 -0
  373. {squad-1.93 → squad-1.93.1}/squad/core/utils.py +0 -0
  374. {squad-1.93 → squad-1.93.1}/squad/frontend/__init__.py +0 -0
  375. {squad-1.93 → squad-1.93.1}/squad/frontend/__main__.py +0 -0
  376. {squad-1.93 → squad-1.93.1}/squad/frontend/admin.py +0 -0
  377. {squad-1.93 → squad-1.93.1}/squad/frontend/apps.py +0 -0
  378. {squad-1.93 → squad-1.93.1}/squad/frontend/badges.py +0 -0
  379. {squad-1.93 → squad-1.93.1}/squad/frontend/build_settings.py +0 -0
  380. {squad-1.93 → squad-1.93.1}/squad/frontend/ci.py +0 -0
  381. {squad-1.93 → squad-1.93.1}/squad/frontend/comparison.py +0 -0
  382. {squad-1.93 → squad-1.93.1}/squad/frontend/extract.py +0 -0
  383. {squad-1.93 → squad-1.93.1}/squad/frontend/forms.py +0 -0
  384. {squad-1.93 → squad-1.93.1}/squad/frontend/group_settings.py +0 -0
  385. {squad-1.93 → squad-1.93.1}/squad/frontend/locale/django.pot +0 -0
  386. {squad-1.93 → squad-1.93.1}/squad/frontend/locale/pl/LC_MESSAGES/django.po +0 -0
  387. {squad-1.93 → squad-1.93.1}/squad/frontend/locale/pt/LC_MESSAGES/django.po +0 -0
  388. {squad-1.93 → squad-1.93.1}/squad/frontend/locale/pt_BR/LC_MESSAGES/django.po +0 -0
  389. {squad-1.93 → squad-1.93.1}/squad/frontend/management/__init__.py +0 -0
  390. {squad-1.93 → squad-1.93.1}/squad/frontend/management/commands/__init__.py +0 -0
  391. {squad-1.93 → squad-1.93.1}/squad/frontend/management/commands/get_token.py +0 -0
  392. {squad-1.93 → squad-1.93.1}/squad/frontend/metrics.py +0 -0
  393. {squad-1.93 → squad-1.93.1}/squad/frontend/project_settings.py +0 -0
  394. {squad-1.93 → squad-1.93.1}/squad/frontend/queries.py +0 -0
  395. {squad-1.93 → squad-1.93.1}/squad/frontend/setup.py +0 -0
  396. {squad-1.93 → squad-1.93.1}/squad/frontend/static/compare.css +0 -0
  397. {squad-1.93 → squad-1.93.1}/squad/frontend/static/download +0 -0
  398. {squad-1.93 → squad-1.93.1}/squad/frontend/static/download.conf +0 -0
  399. {squad-1.93 → squad-1.93.1}/squad/frontend/static/favicon.ico +0 -0
  400. {squad-1.93 → squad-1.93.1}/squad/frontend/static/main.css +0 -0
  401. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/attach_select2.js +0 -0
  402. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/build.js +0 -0
  403. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/build_compare.js +0 -0
  404. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/build_list.js +0 -0
  405. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/charts.js +0 -0
  406. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/common.js +0 -0
  407. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/compare.js +0 -0
  408. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/config.js +0 -0
  409. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/annotation.js +0 -0
  410. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/build_compare.js +0 -0
  411. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/build_list_compare.js +0 -0
  412. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/build_release.js +0 -0
  413. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/cancel.js +0 -0
  414. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/charts.js +0 -0
  415. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/compare.js +0 -0
  416. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/fetch.js +0 -0
  417. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/filter.js +0 -0
  418. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/metricThreshold.js +0 -0
  419. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/project_compare.js +0 -0
  420. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/resubmit.js +0 -0
  421. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/testjobs_progress.js +0 -0
  422. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/metric.threshold.js +0 -0
  423. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/project_compare.js +0 -0
  424. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/showHide.js +0 -0
  425. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/table.js +0 -0
  426. {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad_sign.svg +0 -0
  427. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/401.jinja2 +0 -0
  428. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/404.jinja2 +0 -0
  429. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/django/rest_framework/api.html +0 -0
  430. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/django/squad/_user_menu.html +0 -0
  431. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_builds_table.jinja2 +0 -0
  432. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_env_suite_data.jinja2 +0 -0
  433. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_metadata.jinja2 +0 -0
  434. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_pagination.jinja2 +0 -0
  435. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_permissions.jinja2 +0 -0
  436. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_project_list.jinja2 +0 -0
  437. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_regressions_and_fixes.jinja2 +0 -0
  438. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_results_table.jinja2 +0 -0
  439. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_results_transitions_filter.jinja2 +0 -0
  440. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_subscribe.jinja2 +0 -0
  441. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_test_results_envbox.jinja2 +0 -0
  442. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_test_results_suitebox.jinja2 +0 -0
  443. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_test_results_summary.jinja2 +0 -0
  444. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_test_results_table.jinja2 +0 -0
  445. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_test_run_metric.jinja2 +0 -0
  446. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_test_run_test.jinja2 +0 -0
  447. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_unfinished_build.jinja2 +0 -0
  448. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_user_menu.jinja2 +0 -0
  449. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/base.jinja2 +0 -0
  450. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/build-nav.jinja2 +0 -0
  451. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/build.jinja2 +0 -0
  452. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/build_callbacks.jinja2 +0 -0
  453. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/build_metadata.jinja2 +0 -0
  454. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/build_metrics.jinja2 +0 -0
  455. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/build_settings.jinja2 +0 -0
  456. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/builds.jinja2 +0 -0
  457. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/compare.jinja2 +0 -0
  458. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/compare_builds.jinja2 +0 -0
  459. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/compare_projects.jinja2 +0 -0
  460. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group-nav.jinja2 +0 -0
  461. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group.jinja2 +0 -0
  462. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group_settings/advanced.jinja2 +0 -0
  463. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group_settings/base.jinja2 +0 -0
  464. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group_settings/delete.jinja2 +0 -0
  465. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group_settings/index.jinja2 +0 -0
  466. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group_settings/members.jinja2 +0 -0
  467. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group_settings/new_group.jinja2 +0 -0
  468. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group_settings/new_project.jinja2 +0 -0
  469. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/index.jinja2 +0 -0
  470. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/knownissues.jinja2 +0 -0
  471. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/login.jinja2 +0 -0
  472. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/metrics.jinja2 +0 -0
  473. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project-nav.jinja2 +0 -0
  474. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project.jinja2 +0 -0
  475. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/_threshold_table.jinja2 +0 -0
  476. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/advanced.jinja2 +0 -0
  477. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/base.jinja2 +0 -0
  478. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/build_confidence.jinja2 +0 -0
  479. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/delete.jinja2 +0 -0
  480. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/environments.jinja2 +0 -0
  481. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/index.jinja2 +0 -0
  482. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/thresholds.jinja2 +0 -0
  483. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/test_history.jinja2 +0 -0
  484. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/test_run.jinja2 +0 -0
  485. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/test_run_suite_metrics.jinja2 +0 -0
  486. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/test_run_suite_test_details.jinja2 +0 -0
  487. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/test_run_suite_tests.jinja2 +0 -0
  488. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/testjob.jinja2 +0 -0
  489. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/testjobs.jinja2 +0 -0
  490. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/testjobs_progress.jinja2 +0 -0
  491. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/tests-details-nav.jinja2 +0 -0
  492. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/tests.jinja2 +0 -0
  493. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/user_settings/api_token.jinja2 +0 -0
  494. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/user_settings/base.jinja2 +0 -0
  495. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/user_settings/profile.jinja2 +0 -0
  496. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/user_settings/projects.jinja2 +0 -0
  497. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/user_settings/subscriptions.jinja2 +0 -0
  498. {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/user_settings/user_preferences.jinja2 +0 -0
  499. {squad-1.93 → squad-1.93.1}/squad/frontend/templatetags/__init__.py +0 -0
  500. {squad-1.93 → squad-1.93.1}/squad/frontend/templatetags/squad.py +0 -0
  501. {squad-1.93 → squad-1.93.1}/squad/frontend/tests.py +0 -0
  502. {squad-1.93 → squad-1.93.1}/squad/frontend/urls.py +0 -0
  503. {squad-1.93 → squad-1.93.1}/squad/frontend/user_settings.py +0 -0
  504. {squad-1.93 → squad-1.93.1}/squad/frontend/utils.py +0 -0
  505. {squad-1.93 → squad-1.93.1}/squad/frontend/views.py +0 -0
  506. {squad-1.93 → squad-1.93.1}/squad/http.py +0 -0
  507. {squad-1.93 → squad-1.93.1}/squad/jinja2.py +0 -0
  508. {squad-1.93 → squad-1.93.1}/squad/mail.py +0 -0
  509. {squad-1.93 → squad-1.93.1}/squad/manage.py +0 -0
  510. {squad-1.93 → squad-1.93.1}/squad/plugins/__init__.py +0 -0
  511. {squad-1.93 → squad-1.93.1}/squad/plugins/example.py +0 -0
  512. {squad-1.93 → squad-1.93.1}/squad/plugins/gerrit.py +0 -0
  513. {squad-1.93 → squad-1.93.1}/squad/plugins/github.py +0 -0
  514. {squad-1.93 → squad-1.93.1}/squad/plugins/lib/__init__.py +0 -0
  515. {squad-1.93 → squad-1.93.1}/squad/plugins/linux_log_parser.py +0 -0
  516. {squad-1.93 → squad-1.93.1}/squad/run/__init__.py +0 -0
  517. {squad-1.93 → squad-1.93.1}/squad/run/__main__.py +0 -0
  518. {squad-1.93 → squad-1.93.1}/squad/run/listener.py +0 -0
  519. {squad-1.93 → squad-1.93.1}/squad/run/scheduler.py +0 -0
  520. {squad-1.93 → squad-1.93.1}/squad/run/worker.py +0 -0
  521. {squad-1.93 → squad-1.93.1}/squad/settings.py +0 -0
  522. {squad-1.93 → squad-1.93.1}/squad/socialaccount.py +0 -0
  523. {squad-1.93 → squad-1.93.1}/squad/urls.py +0 -0
  524. {squad-1.93 → squad-1.93.1}/squad/wsgi.py +0 -0
  525. {squad-1.93 → squad-1.93.1}/squad.egg-info/dependency_links.txt +0 -0
  526. {squad-1.93 → squad-1.93.1}/squad.egg-info/entry_points.txt +0 -0
  527. {squad-1.93 → squad-1.93.1}/squad.egg-info/requires.txt +0 -0
  528. {squad-1.93 → squad-1.93.1}/squad.egg-info/top_level.txt +0 -0
  529. {squad-1.93 → squad-1.93.1}/squad.svg +0 -0
  530. {squad-1.93 → squad-1.93.1}/test/__init__.py +0 -0
  531. {squad-1.93 → squad-1.93.1}/test/api/__init__.py +0 -0
  532. {squad-1.93 → squad-1.93.1}/test/api/benchmarks.csv +0 -0
  533. {squad-1.93 → squad-1.93.1}/test/api/benchmarks.json +0 -0
  534. {squad-1.93 → squad-1.93.1}/test/api/definition.yaml +0 -0
  535. {squad-1.93 → squad-1.93.1}/test/api/metadata.json +0 -0
  536. {squad-1.93 → squad-1.93.1}/test/api/test_ci.py +0 -0
  537. {squad-1.93 → squad-1.93.1}/test/api/test_data.py +0 -0
  538. {squad-1.93 → squad-1.93.1}/test/api/test_rest.py +0 -0
  539. {squad-1.93 → squad-1.93.1}/test/api/test_run.log +0 -0
  540. {squad-1.93 → squad-1.93.1}/test/api/tests.csv +0 -0
  541. {squad-1.93 → squad-1.93.1}/test/api/tests.json +0 -0
  542. {squad-1.93 → squad-1.93.1}/test/api/tests.py +0 -0
  543. {squad-1.93 → squad-1.93.1}/test/api/tests_log.json +0 -0
  544. {squad-1.93 → squad-1.93.1}/test/api/tests_two.json +0 -0
  545. {squad-1.93 → squad-1.93.1}/test/api/twoline_definition.yaml +0 -0
  546. {squad-1.93 → squad-1.93.1}/test/ci/__init__.py +0 -0
  547. {squad-1.93 → squad-1.93.1}/test/ci/backend/__init__.py +0 -0
  548. {squad-1.93 → squad-1.93.1}/test/ci/backend/example-broken-log.yaml +0 -0
  549. {squad-1.93 → squad-1.93.1}/test/ci/backend/example-lava-log.yaml +0 -0
  550. {squad-1.93 → squad-1.93.1}/test/ci/backend/lava.json +0 -0
  551. {squad-1.93 → squad-1.93.1}/test/ci/backend/test_fake.py +0 -0
  552. {squad-1.93 → squad-1.93.1}/test/ci/backend/test_lava.py +0 -0
  553. {squad-1.93 → squad-1.93.1}/test/ci/backend/test_real_lava.py +0 -0
  554. {squad-1.93 → squad-1.93.1}/test/ci/backend/test_tuxsuite.py +0 -0
  555. {squad-1.93 → squad-1.93.1}/test/ci/backend/tuxsuite_test_failed_result_sample.json +0 -0
  556. {squad-1.93 → squad-1.93.1}/test/ci/backend/tuxsuite_test_result_sample.json +0 -0
  557. {squad-1.93 → squad-1.93.1}/test/ci/test_listen.py +0 -0
  558. {squad-1.93 → squad-1.93.1}/test/ci/test_tasks.py +0 -0
  559. {squad-1.93 → squad-1.93.1}/test/core/__init__.py +0 -0
  560. {squad-1.93 → squad-1.93.1}/test/core/test_attachment.py +0 -0
  561. {squad-1.93 → squad-1.93.1}/test/core/test_build.py +0 -0
  562. {squad-1.93 → squad-1.93.1}/test/core/test_build_summary.py +0 -0
  563. {squad-1.93 → squad-1.93.1}/test/core/test_callback.py +0 -0
  564. {squad-1.93 → squad-1.93.1}/test/core/test_emailtemplate.py +0 -0
  565. {squad-1.93 → squad-1.93.1}/test/core/test_failures.py +0 -0
  566. {squad-1.93 → squad-1.93.1}/test/core/test_group.py +0 -0
  567. {squad-1.93 → squad-1.93.1}/test/core/test_historical_emailtemplate.py +0 -0
  568. {squad-1.93 → squad-1.93.1}/test/core/test_history.py +0 -0
  569. {squad-1.93 → squad-1.93.1}/test/core/test_import_data.py +0 -0
  570. {squad-1.93 → squad-1.93.1}/test/core/test_import_data_input/1/default/1/metadata.json +0 -0
  571. {squad-1.93 → squad-1.93.1}/test/core/test_import_data_input/1/default/1/metrics.json +0 -0
  572. {squad-1.93 → squad-1.93.1}/test/core/test_import_data_input/2/default/2/metadata.json +0 -0
  573. {squad-1.93 → squad-1.93.1}/test/core/test_import_data_input/2/default/2/metrics.json +0 -0
  574. {squad-1.93 → squad-1.93.1}/test/core/test_import_data_input/2/default/2/screenshot.png +0 -0
  575. {squad-1.93 → squad-1.93.1}/test/core/test_import_data_input/2/default/2/tests.json +0 -0
  576. {squad-1.93 → squad-1.93.1}/test/core/test_import_data_missing_metadata/1/1/tests.json +0 -0
  577. {squad-1.93 → squad-1.93.1}/test/core/test_known_issues.py +0 -0
  578. {squad-1.93 → squad-1.93.1}/test/core/test_metric.py +0 -0
  579. {squad-1.93 → squad-1.93.1}/test/core/test_metric_comparison.py +0 -0
  580. {squad-1.93 → squad-1.93.1}/test/core/test_metric_threshold.py +0 -0
  581. {squad-1.93 → squad-1.93.1}/test/core/test_metrics_data.py +0 -0
  582. {squad-1.93 → squad-1.93.1}/test/core/test_metrics_summary.py +0 -0
  583. {squad-1.93 → squad-1.93.1}/test/core/test_notification.py +0 -0
  584. {squad-1.93 → squad-1.93.1}/test/core/test_notification_delivery.py +0 -0
  585. {squad-1.93 → squad-1.93.1}/test/core/test_patch_source.py +0 -0
  586. {squad-1.93 → squad-1.93.1}/test/core/test_project.py +0 -0
  587. {squad-1.93 → squad-1.93.1}/test/core/test_project_status.py +0 -0
  588. {squad-1.93 → squad-1.93.1}/test/core/test_statistics.py +0 -0
  589. {squad-1.93 → squad-1.93.1}/test/core/test_tasks_notification.py +0 -0
  590. {squad-1.93 → squad-1.93.1}/test/core/test_test.py +0 -0
  591. {squad-1.93 → squad-1.93.1}/test/core/test_test_comparison.py +0 -0
  592. {squad-1.93 → squad-1.93.1}/test/core/test_test_data.py +0 -0
  593. {squad-1.93 → squad-1.93.1}/test/core/test_test_run.py +0 -0
  594. {squad-1.93 → squad-1.93.1}/test/core/test_test_summary.py +0 -0
  595. {squad-1.93 → squad-1.93.1}/test/core/test_update_project_statuses.py +0 -0
  596. {squad-1.93 → squad-1.93.1}/test/core/test_user_namespace.py +0 -0
  597. {squad-1.93 → squad-1.93.1}/test/core/test_utils.py +0 -0
  598. {squad-1.93 → squad-1.93.1}/test/frontend/__init__.py +0 -0
  599. {squad-1.93 → squad-1.93.1}/test/frontend/test_basics.py +0 -0
  600. {squad-1.93 → squad-1.93.1}/test/frontend/test_comparison.py +0 -0
  601. {squad-1.93 → squad-1.93.1}/test/frontend/test_get_token_command.py +0 -0
  602. {squad-1.93 → squad-1.93.1}/test/frontend/test_group_settings.py +0 -0
  603. {squad-1.93 → squad-1.93.1}/test/frontend/test_history.py +0 -0
  604. {squad-1.93 → squad-1.93.1}/test/frontend/test_template_tags.py +0 -0
  605. {squad-1.93 → squad-1.93.1}/test/frontend/test_test_job.py +0 -0
  606. {squad-1.93 → squad-1.93.1}/test/frontend/test_tests.py +0 -0
  607. {squad-1.93 → squad-1.93.1}/test/frontend/test_utils.py +0 -0
  608. {squad-1.93 → squad-1.93.1}/test/integration/__init__.py +0 -0
  609. {squad-1.93 → squad-1.93.1}/test/integration/plugins/test_tradefed.py +0 -0
  610. {squad-1.93 → squad-1.93.1}/test/integration/plugins/tradefed-output-20220608105250.tar.xz +0 -0
  611. {squad-1.93 → squad-1.93.1}/test/integration/test_build_notification_from_ci.py +0 -0
  612. {squad-1.93 → squad-1.93.1}/test/javascript.py +0 -0
  613. {squad-1.93 → squad-1.93.1}/test/karma.conf.js +0 -0
  614. {squad-1.93 → squad-1.93.1}/test/mock.py +0 -0
  615. {squad-1.93 → squad-1.93.1}/test/performance.py +0 -0
  616. {squad-1.93 → squad-1.93.1}/test/plugins/__init__.py +0 -0
  617. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/internal-error-oops.log +0 -0
  618. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kasan.log +0 -0
  619. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kcsan_full_log.log +0 -0
  620. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kcsan_simple.log +0 -0
  621. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kernel_bug_and_invalid_opcode.log +0 -0
  622. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kernelexceptiontrace.log +0 -0
  623. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kernelexceptiontrace_without_squarebraces.log +0 -0
  624. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kernelpanic-multiline.log +0 -0
  625. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kernelpanic-single-and-multiline.log +0 -0
  626. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kfence.log +0 -0
  627. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/multiple_issues_dmesg.log +0 -0
  628. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/oops.log +0 -0
  629. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/rcu_warning.log +0 -0
  630. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_arm64_25103120.log +0 -0
  631. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_arm_24958120.log +0 -0
  632. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_arm_26001178.log +0 -0
  633. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_i386_25043392.log +0 -0
  634. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_i386_25431539.log +0 -0
  635. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_riscv_24688299.log +0 -0
  636. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_x86_64_25086964.log +0 -0
  637. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_x86_64_26103794.log +0 -0
  638. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_arm64_24934206.log +0 -0
  639. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_arm_24951924.log +0 -0
  640. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_arm_25044425.log +0 -0
  641. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_arm_25078650.log +0 -0
  642. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_i386_25044475.log +0 -0
  643. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_riscv_24715191.log +0 -0
  644. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_s390_26103313.log +0 -0
  645. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_sh_26103296.log +0 -0
  646. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_x86_64_24932905.log +0 -0
  647. {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_x86_64_26103833.log +0 -0
  648. {squad-1.93 → squad-1.93.1}/test/plugins/test_gerrit.py +0 -0
  649. {squad-1.93 → squad-1.93.1}/test/plugins/test_github.py +0 -0
  650. {squad-1.93 → squad-1.93.1}/test/plugins/test_linux_log_parser_build.py +0 -0
  651. {squad-1.93 → squad-1.93.1}/test/plugins/test_plugin.py +0 -0
  652. {squad-1.93 → squad-1.93.1}/test/settings.py +0 -0
  653. {squad-1.93 → squad-1.93.1}/test/test_architecture.py +0 -0
  654. {squad-1.93 → squad-1.93.1}/test/test_code_quality.py +0 -0
  655. {squad-1.93 → squad-1.93.1}/test/test_cors.py +0 -0
  656. {squad-1.93 → squad-1.93.1}/test/test_i18n.py +0 -0
  657. {squad-1.93 → squad-1.93.1}/test/test_mail.py +0 -0
  658. {squad-1.93 → squad-1.93.1}/test/test_pending_migrations.py +0 -0
  659. {squad-1.93 → squad-1.93.1}/test/unit/test_annotation.js +0 -0
  660. {squad-1.93 → squad-1.93.1}/test/unit/test_cancel.js +0 -0
  661. {squad-1.93 → squad-1.93.1}/test/unit/test_charts.js +0 -0
  662. {squad-1.93 → squad-1.93.1}/test/unit/test_compare.js +0 -0
  663. {squad-1.93 → squad-1.93.1}/test/unit/test_filter.js +0 -0
  664. {squad-1.93 → squad-1.93.1}/test/unit/test_resubmit.js +0 -0
@@ -1,3 +1,8 @@
1
+ # 1.93.1
2
+
3
+ This 1.93.1 release has minor bug fixes on log parser plugin and it silences a warning
4
+ when receiving a job that already exist within a build.
5
+
1
6
  # 1.93
2
7
 
3
8
  This 1.93 release adds support for a build log parser as well as some other minor bug fixes and improvements.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: squad
3
- Version: 1.93
3
+ Version: 1.93.1
4
4
  Summary: Software Quality Dashboard
5
5
  Home-page: https://github.com/Linaro/squad
6
6
  Author: Antonio Terceiro
@@ -232,7 +232,9 @@ strings. The following fields are recognized:
232
232
  test run
233
233
  * ``datetime``: timestamp of the test run, as a ISO-8601 date
234
234
  representation, with seconds. This is the representation that ``date
235
- --iso-8601=seconds`` gives you.
235
+ --iso-8601=seconds`` gives you. If datetime is not supplied in the
236
+ metadata, the datetime of a test run will be set to the current
237
+ timestamp during creation.
236
238
  * ``job_id``: identifier for the test run. Must be unique for the
237
239
  project. **This field is mandatory**
238
240
  * ``job_status``: string identifying the status of the project. SQUAD
@@ -138,10 +138,8 @@ class Backend(models.Model):
138
138
  completed=completed,
139
139
  )
140
140
  test_job.testrun = testrun
141
- except InvalidMetadata as exception:
141
+ except (DuplicatedTestJob, InvalidMetadata) as exception:
142
142
  test_job.failure = str(exception)
143
- except DuplicatedTestJob as exception:
144
- logger.error('Failed to fetch test_job(%d): "%s"' % (test_job.id, str(exception)))
145
143
 
146
144
  if test_job.needs_postprocessing():
147
145
  # Offload postprocessing plugins to a new task
@@ -493,6 +493,9 @@ class Build(models.Model):
493
493
  ordering = ['datetime']
494
494
 
495
495
  def save(self, *args, **kwargs):
496
+ # Initialize this to timezone.now(), then if a testrun is seen with an
497
+ # earlier datetime, keep this value up to date with the earliest
498
+ # testrun.datetime (handled in ReceiveTestRun.__call__).
496
499
  if not self.datetime:
497
500
  self.datetime = timezone.now()
498
501
  with transaction.atomic():
@@ -806,6 +809,9 @@ class TestRun(models.Model):
806
809
  unique_together = ('build', 'job_id')
807
810
 
808
811
  def save(self, *args, **kwargs):
812
+ # testrun.datetime will take datetime from the metadata if it exists
813
+ # (during ReceiveTestRun.__call__). If datetime is not in the metadata,
814
+ # set it to timezone.now()
809
815
  if not self.datetime:
810
816
  self.datetime = timezone.now()
811
817
  if self.__metadata__:
@@ -178,6 +178,8 @@ class ReceiveTestRun(object):
178
178
 
179
179
  testrun.refresh_from_db()
180
180
 
181
+ # This keeps the datetime of the build in line with the earliest
182
+ # observed testrun.datetime.
181
183
  if not build.datetime or testrun.datetime < build.datetime:
182
184
  build.datetime = testrun.datetime
183
185
  build.save()
@@ -28,14 +28,29 @@ class BaseLogParser:
28
28
  return re.compile(combined, re.S | re.M)
29
29
 
30
30
  def remove_numbers_and_time(self, snippet):
31
- # [ 1067.461794][ T132] BUG: KCSAN: data-race in do_page_fault spectre_v4_enable_task_mitigation
32
- # -> [ .][ T] BUG: KCSAN: data-race in do_page_fault spectre_v_enable_task_mitigation
33
- without_numbers = re.sub(r"(0x[a-f0-9]+|[<\[][0-9a-f]+?[>\]]|\d+)", "", snippet)
31
+ # [ 92.236941] CPU: 1 PID: 191 Comm: kunit_try_catch Tainted: G W 5.15.75-rc1 #1
32
+ # <4>[ 87.925462] CPU: 0 PID: 135 Comm: (crub_all) Not tainted 6.7.0-next-20240111 #14
33
+ # Remove '(Not t|T)ainted', to the end of the line.
34
+ without_tainted = re.sub(r"(Not t|T)ainted.*", "", snippet)
35
+
36
+ # x23: ffff9b7275bc6f90 x22: ffff9b7275bcfb50 x21: fff00000cc80ef88
37
+ # x20: 1ffff00010668fb8 x19: ffff8000800879f0 x18: 00000000805c0b5c
38
+ # Remove words with hex numbers.
39
+ # <3>[ 2.491276][ T1] BUG: KCSAN: data-race in console_emit_next_record / console_trylock_spinning
40
+ # -> <>[ .][ T1] BUG: KCSAN: data-race in console_emit_next_record / console_trylock_spinning
41
+ without_hex = re.sub(r"\b(?:0x)?[a-fA-F0-9]+\b", "", without_tainted)
42
+
43
+ # <>[ 1067.461794][ T132] BUG: KCSAN: data-race in do_page_fault spectre_v4_enable_task_mitigation
44
+ # -> <>[ .][ T132] BUG: KCSAN: data-race in do_page_fault spectre_v_enable_task_mitigation
45
+ # But should not remove numbers from functions.
46
+ without_numbers = re.sub(
47
+ r"(0x[a-f0-9]+|[<\[][0-9a-f]+?[>\]]|\b\d+\b(?!\s*\())", "", without_hex
48
+ )
34
49
 
35
- # [ .][ T] BUG: KCSAN: data-race in do_page_fault spectre_v_enable_task_mitigation
50
+ # <>[ .][ T132] BUG: KCSAN: data-race in do_page_fault spectre_v_enable_task_mitigation
36
51
  # -> BUG: KCSAN: data-race in do_page_fault spectre_v_enable_task_mitigation
37
52
  without_time = re.sub(
38
- f"^{square_brackets_and_contents}({square_brackets_and_contents})?",
53
+ f"^<?>?{square_brackets_and_contents}({square_brackets_and_contents})?",
39
54
  "",
40
55
  without_numbers,
41
56
  ) # noqa
@@ -200,9 +200,11 @@ class Plugin(BasePlugin, BaseLogParser):
200
200
  # there is a match
201
201
  return None
202
202
  snippet = matches[0]
203
- without_numbers_and_time = self.remove_numbers_and_time(snippet)
203
+ without_numbers = re.sub(
204
+ r"(0x[a-f0-9]+|[<\[][0-9a-f]+?[>\]]|\b\d+\b(?!\s*\())", "", snippet
205
+ )
204
206
 
205
- name = slugify(self.post_process_test_name(without_numbers_and_time))
207
+ name = slugify(self.post_process_test_name(without_numbers))
206
208
 
207
209
  return name
208
210
 
@@ -0,0 +1 @@
1
+ __version__ = '1.93.1'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: squad
3
- Version: 1.93
3
+ Version: 1.93.1
4
4
  Summary: Software Quality Dashboard
5
5
  Home-page: https://github.com/Linaro/squad
6
6
  Author: Antonio Terceiro
@@ -621,6 +621,8 @@ test/plugins/test_linux_log_parser.py
621
621
  test/plugins/test_linux_log_parser_build.py
622
622
  test/plugins/test_log_parser_base.py
623
623
  test/plugins/test_plugin.py
624
+ test/plugins/linux_log_parser/different-numbers-in-function-name-oops.log
625
+ test/plugins/linux_log_parser/duplicated-oops.log
624
626
  test/plugins/linux_log_parser/internal-error-oops.log
625
627
  test/plugins/linux_log_parser/kasan.log
626
628
  test/plugins/linux_log_parser/kcsan_full_log.log
@@ -168,7 +168,7 @@ class BackendFetchTest(BackendTestBase):
168
168
 
169
169
  @patch('django.utils.timezone.now', return_value=NOW)
170
170
  @patch('squad.ci.models.Backend.get_implementation')
171
- def test_fetch_sets_fetched_on_invalid_metadata(self, get_implementation, __now__):
171
+ def test_fetch_sets_fetched_on_duplicated_job(self, get_implementation, __now__):
172
172
  metadata = {"foo": "bar"}
173
173
  tests = {"foo": "pass"}
174
174
  metrics = {"bar": {"value": 1, "unit": "nuggets"}}
@@ -198,7 +198,7 @@ class BackendFetchTest(BackendTestBase):
198
198
 
199
199
  test_job.refresh_from_db()
200
200
  self.assertTrue(test_job.fetched)
201
- self.assertIsNone(test_job.failure)
201
+ self.assertEqual('There is already a test run with job_id 999', test_job.failure)
202
202
 
203
203
  @patch('django.utils.timezone.now', return_value=NOW)
204
204
  @patch('squad.ci.models.Backend.get_implementation')
@@ -7,7 +7,7 @@ import yaml
7
7
  from dateutil.relativedelta import relativedelta
8
8
  from django.test import TestCase
9
9
  from django.utils import timezone
10
- from unittest.mock import patch
10
+ from unittest.mock import Mock, patch
11
11
 
12
12
 
13
13
  from squad.core.models import Group, TestRun, Status, Build, ProjectStatus, SuiteVersion, PatchSource, KnownIssue, EmailTemplate, Callback
@@ -581,6 +581,27 @@ class ReceiveTestRunTest(TestCase):
581
581
 
582
582
  self.assertEqual(yesterday, build.datetime)
583
583
 
584
+ def test_build_datetime_not_in_metadata(self):
585
+ # In the case where datetime is not in metadata, check it is set to
586
+ # timezone.now()
587
+
588
+ # Mock datetime so we can check it at the end
589
+ now_mocked = timezone.now()
590
+ with patch('django.utils.timezone.now', Mock(return_value=now_mocked)):
591
+ receive = ReceiveTestRun(self.project)
592
+
593
+ metadata = {
594
+ "job_id": '999',
595
+ "job_status": 'pass',
596
+ "job_url": 'https://example.com/jobs/999',
597
+ "build_url": 'https://example/com/builds/777',
598
+ }
599
+
600
+ receive('199', 'myenv', metadata_file=json.dumps(metadata))
601
+ build = Build.objects.get(version='199')
602
+
603
+ self.assertEqual(now_mocked, build.datetime)
604
+
584
605
  @patch('squad.core.tasks.ValidateTestRun.__call__')
585
606
  def test_should_validate_test_run(self, validator_mock):
586
607
  validator_mock.side_effect = RuntimeError('crashed')
@@ -0,0 +1,53 @@
1
+ [ 140.297674] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
2
+ [ 140.298941] Modules linked in:
3
+ [ 140.299833] CPU: 1 UID: 0 PID: 620 Comm: kunit_try_catch_32k Tainted: G B N 6.13.0-rc7 #1
4
+ [ 140.300812] Tainted: [B]=BAD_PAGE, [N]=TEST
5
+ [ 140.301340] Hardware name: linux,dummy-virt (DT)
6
+ [ 140.302131] pstate: 12402009 (nzcV daif +PAN -UAO +TCO -DIT -SSBS BTYPE=--)
7
+ [ 140.303752] pc : kunit_test_null_dereference+0x70/0x170
8
+ [ 140.304314] lr : kunit_generic_run_threadfn_adapter+0x88/0x100
9
+ [ 140.305223] sp : ffff800083347dc0
10
+ [ 140.305778] x29: ffff800083347e20 x28: 0000000000000000 x27: 0000000000000000
11
+ [ 140.307079] x26: 0000000000000000 x25: 0000000000000000 x24: fff00000cc80ef80
12
+ [ 140.308158] x23: ffff9b7275bc6f90 x22: ffff9b7275bcfb50 x21: fff00000cc80ef88
13
+ [ 140.309193] x20: 1ffff00010668fb8 x19: ffff8000800879f0 x18: 00000000805c0b5c
14
+ [ 140.310184] x17: 0000000000000001 x16: fff00000da505ca0 x15: 00000000007e992b
15
+ [ 140.311172] x14: 00000000ca2562db x13: 1ffe00001815cb24 x12: fffd800018da43a2
16
+ [ 140.312208] x11: 1ffe000018da43a1 x10: fffd800018da43a1 x9 : ffff9b7275bc7018
17
+ [ 140.313293] x8 : ffff800083347cb8 x7 : 0000000000000001 x6 : 0000000041b58ab3
18
+ [ 140.314333] x5 : ffff700010668fb8 x4 : 00000000f1f1f1f1 x3 : 0000000000000003
19
+ [ 140.315379] x2 : dfff800000000000 x1 : fff00000c6d21440 x0 : ffff8000800879f0
20
+ [ 140.316474] Call trace:
21
+ [ 140.316927] kunit_test_null_dereference+0x70/0x170 (P)
22
+ [ 140.317646] kunit_generic_run_threadfn_adapter+0x88/0x100
23
+ [ 140.318315] kthread+0x24c/0x2d0
24
+ [ 140.318860] ret_from_fork+0x10/0x20
25
+ [ 140.320008] Code: b90004a3 d5384101 52800063 aa0003f3 (39c00042)
26
+ [ 140.321163] ---[ end trace 0000000000000000 ]---
27
+
28
+ [ 112.633643] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
29
+ [ 112.635528] Modules linked in:
30
+ [ 112.636558] CPU: 0 UID: 0 PID: 621 Comm: kunit_try_catch_64k Tainted: G B N 6.13.0-rc7 #1
31
+ [ 112.637505] Tainted: [B]=BAD_PAGE, [N]=TEST
32
+ [ 112.638145] Hardware name: linux,dummy-virt (DT)
33
+ [ 112.638662] pstate: 12402009 (nzcV daif +PAN -UAO +TCO -DIT -SSBS BTYPE=--)
34
+ [ 112.639813] pc : kunit_test_null_dereference+0x70/0x170
35
+ [ 112.640694] lr : kunit_generic_run_threadfn_adapter+0x88/0x100
36
+ [ 112.641563] sp : ffff800083177dc0
37
+ [ 112.641998] x29: ffff800083177e20 x28: 0000000000000000 x27: 0000000000000000
38
+ [ 112.643470] x26: 0000000000000000 x25: 0000000000000000 x24: fff00000c9daff00
39
+ [ 112.644889] x23: ffff9b153cfc6f90 x22: ffff9b153cfcfb50 x21: fff00000c9daff08
40
+ [ 112.645963] x20: 1ffff0001062efb8 x19: ffff8000800879f0 x18: 00000000a76e9934
41
+ [ 112.646909] x17: 000000008055b2b1 x16: 0000000000000100 x15: 0000000000000000
42
+ [ 112.648068] x14: 1ffe00001b49c778 x13: fff00000da4e3c98 x12: fffd8000191643a2
43
+ [ 112.649116] x11: 1ffe0000191643a1 x10: fffd8000191643a1 x9 : ffff9b153cfc7018
44
+ [ 112.650156] x8 : ffff800083177cb8 x7 : 0000000000000001 x6 : 0000000041b58ab3
45
+ [ 112.651201] x5 : ffff70001062efb8 x4 : 00000000f1f1f1f1 x3 : 0000000000000003
46
+ [ 112.652392] x2 : dfff800000000000 x1 : fff00000c8b21440 x0 : ffff8000800879f0
47
+ [ 112.653691] Call trace:
48
+ [ 112.654100] kunit_test_null_dereference+0x70/0x170 (P)
49
+ [ 112.654712] kunit_generic_run_threadfn_adapter+0x88/0x100
50
+ [ 112.655400] kthread+0x24c/0x2d0
51
+ [ 112.655931] ret_from_fork+0x10/0x20
52
+ [ 112.657443] Code: b90004a3 d5384101 52800063 aa0003f3 (39c00042)
53
+ [ 112.658772] ---[ end trace 0000000000000000 ]---
@@ -0,0 +1,53 @@
1
+ [ 140.297674] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
2
+ [ 140.298941] Modules linked in:
3
+ [ 140.299833] CPU: 1 UID: 0 PID: 620 Comm: kunit_try_catch Tainted: G B N 6.13.0-rc7 #1
4
+ [ 140.300812] Tainted: [B]=BAD_PAGE, [N]=TEST
5
+ [ 140.301340] Hardware name: linux,dummy-virt (DT)
6
+ [ 140.302131] pstate: 12402009 (nzcV daif +PAN -UAO +TCO -DIT -SSBS BTYPE=--)
7
+ [ 140.303752] pc : kunit_test_null_dereference+0x70/0x170
8
+ [ 140.304314] lr : kunit_generic_run_threadfn_adapter+0x88/0x100
9
+ [ 140.305223] sp : ffff800083347dc0
10
+ [ 140.305778] x29: ffff800083347e20 x28: 0000000000000000 x27: 0000000000000000
11
+ [ 140.307079] x26: 0000000000000000 x25: 0000000000000000 x24: fff00000cc80ef80
12
+ [ 140.308158] x23: ffff9b7275bc6f90 x22: ffff9b7275bcfb50 x21: fff00000cc80ef88
13
+ [ 140.309193] x20: 1ffff00010668fb8 x19: ffff8000800879f0 x18: 00000000805c0b5c
14
+ [ 140.310184] x17: 0000000000000001 x16: fff00000da505ca0 x15: 00000000007e992b
15
+ [ 140.311172] x14: 00000000ca2562db x13: 1ffe00001815cb24 x12: fffd800018da43a2
16
+ [ 140.312208] x11: 1ffe000018da43a1 x10: fffd800018da43a1 x9 : ffff9b7275bc7018
17
+ [ 140.313293] x8 : ffff800083347cb8 x7 : 0000000000000001 x6 : 0000000041b58ab3
18
+ [ 140.314333] x5 : ffff700010668fb8 x4 : 00000000f1f1f1f1 x3 : 0000000000000003
19
+ [ 140.315379] x2 : dfff800000000000 x1 : fff00000c6d21440 x0 : ffff8000800879f0
20
+ [ 140.316474] Call trace:
21
+ [ 140.316927] kunit_test_null_dereference+0x70/0x170 (P)
22
+ [ 140.317646] kunit_generic_run_threadfn_adapter+0x88/0x100
23
+ [ 140.318315] kthread+0x24c/0x2d0
24
+ [ 140.318860] ret_from_fork+0x10/0x20
25
+ [ 140.320008] Code: b90004a3 d5384101 52800063 aa0003f3 (39c00042)
26
+ [ 140.321163] ---[ end trace 0000000000000000 ]---
27
+
28
+ [ 112.633643] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
29
+ [ 112.635528] Modules linked in:
30
+ [ 112.636558] CPU: 0 UID: 0 PID: 621 Comm: kunit_try_catch Tainted: G B N 6.13.0-rc7 #1
31
+ [ 112.637505] Tainted: [B]=BAD_PAGE, [N]=TEST
32
+ [ 112.638145] Hardware name: linux,dummy-virt (DT)
33
+ [ 112.638662] pstate: 12402009 (nzcV daif +PAN -UAO +TCO -DIT -SSBS BTYPE=--)
34
+ [ 112.639813] pc : kunit_test_null_dereference+0x70/0x170
35
+ [ 112.640694] lr : kunit_generic_run_threadfn_adapter+0x88/0x100
36
+ [ 112.641563] sp : ffff800083177dc0
37
+ [ 112.641998] x29: ffff800083177e20 x28: 0000000000000000 x27: 0000000000000000
38
+ [ 112.643470] x26: 0000000000000000 x25: 0000000000000000 x24: fff00000c9daff00
39
+ [ 112.644889] x23: ffff9b153cfc6f90 x22: ffff9b153cfcfb50 x21: fff00000c9daff08
40
+ [ 112.645963] x20: 1ffff0001062efb8 x19: ffff8000800879f0 x18: 00000000a76e9934
41
+ [ 112.646909] x17: 000000008055b2b1 x16: 0000000000000100 x15: 0000000000000000
42
+ [ 112.648068] x14: 1ffe00001b49c778 x13: fff00000da4e3c98 x12: fffd8000191643a2
43
+ [ 112.649116] x11: 1ffe0000191643a1 x10: fffd8000191643a1 x9 : ffff9b153cfc7018
44
+ [ 112.650156] x8 : ffff800083177cb8 x7 : 0000000000000001 x6 : 0000000041b58ab3
45
+ [ 112.651201] x5 : ffff70001062efb8 x4 : 00000000f1f1f1f1 x3 : 0000000000000003
46
+ [ 112.652392] x2 : dfff800000000000 x1 : fff00000c8b21440 x0 : ffff8000800879f0
47
+ [ 112.653691] Call trace:
48
+ [ 112.654100] kunit_test_null_dereference+0x70/0x170 (P)
49
+ [ 112.654712] kunit_generic_run_threadfn_adapter+0x88/0x100
50
+ [ 112.655400] kthread+0x24c/0x2d0
51
+ [ 112.655931] ret_from_fork+0x10/0x20
52
+ [ 112.657443] Code: b90004a3 d5384101 52800063 aa0003f3 (39c00042)
53
+ [ 112.658772] ---[ end trace 0000000000000000 ]---
@@ -64,7 +64,7 @@ class TestLinuxLogParser(TestCase):
64
64
  testrun = self.new_testrun('kernelexceptiontrace.log')
65
65
  self.plugin.postprocess_testrun(testrun)
66
66
 
67
- test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-kernelsmpc-smp_call_function_many_cond')
67
+ test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-kernelsmp-smp_call_function_many_cond')
68
68
  self.assertFalse(test.result)
69
69
  self.assertIsNotNone(test.log)
70
70
  self.assertNotIn('Booting Linux', test.log)
@@ -76,7 +76,7 @@ class TestLinuxLogParser(TestCase):
76
76
  testrun = self.new_testrun('kernelexceptiontrace_without_squarebraces.log')
77
77
  self.plugin.postprocess_testrun(testrun)
78
78
 
79
- test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-kernelsmpc-smp_call_function_many_cond')
79
+ test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-kernelsmp-smp_call_function_many_cond')
80
80
  self.assertFalse(test.result)
81
81
  self.assertIsNotNone(test.log)
82
82
  self.assertNotIn('Booting Linux', test.log)
@@ -101,7 +101,7 @@ class TestLinuxLogParser(TestCase):
101
101
  testrun = self.new_testrun('kcsan_simple.log')
102
102
  self.plugin.postprocess_testrun(testrun)
103
103
 
104
- test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='kcsan-bug-kcsan-data-race-in-do_page_fault-spectre_v_enable_task_mitigation')
104
+ test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='kcsan-bug-kcsan-data-race-in-do_page_fault-spectre_v4_enable_task_mitigation')
105
105
 
106
106
  self.assertFalse(test.result)
107
107
  self.assertIsNotNone(test.log)
@@ -175,8 +175,7 @@ class TestLinuxLogParser(TestCase):
175
175
 
176
176
  testrun = self.new_testrun('kernel_bug_and_invalid_opcode.log', job_id='1000')
177
177
  self.plugin.postprocess_testrun(testrun)
178
-
179
- test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='exception-kernel-bug-at-usrsrckernelarchxkvmmmummuc')
178
+ test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='exception-kernel-bug-at-usrsrckernelarchx86kvmmmummu')
180
179
  self.assertFalse(test.result)
181
180
  self.assertIsNotNone(test.log)
182
181
  self.assertNotIn('Booting Linux', test.log)
@@ -201,9 +200,9 @@ class TestLinuxLogParser(TestCase):
201
200
  self.plugin.postprocess_testrun(testrun)
202
201
 
203
202
  tests = testrun.tests
204
- test_panic = tests.get(suite__slug='log-parser-test', metadata__name='panic-multiline-kernel-panic-not-syncing-stack-protector-kernel-stack-is-corrupted-in-ffffffffcc')
205
- test_exception = tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-driversgpudrmradeonradeon_objectc-radeon_ttm_bo_destroy')
206
- test_warning = tests.get(suite__slug='log-parser-test', metadata__name='warning-warning-cpu-pid-at-driversregulatorcorec-_regulator_putpart')
203
+ test_panic = tests.get(suite__slug='log-parser-test', metadata__name='panic-multiline-kernel-panic-not-syncing-stack-protector-kernel-stack-is-corrupted-in')
204
+ test_exception = tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-driversgpudrmradeonradeon_object-radeon_ttm_bo_destroy')
205
+ test_warning = tests.get(suite__slug='log-parser-test', metadata__name='warning-warning-cpu-pid-at-driversregulatorcore-_regulator_putpart')
207
206
  test_oops = tests.get(suite__slug='log-parser-test', metadata__name='oops-oops-preempt-smp')
208
207
  test_fault = tests.get(suite__slug='log-parser-test', metadata__name='fault-unhandled-fault-external-abort-on-non-linefetch-at')
209
208
 
@@ -298,7 +297,7 @@ class TestLinuxLogParser(TestCase):
298
297
  self.assertNotIn('Kernel panic', test.log)
299
298
 
300
299
  # Now check if a test with sha digest in the name
301
- test = testrun.tests.get(suite__slug='log-parser-boot', metadata__name='internal-error-oops-oops-bug-preempt-smp-112aca90e0eaf87ac104ae4e9aeea46f2757ac81faf013c77696d081c109aecc')
300
+ test = testrun.tests.get(suite__slug='log-parser-boot', metadata__name='internal-error-oops-oops-bug-preempt-smp-5c448a8183918455f8d9381bb4b6ee8a593b25c4aeaa85d376fa0fd9cbd5840c')
302
301
  self.assertFalse(test.result)
303
302
  self.assertIsNotNone(test.log)
304
303
  self.assertIn('Internal error: Oops - BUG: 0 [#0] PREEMPT SMP', test.log)
@@ -310,9 +309,9 @@ class TestLinuxLogParser(TestCase):
310
309
 
311
310
  tests = testrun.tests
312
311
 
313
- test_panic = tests.get(suite__slug='log-parser-test', metadata__name='panic-multiline-kernel-panic-not-syncing-stack-protector-kernel-stack-is-corrupted-in-ffffffffcc-18fbe2dd02a2df7ba9e8d2ef289ca7b76beb8f8f8253621ff47902378ee6df11')
314
- test_exception = tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-driversgpudrmradeonradeon_objectc-radeon_ttm_bo_destroy-77251099bfa081e5c942070a569fe31163336e61a80bda7304cd59f0f4b82080')
315
- test_warning = tests.get(suite__slug='log-parser-test', metadata__name='warning-warning-cpu-pid-at-driversregulatorcorec-_regulator_putpart-d44949024d5373185a7381cb9dd291b13c117d6b93feb576a431e5376025004f')
312
+ test_panic = tests.get(suite__slug='log-parser-test', metadata__name='panic-multiline-kernel-panic-not-syncing-stack-protector-kernel-stack-is-corrupted-in-630e6949dbf4d18f6ab71c0864524cf3e60da1380fe7fd5acbb99d8f5d01ab21')
313
+ test_exception = tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-driversgpudrmradeonradeon_object-radeon_ttm_bo_destroy-51fc34b6c857dfc70f7ee985b21731cc1745e97a216193a258a1ad90a6cbb9c8')
314
+ test_warning = tests.get(suite__slug='log-parser-test', metadata__name='warning-warning-cpu-pid-at-driversgpudrmradeonradeon_object-radeon_ttm_bo_destroy-dc992cca96cada94f4930abe87d60c6de25d404f11313bd64f2217d9408e15ef')
316
315
  test_oops = tests.get(suite__slug='log-parser-test', metadata__name='oops-oops-preempt-smp-4e1ddddb2c142178a8977e7d973c2a13db2bb978aa471c0049ee39fe3fe4d74c')
317
316
  test_fault = tests.get(suite__slug='log-parser-test', metadata__name='fault-unhandled-fault-external-abort-on-non-linefetch-at-6f9e3ab8f97e35c1e9167fed1e01c6149986819c54451064322b7d4208528e07')
318
317
 
@@ -347,3 +346,17 @@ class TestLinuxLogParser(TestCase):
347
346
  self.assertNotIn('WARNING: CPU', test_fault.log)
348
347
  self.assertNotIn('Oops', test_fault.log)
349
348
  self.assertIn('Unhandled fault:', test_fault.log)
349
+
350
+ def test_same_sha(self):
351
+ testrun = self.new_testrun('duplicated-oops.log')
352
+ self.plugin.postprocess_testrun(testrun)
353
+
354
+ tests = testrun.tests.all()
355
+ self.assertEqual(2, tests.count())
356
+
357
+ def test_numbers_in_function_name(self):
358
+ testrun = self.new_testrun('different-numbers-in-function-name-oops.log')
359
+ self.plugin.postprocess_testrun(testrun)
360
+
361
+ tests = testrun.tests.all()
362
+ self.assertEqual(3, tests.count())
@@ -94,9 +94,40 @@ class TestBaseLogParser(TestCase):
94
94
  sha_sum, "1e8e593de88f4856fc03d46c4156cf0772898309f8a796595f549bcabfc1cb9f"
95
95
  )
96
96
 
97
- def test_create_name_log_dict(self):
97
+ def test_create_name_log_dict_exclude_numbers(self):
98
98
  """
99
- Test creating the dict containing the "name" and "log lines" pairs
99
+ Test creating the dict containing the "name" and "log lines" pairs -
100
+ case where we want to exclude the numbers before doing the SHA
101
+ """
102
+ tests_without_shas_to_create, tests_with_shas_to_create = (
103
+ self.log_parser.create_name_log_dict(
104
+ "test_name", ["log lines 1", "log lines 2"]
105
+ )
106
+ )
107
+ expected_tests_without_shas_to_create = defaultdict(
108
+ set, {"test_name": {"log lines 1", "log lines 2"}}
109
+ )
110
+ expected_tests_with_shas_to_create = defaultdict(
111
+ set,
112
+ {
113
+ "test_name-1677bef240c981a91c7f0c4321668491ff18f224ee5f4191feaa1940b09ccdaa": {
114
+ "log lines 1",
115
+ "log lines 2",
116
+ }
117
+ },
118
+ )
119
+
120
+ self.assertDictEqual(
121
+ tests_without_shas_to_create, expected_tests_without_shas_to_create
122
+ )
123
+ self.assertDictEqual(
124
+ tests_with_shas_to_create, expected_tests_with_shas_to_create
125
+ )
126
+
127
+ def test_create_name_log_dict_keep_numbers(self):
128
+ """
129
+ Test creating the dict containing the "name" and "log lines" pairs -
130
+ case where we want to keep the numbers before doing the SHA
100
131
  """
101
132
  tests_without_shas_to_create, tests_with_shas_to_create = (
102
133
  self.log_parser.create_name_log_dict(
@@ -109,8 +140,10 @@ class TestBaseLogParser(TestCase):
109
140
  expected_tests_with_shas_to_create = defaultdict(
110
141
  set,
111
142
  {
112
- "test_name-2b06e6aa0f681d2b9d2de6b1e91d4b25cea58b5ce9c3dcd64b429766a8b0ecb1": {
143
+ "test_name-8166dde0dc110dc6d0064b55e0d09fb4589f6d68e4aa5580376858e290f4bc91": {
113
144
  "log lines1",
145
+ },
146
+ "test_name-335a19ed20ff0d0b276e1120a5761802bb3c7ce416b24ef69b5ba4b247832f92": {
114
147
  "log lines2",
115
148
  }
116
149
  },
@@ -194,7 +227,7 @@ class TestBaseLogParser(TestCase):
194
227
  slug="log-parser-test"
195
228
  )
196
229
  self.log_parser.create_squad_tests(
197
- self.testrun, suite, "test_name", {"log lines1", "log lines2"}
230
+ self.testrun, suite, "test_name", {"log lines 1", "log lines 2"}
198
231
  )
199
232
 
200
233
  test = self.testrun.tests.get(
@@ -205,12 +238,12 @@ class TestBaseLogParser(TestCase):
205
238
 
206
239
  test_with_sha = self.testrun.tests.get(
207
240
  suite__slug="log-parser-test",
208
- metadata__name="test_name-2b06e6aa0f681d2b9d2de6b1e91d4b25cea58b5ce9c3dcd64b429766a8b0ecb1",
241
+ metadata__name="test_name-1677bef240c981a91c7f0c4321668491ff18f224ee5f4191feaa1940b09ccdaa",
209
242
  )
210
243
  self.assertFalse(test_with_sha.result)
211
244
  self.assertIsNotNone(test_with_sha.log)
212
- self.assertIn("log lines1", test_with_sha.log)
213
- self.assertIn("log lines2", test_with_sha.log)
245
+ self.assertIn("log lines 1", test_with_sha.log)
246
+ self.assertIn("log lines 2", test_with_sha.log)
214
247
 
215
248
  def test_compile_regex_single(self):
216
249
  regex = [
@@ -1 +0,0 @@
1
- __version__ = '1.93'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes