pyproject.toml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. [tool.pytest.ini_options]
  2. DJANGO_SETTINGS_MODULE = "desktop.settings"
  3. console_output_style = "count"
  4. addopts = """
  5. -v \
  6. -m \
  7. 'not integration' \
  8. --strict-markers \
  9. --disable-warnings \
  10. --junit-xml=reports/pytest/test_report.xml \
  11. --html=reports/pytest/report.html \
  12. --self-contained-html \
  13. --cov=./ \
  14. --cov-report html:reports/code-cov/coverage-html \
  15. --cov-report xml:reports/code-cov/coverage.xml \
  16. """
  17. norecursedirs = "desktop/core/ext-py3 desktop/core/3.11 desktop/core/3.10 desktop/core/3.9 desktop/core/3.8"
  18. python_files = "tests.py test_*.py *_tests.py tests_* *_test.py"
  19. markers = [
  20. "integration: live server based tests",
  21. "requires_hadoop: live hadoop cluster based tests",
  22. ]
  23. [tool.coverage.run]
  24. branch = true
  25. omit = [
  26. "*/ext-py3/*",
  27. "desktop/core/src/desktop/lib/wsgiserver.py",
  28. "*/migrations/*",
  29. "*/org_migrations/*",
  30. "*/old_migrations/*",
  31. "*/gen-py/*",
  32. "desktop/core/src/desktop/app_template/src/app_name/*",
  33. "desktop/core/src/desktop/app_template_proxy/src/app_name/*",
  34. "*conf.py",
  35. "*settings.py",
  36. "*urls.py",
  37. "*metrics.py",
  38. "*tests.py*",
  39. "test_*.py",
  40. "*_tests.py",
  41. "tests_*.py",
  42. "*_test.py",
  43. ]
  44. source = [
  45. "about",
  46. "beeswax",
  47. "filebrowser",
  48. "hbase",
  49. "help",
  50. "hive",
  51. "impala",
  52. "jobbrowser",
  53. "jobsub",
  54. "metastore",
  55. "oozie",
  56. "pig",
  57. "proxy",
  58. "rdbms",
  59. "search",
  60. "security",
  61. "spark",
  62. "sqoop",
  63. "useradmin",
  64. "zookeeper",
  65. "desktop",
  66. "aws",
  67. "azure",
  68. "dashboard",
  69. "hadoop",
  70. "indexer",
  71. "kafka",
  72. "libanalyze",
  73. "liboauth",
  74. "liboozie",
  75. "librdbms",
  76. "libsaml",
  77. "libsentry",
  78. "libsolr",
  79. "libzookeeper",
  80. "metadata",
  81. "notebook",
  82. ]
  83. [tool.coverage.report]
  84. precision = 2
  85. [tool.ruff]
  86. target-version = "py38"
  87. line-length = 140
  88. indent-width = 2
  89. force-exclude = true
  90. extend-exclude = [
  91. "*/ext-py3/*",
  92. "desktop/core/src/desktop/lib/wsgiserver.py",
  93. "*/migrations/*",
  94. "apps/oozie/src/oozie/tests.py",
  95. "tools/ops/",
  96. "tools/ace-editor/",
  97. "*/gen-py/*",
  98. "*/org_migrations/*",
  99. "*/old_migrations/*",
  100. "desktop/core/src/desktop/app_template/src/app_name/*",
  101. "desktop/core/src/desktop/app_template_proxy/src/app_name/*",
  102. ]
  103. [tool.ruff.lint]
  104. preview = true
  105. select = [
  106. "E", # pycodestyle errors
  107. "W", # pycodestyle warnings
  108. "I", # isort
  109. ]
  110. ignore = ["E111", "E114", "E117", "W191", "E731"]
  111. [tool.ruff.lint.per-file-ignores]
  112. "desktop/libs/notebook/src/notebook/connectors/altus.py" = ["E501"]
  113. "desktop/libs/notebook/src/notebook/connectors/altus_adb.py" = ["E501"]
  114. "desktop/libs/metadata/src/metadata/catalog/dummy_client.py" = ["E501"]
  115. "desktop/libs/liboozie/src/liboozie/submission2.py" = ["E501"]
  116. "desktop/libs/libanalyze/src/libanalyze/rules.py" = ["E501"]
  117. "apps/hbase/src/hbase/api.py" = ["E501"]
  118. "desktop/libs/librdbms/src/librdbms/server/mysql_lib.py" = ["E402"]
  119. "desktop/core/src/desktop/urls.py" = ["E402"]
  120. "desktop/core/src/desktop/lib/thrift_util_test.py" = ["E402"]
  121. "desktop/core/src/desktop/auth/backend.py" = ["E402"]
  122. [tool.ruff.format]
  123. docstring-code-format = true
  124. docstring-code-line-length = 140
  125. indent-style = "space"
  126. quote-style = "preserve"
  127. [tool.ruff.lint.isort]
  128. combine-as-imports = true
  129. length-sort-straight = true
  130. known-first-party = [
  131. "about",
  132. "beeswax",
  133. "filebrowser",
  134. "hbase",
  135. "help",
  136. "hive",
  137. "impala",
  138. "jobbrowser",
  139. "jobsub",
  140. "metastore",
  141. "oozie",
  142. "pig",
  143. "proxy",
  144. "rdbms",
  145. "search",
  146. "security",
  147. "spark",
  148. "sqoop",
  149. "useradmin",
  150. "zookeeper",
  151. "desktop",
  152. "aws",
  153. "azure",
  154. "dashboard",
  155. "hadoop",
  156. "indexer",
  157. "kafka",
  158. "libanalyze",
  159. "liboauth",
  160. "liboozie",
  161. "librdbms",
  162. "libsaml",
  163. "libsentry",
  164. "libsolr",
  165. "libzookeeper",
  166. "metadata",
  167. "notebook",
  168. ]