@hestia-earth/data-validation 0.37.7 → 0.37.9

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 (411) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.js +17 -0
  3. package/dist/validations.d.ts +10 -0
  4. package/dist/validations.js +10 -0
  5. package/package.json +4 -3
  6. package/search-results.json +1 -1
  7. package/src/version.ts +1 -1
  8. package/validation.json +639 -0
  9. package/.coveragerc +0 -14
  10. package/.dockerignore +0 -19
  11. package/.eslintignore +0 -17
  12. package/.eslintrc.js +0 -11
  13. package/.flake8 +0 -5
  14. package/.gitlab/issue_templates/new validation.md +0 -82
  15. package/.gitlab-ci.yml +0 -216
  16. package/.readthedocs.yml +0 -24
  17. package/CODEOWNERS +0 -11
  18. package/Dockerfile +0 -13
  19. package/MANIFEST.in +0 -2
  20. package/bin/hestia-validate-data +0 -80
  21. package/build_mocking.py +0 -14
  22. package/commitlint.config.js +0 -1
  23. package/docs/Makefile +0 -20
  24. package/docs/_static/styles.css +0 -4
  25. package/docs/_templates/custom-class-template.rst +0 -34
  26. package/docs/_templates/custom-module-template.rst +0 -66
  27. package/docs/_templates/layout.html +0 -4
  28. package/docs/conf.py +0 -74
  29. package/docs/index.rst +0 -42
  30. package/docs/make.bat +0 -35
  31. package/docs/requirements.txt +0 -13
  32. package/envs/.develop.env +0 -1
  33. package/envs/.master.env +0 -1
  34. package/guide-assets/.gitkeep +0 -0
  35. package/hestia_earth/validation/README.md +0 -5
  36. package/hestia_earth/validation/__init__.py +0 -32
  37. package/hestia_earth/validation/distribution.py +0 -22
  38. package/hestia_earth/validation/gee.py +0 -162
  39. package/hestia_earth/validation/log.py +0 -44
  40. package/hestia_earth/validation/models.py +0 -141
  41. package/hestia_earth/validation/preload_requests.py +0 -61
  42. package/hestia_earth/validation/terms.py +0 -88
  43. package/hestia_earth/validation/utils.py +0 -444
  44. package/hestia_earth/validation/validators/__init__.py +0 -141
  45. package/hestia_earth/validation/validators/aggregated_cycle.py +0 -32
  46. package/hestia_earth/validation/validators/aggregated_shared.py +0 -37
  47. package/hestia_earth/validation/validators/animal.py +0 -88
  48. package/hestia_earth/validation/validators/completeness.py +0 -252
  49. package/hestia_earth/validation/validators/cycle.py +0 -1123
  50. package/hestia_earth/validation/validators/distribution.py +0 -86
  51. package/hestia_earth/validation/validators/emission.py +0 -109
  52. package/hestia_earth/validation/validators/impact_assessment.py +0 -138
  53. package/hestia_earth/validation/validators/indicator.py +0 -154
  54. package/hestia_earth/validation/validators/infrastructure.py +0 -25
  55. package/hestia_earth/validation/validators/input.py +0 -268
  56. package/hestia_earth/validation/validators/management.py +0 -131
  57. package/hestia_earth/validation/validators/measurement.py +0 -368
  58. package/hestia_earth/validation/validators/organisation.py +0 -43
  59. package/hestia_earth/validation/validators/practice.py +0 -590
  60. package/hestia_earth/validation/validators/product.py +0 -263
  61. package/hestia_earth/validation/validators/property.py +0 -266
  62. package/hestia_earth/validation/validators/shared.py +0 -940
  63. package/hestia_earth/validation/validators/site.py +0 -312
  64. package/hestia_earth/validation/validators/source.py +0 -20
  65. package/hestia_earth/validation/validators/transformation.py +0 -250
  66. package/hestia_earth/validation/version.py +0 -1
  67. package/layer/build.sh +0 -34
  68. package/layer/deploy.sh +0 -18
  69. package/release.sh +0 -11
  70. package/requirements-ci.txt +0 -6
  71. package/requirements-test.txt +0 -4
  72. package/requirements.txt +0 -2
  73. package/run-docker-test.sh +0 -7
  74. package/run-docker.sh +0 -9
  75. package/run.py +0 -99
  76. package/scripts/build_docs.py +0 -283
  77. package/scripts/build_validation_list.py +0 -160
  78. package/scripts/guide-create-branch.sh +0 -15
  79. package/scripts/update-package-version.js +0 -28
  80. package/setup.py +0 -35
  81. package/tests/Dockerfile +0 -13
  82. package/tests/__init__.py +0 -3
  83. package/tests/fixtures/aggregated/cycle/inputs-impactAssessment/invalid-no-impactAssessment.json +0 -64
  84. package/tests/fixtures/aggregated/cycle/inputs-impactAssessment/invalid-world.json +0 -69
  85. package/tests/fixtures/aggregated/cycle/inputs-impactAssessment/valid.json +0 -69
  86. package/tests/fixtures/animal/duplicated-input-cycle/invalid.json +0 -98
  87. package/tests/fixtures/animal/duplicated-input-cycle/valid.json +0 -91
  88. package/tests/fixtures/animal/pregnancyRateTotal/invalid.json +0 -49
  89. package/tests/fixtures/animal/pregnancyRateTotal/valid.json +0 -60
  90. package/tests/fixtures/animal/required/invalid.json +0 -59
  91. package/tests/fixtures/animal/required/valid.json +0 -72
  92. package/tests/fixtures/completeness/all-values/warning.json +0 -22
  93. package/tests/fixtures/completeness/animalPopulation/invalid.json +0 -58
  94. package/tests/fixtures/completeness/animalPopulation/valid-animals.json +0 -71
  95. package/tests/fixtures/completeness/animalPopulation/valid-incomplete.json +0 -58
  96. package/tests/fixtures/completeness/animalPopulation/valid-no-liveAnimals.json +0 -37
  97. package/tests/fixtures/completeness/blank-nodes/agri-food processor-invalid.json +0 -52
  98. package/tests/fixtures/completeness/blank-nodes/invalid.json +0 -124
  99. package/tests/fixtures/completeness/blank-nodes/valid.json +0 -128
  100. package/tests/fixtures/completeness/cropland/site.json +0 -16
  101. package/tests/fixtures/completeness/cropland/valid.json +0 -22
  102. package/tests/fixtures/completeness/cropland/warning.json +0 -22
  103. package/tests/fixtures/completeness/freshForage/error-animals.json +0 -63
  104. package/tests/fixtures/completeness/freshForage/error-products.json +0 -65
  105. package/tests/fixtures/completeness/freshForage/valid-animal-inputs.json +0 -63
  106. package/tests/fixtures/completeness/freshForage/valid-animals.json +0 -63
  107. package/tests/fixtures/completeness/freshForage/valid-not-grazing-liveAnimal.json +0 -55
  108. package/tests/fixtures/completeness/freshForage/valid-not-liveAnimal.json +0 -47
  109. package/tests/fixtures/completeness/freshForage/valid-products.json +0 -68
  110. package/tests/fixtures/completeness/ingredient/invalid-agri-food-processor.json +0 -37
  111. package/tests/fixtures/completeness/ingredient/invalid.json +0 -49
  112. package/tests/fixtures/completeness/ingredient/valid-agri-food-processor-complete.json +0 -49
  113. package/tests/fixtures/completeness/ingredient/valid-agri-food-processor-incomplete.json +0 -37
  114. package/tests/fixtures/completeness/ingredient/valid.json +0 -49
  115. package/tests/fixtures/completeness/material/error.json +0 -49
  116. package/tests/fixtures/completeness/material/valid-fuel-material.json +0 -60
  117. package/tests/fixtures/completeness/material/valid-incomplete.json +0 -36
  118. package/tests/fixtures/completeness/material/valid-no-fuel.json +0 -36
  119. package/tests/fixtures/completeness/valid.json +0 -22
  120. package/tests/fixtures/cycle/aboveGroundCropResidue/invalid.json +0 -76
  121. package/tests/fixtures/cycle/aboveGroundCropResidue/valid.json +0 -76
  122. package/tests/fixtures/cycle/aggregated-valid.json +0 -102
  123. package/tests/fixtures/cycle/coverCrop/invalid.json +0 -64
  124. package/tests/fixtures/cycle/coverCrop/valid-not-coverCrop.json +0 -54
  125. package/tests/fixtures/cycle/coverCrop/valid.json +0 -64
  126. package/tests/fixtures/cycle/cropResidue/complete/invalid.json +0 -56
  127. package/tests/fixtures/cycle/cropResidue/complete/valid.json +0 -82
  128. package/tests/fixtures/cycle/cropResidue/incomplete/invalid.json +0 -42
  129. package/tests/fixtures/cycle/cropResidue/incomplete/valid.json +0 -56
  130. package/tests/fixtures/cycle/dates/invalid-emissions.json +0 -70
  131. package/tests/fixtures/cycle/liveAnimal-animalProduct-mapping/invalid.json +0 -63
  132. package/tests/fixtures/cycle/liveAnimal-animalProduct-mapping/valid.json +0 -63
  133. package/tests/fixtures/cycle/maximumCycleDuration/invalid-dates-year-only.json +0 -48
  134. package/tests/fixtures/cycle/maximumCycleDuration/invalid-dates.json +0 -48
  135. package/tests/fixtures/cycle/maximumCycleDuration/invalid.json +0 -48
  136. package/tests/fixtures/cycle/maximumCycleDuration/valid-dates-year-only.json +0 -48
  137. package/tests/fixtures/cycle/maximumCycleDuration/valid-dates.json +0 -48
  138. package/tests/fixtures/cycle/maximumCycleDuration/valid.json +0 -48
  139. package/tests/fixtures/cycle/otherSites/cycleDuration/invalid.json +0 -52
  140. package/tests/fixtures/cycle/otherSites/cycleDuration/valid-no-siteDuration.json +0 -40
  141. package/tests/fixtures/cycle/otherSites/cycleDuration/valid.json +0 -52
  142. package/tests/fixtures/cycle/practices/stockingDensityPermanentPastureAverage/invalid.json +0 -56
  143. package/tests/fixtures/cycle/practices/stockingDensityPermanentPastureAverage/valid.json +0 -65
  144. package/tests/fixtures/cycle/primary-product-as-input/invalid.json +0 -59
  145. package/tests/fixtures/cycle/primary-product-as-input/valid.json +0 -48
  146. package/tests/fixtures/cycle/product-linked-ia/cycle.json +0 -66
  147. package/tests/fixtures/cycle/product-linked-ia/invalid-multiple.json +0 -58
  148. package/tests/fixtures/cycle/product-linked-ia/valid.json +0 -57
  149. package/tests/fixtures/cycle/products/animals/invalid.json +0 -69
  150. package/tests/fixtures/cycle/products/animals/valid.json +0 -58
  151. package/tests/fixtures/cycle/riceGrainInHuskFlooded-minimumCycleDuration/invalid.json +0 -53
  152. package/tests/fixtures/cycle/riceGrainInHuskFlooded-minimumCycleDuration/valid.json +0 -53
  153. package/tests/fixtures/cycle/siteDuration/crop/invalid.json +0 -53
  154. package/tests/fixtures/cycle/siteDuration/crop/valid-different-duration.json +0 -53
  155. package/tests/fixtures/cycle/siteDuration/crop/valid-same-duration.json +0 -53
  156. package/tests/fixtures/cycle/siteDuration/invalid.json +0 -41
  157. package/tests/fixtures/cycle/siteDuration/valid-no-siteDuration.json +0 -40
  158. package/tests/fixtures/cycle/siteDuration/valid-otherSites.json +0 -48
  159. package/tests/fixtures/cycle/siteDuration/valid.json +0 -45
  160. package/tests/fixtures/cycle/substrate/required/invalid.json +0 -50
  161. package/tests/fixtures/cycle/substrate/required/valid.json +0 -60
  162. package/tests/fixtures/cycle/valid.json +0 -343
  163. package/tests/fixtures/emission/linked-terms/inputs/invalid.json +0 -78
  164. package/tests/fixtures/emission/linked-terms/inputs/valid.json +0 -106
  165. package/tests/fixtures/emission/linked-terms/transformation/error.json +0 -104
  166. package/tests/fixtures/emission/linked-terms/transformation/valid.json +0 -107
  167. package/tests/fixtures/emission/linked-terms/transformation/warning.json +0 -76
  168. package/tests/fixtures/emission/methodTier-background/invalid.json +0 -60
  169. package/tests/fixtures/emission/methodTier-background/valid.json +0 -60
  170. package/tests/fixtures/emission/not-relevant/invalid.json +0 -71
  171. package/tests/fixtures/emission/not-relevant/valid.json +0 -95
  172. package/tests/fixtures/emission/not-relevant-methodTier/invalid.json +0 -70
  173. package/tests/fixtures/emission/not-relevant-methodTier/valid.json +0 -95
  174. package/tests/fixtures/impactAssessment/aggregated-valid.json +0 -43
  175. package/tests/fixtures/impactAssessment/cycle-contains-product/invalid.json +0 -34
  176. package/tests/fixtures/impactAssessment/cycle-contains-product/valid.json +0 -34
  177. package/tests/fixtures/impactAssessment/cycle-endDate/invalid.json +0 -26
  178. package/tests/fixtures/impactAssessment/cycle-endDate/valid.json +0 -26
  179. package/tests/fixtures/impactAssessment/valid.json +0 -93
  180. package/tests/fixtures/indicator/characterisedIndicator-methodModel/invalid.json +0 -52
  181. package/tests/fixtures/indicator/characterisedIndicator-methodModel/valid.json +0 -52
  182. package/tests/fixtures/indicator/ionisingCompounds/invalid.json +0 -23
  183. package/tests/fixtures/indicator/ionisingCompounds/valid.json +0 -23
  184. package/tests/fixtures/indicator/landTransformation/invalid-grouped.json +0 -257
  185. package/tests/fixtures/indicator/landTransformation/invalid.json +0 -100
  186. package/tests/fixtures/indicator/landTransformation/valid-grouped-full.json +0 -507
  187. package/tests/fixtures/indicator/landTransformation/valid-grouped.json +0 -507
  188. package/tests/fixtures/indicator/landTransformation/valid.json +0 -100
  189. package/tests/fixtures/infrastructure/lifespan/invalid.json +0 -26
  190. package/tests/fixtures/infrastructure/lifespan/valid.json +0 -45
  191. package/tests/fixtures/input/animalFeed-fate/invalid.json +0 -103
  192. package/tests/fixtures/input/animalFeed-fate/valid.json +0 -90
  193. package/tests/fixtures/input/country/invalid.json +0 -64
  194. package/tests/fixtures/input/country/valid.json +0 -64
  195. package/tests/fixtures/input/distribution/animalHousing.json +0 -103
  196. package/tests/fixtures/input/distribution/complete/invalid.json +0 -177
  197. package/tests/fixtures/input/distribution/complete/valid.json +0 -163
  198. package/tests/fixtures/input/distribution/incomplete/valid.json +0 -139
  199. package/tests/fixtures/input/impactAssessment/invalid.json +0 -99
  200. package/tests/fixtures/input/impactAssessment/valid.json +0 -89
  201. package/tests/fixtures/input/input-as-product/invalid.json +0 -57
  202. package/tests/fixtures/input/input-as-product/valid.json +0 -59
  203. package/tests/fixtures/input/mustIncludeId/invalid.json +0 -13
  204. package/tests/fixtures/input/mustIncludeId/valid-multiple-ids.json +0 -31
  205. package/tests/fixtures/input/mustIncludeId/valid.json +0 -22
  206. package/tests/fixtures/input/saplings/invalid.json +0 -58
  207. package/tests/fixtures/input/saplings/valid-no-saplings.json +0 -58
  208. package/tests/fixtures/input/saplings/valid-not-plantation.json +0 -58
  209. package/tests/fixtures/input/saplings/valid.json +0 -58
  210. package/tests/fixtures/integration/distribution/product-yield-invalid.json +0 -54
  211. package/tests/fixtures/management/cycle-overlap/cycles.json +0 -39
  212. package/tests/fixtures/management/cycle-overlap/invalid.json +0 -26
  213. package/tests/fixtures/management/cycle-overlap/valid.json +0 -26
  214. package/tests/fixtures/management/exists/invalid.json +0 -13
  215. package/tests/fixtures/management/exists/valid.json +0 -25
  216. package/tests/fixtures/management/fallow-dates/invalid.json +0 -24
  217. package/tests/fixtures/management/fallow-dates/valid.json +0 -24
  218. package/tests/fixtures/management/termType/invalid-cropland.json +0 -35
  219. package/tests/fixtures/management/termType/invalid-permanent-pasture.json +0 -25
  220. package/tests/fixtures/management/termType/valid-cropland.json +0 -55
  221. package/tests/fixtures/management/termType/valid-no-management.json +0 -13
  222. package/tests/fixtures/management/termType/valid-permanent-pasture.json +0 -35
  223. package/tests/fixtures/measurement/depths/invalid.json +0 -44
  224. package/tests/fixtures/measurement/depths/valid.json +0 -50
  225. package/tests/fixtures/measurement/models/valid.json +0 -33
  226. package/tests/fixtures/measurement/models/warning-no-value.json +0 -30
  227. package/tests/fixtures/measurement/models/warning.json +0 -33
  228. package/tests/fixtures/measurement/pond-measurements/invalid.json +0 -11
  229. package/tests/fixtures/measurement/pond-measurements/valid.json +0 -23
  230. package/tests/fixtures/measurement/required-depths/error.json +0 -71
  231. package/tests/fixtures/measurement/required-depths/valid.json +0 -126
  232. package/tests/fixtures/measurement/required-depths/warning.json +0 -29
  233. package/tests/fixtures/measurement/soilTexture/missing-texture-value.json +0 -227
  234. package/tests/fixtures/measurement/soilTexture/percent-invalid.json +0 -110
  235. package/tests/fixtures/measurement/soilTexture/percent-missing-value.json +0 -43
  236. package/tests/fixtures/measurement/soilTexture/percent-valid.json +0 -110
  237. package/tests/fixtures/measurement/startDate-endDate-required/invalid.json +0 -32
  238. package/tests/fixtures/measurement/startDate-endDate-required/valid.json +0 -46
  239. package/tests/fixtures/measurement/unique/invalid.json +0 -28
  240. package/tests/fixtures/measurement/unique/valid.json +0 -16
  241. package/tests/fixtures/measurement/value-length/invalid.json +0 -46
  242. package/tests/fixtures/measurement/value-length/valid.json +0 -44
  243. package/tests/fixtures/measurement/water-salinity/invalid.json +0 -33
  244. package/tests/fixtures/measurement/water-salinity/valid-brakish.json +0 -40
  245. package/tests/fixtures/measurement/water-salinity/valid.json +0 -33
  246. package/tests/fixtures/organisation/valid.json +0 -26
  247. package/tests/fixtures/practice/croppingDuration/riceGrainInHuskFlooded/invalid.json +0 -63
  248. package/tests/fixtures/practice/croppingDuration/riceGrainInHuskFlooded/valid.json +0 -63
  249. package/tests/fixtures/practice/defaultValue/invalid.json +0 -12
  250. package/tests/fixtures/practice/defaultValue/valid.json +0 -15
  251. package/tests/fixtures/practice/excretaManagement/invalid.json +0 -50
  252. package/tests/fixtures/practice/excretaManagement/valid.json +0 -60
  253. package/tests/fixtures/practice/irrigated-complete/invalid.json +0 -47
  254. package/tests/fixtures/practice/irrigated-complete/valid-incomplete.json +0 -47
  255. package/tests/fixtures/practice/irrigated-complete/valid.json +0 -60
  256. package/tests/fixtures/practice/landCover-products/invalid.json +0 -58
  257. package/tests/fixtures/practice/landCover-products/valid-coverCrop.json +0 -69
  258. package/tests/fixtures/practice/landCover-products/valid.json +0 -58
  259. package/tests/fixtures/practice/liveAnimal-system/invalid.json +0 -58
  260. package/tests/fixtures/practice/liveAnimal-system/valid.json +0 -69
  261. package/tests/fixtures/practice/longFallowDuration/invalid.json +0 -20
  262. package/tests/fixtures/practice/longFallowDuration/valid.json +0 -20
  263. package/tests/fixtures/practice/noTillage/invalid.json +0 -23
  264. package/tests/fixtures/practice/noTillage/valid-value-not-100.json +0 -23
  265. package/tests/fixtures/practice/noTillage/valid.json +0 -21
  266. package/tests/fixtures/practice/pastureGrass/key-termType/invalid.json +0 -16
  267. package/tests/fixtures/practice/pastureGrass/key-termType/valid.json +0 -16
  268. package/tests/fixtures/practice/pastureGrass/key-value/invalid-numbers.json +0 -67
  269. package/tests/fixtures/practice/pastureGrass/key-value/invalid.json +0 -67
  270. package/tests/fixtures/practice/pastureGrass/key-value/valid.json +0 -67
  271. package/tests/fixtures/practice/pastureGrass/permanent-pasture/invalid.json +0 -37
  272. package/tests/fixtures/practice/pastureGrass/permanent-pasture/valid.json +0 -47
  273. package/tests/fixtures/practice/primaryPercent/invalid.json +0 -49
  274. package/tests/fixtures/practice/primaryPercent/valid.json +0 -49
  275. package/tests/fixtures/practice/processingOperation/invalid-no-primary.json +0 -48
  276. package/tests/fixtures/practice/processingOperation/invalid.json +0 -49
  277. package/tests/fixtures/practice/processingOperation/valid-cropland.json +0 -37
  278. package/tests/fixtures/practice/processingOperation/valid.json +0 -49
  279. package/tests/fixtures/practice/productivePhasePermanentCrops/invalid.json +0 -48
  280. package/tests/fixtures/practice/productivePhasePermanentCrops/valid-0-value.json +0 -58
  281. package/tests/fixtures/practice/productivePhasePermanentCrops/valid-no-value.json +0 -47
  282. package/tests/fixtures/practice/productivePhasePermanentCrops/valid.json +0 -48
  283. package/tests/fixtures/practice/site-management/invalid.json +0 -75
  284. package/tests/fixtures/practice/site-management/valid.json +0 -75
  285. package/tests/fixtures/practice/tillage-siteType/valid.json +0 -51
  286. package/tests/fixtures/practice/tillage-siteType/warning.json +0 -42
  287. package/tests/fixtures/practice/tillage-values/invalid-fullTillage.json +0 -61
  288. package/tests/fixtures/practice/tillage-values/invalid-noTillage.json +0 -61
  289. package/tests/fixtures/practice/tillage-values/valid.json +0 -61
  290. package/tests/fixtures/practice/waterRegime/rice/invalid.json +0 -59
  291. package/tests/fixtures/practice/waterRegime/rice/valid-0-value.json +0 -59
  292. package/tests/fixtures/practice/waterRegime/rice/valid.json +0 -58
  293. package/tests/fixtures/product/economicValueShare/invalid.json +0 -31
  294. package/tests/fixtures/product/economicValueShare/valid.json +0 -22
  295. package/tests/fixtures/product/excreta/invalid.json +0 -62
  296. package/tests/fixtures/product/excreta/valid.json +0 -62
  297. package/tests/fixtures/product/excreta/warning.json +0 -53
  298. package/tests/fixtures/product/excreta/with-system/invalid.json +0 -79
  299. package/tests/fixtures/product/excreta/with-system/valid.json +0 -88
  300. package/tests/fixtures/product/excreta/with-system/warning.json +0 -70
  301. package/tests/fixtures/product/fu_ha/invalid.json +0 -49
  302. package/tests/fixtures/product/fu_ha/valid.json +0 -49
  303. package/tests/fixtures/product/primary/invalid.json +0 -22
  304. package/tests/fixtures/product/primary/valid.json +0 -22
  305. package/tests/fixtures/product/value/valid.json +0 -26
  306. package/tests/fixtures/product/value/value-0/error.json +0 -40
  307. package/tests/fixtures/product/value/value-empty/warning.json +0 -23
  308. package/tests/fixtures/product/yield/invalid.json +0 -54
  309. package/tests/fixtures/product/yield/no-value.json +0 -75
  310. package/tests/fixtures/product/yield/valid.json +0 -54
  311. package/tests/fixtures/property/default-value/valid-allowed-exception.json +0 -61
  312. package/tests/fixtures/property/default-value/valid.json +0 -61
  313. package/tests/fixtures/property/default-value/warning.json +0 -61
  314. package/tests/fixtures/property/termType/invalid.json +0 -60
  315. package/tests/fixtures/property/termType/valid.json +0 -60
  316. package/tests/fixtures/property/value-min-max/invalid.json +0 -77
  317. package/tests/fixtures/property/value-min-max/valid-skip-maximum.json +0 -57
  318. package/tests/fixtures/property/value-min-max/valid.json +0 -78
  319. package/tests/fixtures/property/valueType/invalid.json +0 -79
  320. package/tests/fixtures/property/valueType/valid.json +0 -79
  321. package/tests/fixtures/property/volatileSolidsContent/invalid.json +0 -99
  322. package/tests/fixtures/property/volatileSolidsContent/valid.json +0 -99
  323. package/tests/fixtures/shared/coordinates/invalid.json +0 -18
  324. package/tests/fixtures/shared/coordinates/valid.json +0 -18
  325. package/tests/fixtures/shared/data-duplicates/valid.json +0 -113
  326. package/tests/fixtures/shared/data-duplicates/warning.json +0 -172
  327. package/tests/fixtures/shared/duplicated-term-units/invalid-animalProduct.json +0 -61
  328. package/tests/fixtures/shared/duplicated-term-units/invalid-organicFertiliser.json +0 -61
  329. package/tests/fixtures/shared/duplicated-term-units/valid.json +0 -49
  330. package/tests/fixtures/shared/list-country-region/invalid.json +0 -54
  331. package/tests/fixtures/shared/list-country-region/valid.json +0 -54
  332. package/tests/fixtures/shared/list-percent-value/invalid.json +0 -49
  333. package/tests/fixtures/shared/list-percent-value/valid.json +0 -52
  334. package/tests/fixtures/shared/list-valueType/invalid.json +0 -49
  335. package/tests/fixtures/shared/list-valueType/valid.json +0 -49
  336. package/tests/fixtures/shared/list-values-sum-100/management/with-properties/valid.json +0 -91
  337. package/tests/fixtures/shared/list-values-sum-100/measurements/missing-soil.json +0 -46
  338. package/tests/fixtures/shared/list-values-sum-100/measurements/no-depth-high-value.json +0 -63
  339. package/tests/fixtures/shared/list-values-sum-100/measurements/no-depth-valid.json +0 -40
  340. package/tests/fixtures/shared/list-values-sum-100/measurements/with-depth-high-value.json +0 -71
  341. package/tests/fixtures/shared/list-values-sum-100/practices/total-100.json +0 -61
  342. package/tests/fixtures/shared/list-values-sum-100/practices/total-110.json +0 -61
  343. package/tests/fixtures/shared/list-values-sum-100/practices/total-90.json +0 -61
  344. package/tests/fixtures/shared/min-max/value-above.json +0 -31
  345. package/tests/fixtures/shared/min-max/value-below.json +0 -31
  346. package/tests/fixtures/shared/min-max/value-valid.json +0 -45
  347. package/tests/fixtures/shared/model/emissions/invalid.json +0 -102
  348. package/tests/fixtures/shared/model/emissions/valid-variable-tolerance.json +0 -180
  349. package/tests/fixtures/shared/model/emissions/valid.json +0 -102
  350. package/tests/fixtures/shared/model/impacts/invalid.json +0 -75
  351. package/tests/fixtures/shared/model/impacts/valid.json +0 -75
  352. package/tests/fixtures/shared/model/inputs/valid-no-value.json +0 -84
  353. package/tests/fixtures/shared/model/inputs/valid.json +0 -87
  354. package/tests/fixtures/shared/model/inputs/warning.json +0 -87
  355. package/tests/fixtures/shared/model/products/valid-no-value.json +0 -88
  356. package/tests/fixtures/shared/model/products/valid.json +0 -91
  357. package/tests/fixtures/shared/model/products/warning.json +0 -91
  358. package/tests/fixtures/shared/otherModel/invalid.json +0 -69
  359. package/tests/fixtures/shared/otherModel/valid.json +0 -70
  360. package/tests/fixtures/shared/properties-duplicate-values/invalid.json +0 -61
  361. package/tests/fixtures/shared/properties-duplicate-values/valid.json +0 -57
  362. package/tests/fixtures/shared/properties-same-length/invalid.json +0 -62
  363. package/tests/fixtures/shared/properties-same-length/valid.json +0 -52
  364. package/tests/fixtures/shared/unit-percent/invalid.json +0 -34
  365. package/tests/fixtures/shared/unit-percent/valid.json +0 -60
  366. package/tests/fixtures/shared/unit-percent/warning.json +0 -52
  367. package/tests/fixtures/site/cycles-linked-ia/invalid.json +0 -129
  368. package/tests/fixtures/site/cycles-linked-ia/valid.json +0 -129
  369. package/tests/fixtures/site/valid.json +0 -138
  370. package/tests/fixtures/source/valid.json +0 -19
  371. package/tests/fixtures/transformation/excretaManagement/invalid.json +0 -47
  372. package/tests/fixtures/transformation/excretaManagement/valid.json +0 -59
  373. package/tests/fixtures/transformation/inputs-products/invalid.json +0 -43
  374. package/tests/fixtures/transformation/inputs-products/valid.json +0 -43
  375. package/tests/fixtures/transformation/linked-emission/invalid.json +0 -101
  376. package/tests/fixtures/transformation/linked-emission/valid.json +0 -107
  377. package/tests/fixtures/transformation/previousTransformationId/invalid-no-previous.json +0 -127
  378. package/tests/fixtures/transformation/previousTransformationId/invalid-previous-input.json +0 -100
  379. package/tests/fixtures/transformation/previousTransformationId/invalid-product-input.json +0 -106
  380. package/tests/fixtures/transformation/previousTransformationId/invalid-wrong-order.json +0 -136
  381. package/tests/fixtures/transformation/previousTransformationId/valid.json +0 -171
  382. package/tests/integration/__init__.py +0 -0
  383. package/tests/integration/test_product.py +0 -17
  384. package/tests/test_gee.py +0 -10
  385. package/tests/test_utils.py +0 -36
  386. package/tests/test_validation.py +0 -11
  387. package/tests/utils.py +0 -28
  388. package/tests/validators/__init__.py +0 -0
  389. package/tests/validators/test_aggregated_cycle.py +0 -44
  390. package/tests/validators/test_aggregated_shared.py +0 -63
  391. package/tests/validators/test_animal.py +0 -72
  392. package/tests/validators/test_completeness.py +0 -337
  393. package/tests/validators/test_cycle.py +0 -600
  394. package/tests/validators/test_emission.py +0 -170
  395. package/tests/validators/test_impact_assessment.py +0 -80
  396. package/tests/validators/test_indicator.py +0 -120
  397. package/tests/validators/test_infrastructure.py +0 -26
  398. package/tests/validators/test_input.py +0 -434
  399. package/tests/validators/test_management.py +0 -177
  400. package/tests/validators/test_measurement.py +0 -317
  401. package/tests/validators/test_organisation.py +0 -32
  402. package/tests/validators/test_practice.py +0 -490
  403. package/tests/validators/test_product.py +0 -291
  404. package/tests/validators/test_property.py +0 -143
  405. package/tests/validators/test_shared.py +0 -1139
  406. package/tests/validators/test_site.py +0 -151
  407. package/tests/validators/test_source.py +0 -15
  408. package/tests/validators/test_transformation.py +0 -151
  409. package/tests/validators/test_validators.py +0 -74
  410. package/tsconfig.dist.json +0 -9
  411. package/tsconfig.json +0 -25
@@ -1,72 +0,0 @@
1
- import os
2
- import json
3
-
4
- from tests.utils import fixtures_path
5
- from hestia_earth.validation.validators.animal import (
6
- validate_has_animals,
7
- validate_duplicated_feed_inputs,
8
- validate_has_pregnancyRateTotal,
9
- )
10
-
11
-
12
- fixtures_folder = os.path.join(fixtures_path, "animal")
13
- class_path = "hestia_earth.validation.validators.animal"
14
-
15
-
16
- def test_validate_has_animals_valid():
17
- # no products should be valid
18
- assert validate_has_animals({}) is True
19
-
20
- with open(f"{fixtures_folder}/required/valid.json") as f:
21
- cycle = json.load(f)
22
- assert validate_has_animals(cycle) is True
23
-
24
-
25
- def test_validate_has_animals_invalid():
26
- with open(f"{fixtures_folder}/required/invalid.json") as f:
27
- cycle = json.load(f)
28
- assert validate_has_animals(cycle) == {
29
- "level": "warning",
30
- "dataPath": "",
31
- "message": "should specify the herd composition",
32
- }
33
-
34
-
35
- def test_validate_duplicated_feed_inputs_valid():
36
- # no products should be valid
37
- assert validate_duplicated_feed_inputs({}) is True
38
-
39
- with open(f"{fixtures_folder}/duplicated-input-cycle/valid.json") as f:
40
- cycle = json.load(f)
41
- assert validate_duplicated_feed_inputs(cycle) is True
42
-
43
-
44
- def test_validate_duplicated_feed_inputs_invalid():
45
- with open(f"{fixtures_folder}/duplicated-input-cycle/invalid.json") as f:
46
- cycle = json.load(f)
47
- assert validate_duplicated_feed_inputs(cycle) == {
48
- "level": "error",
49
- "dataPath": ".animals[0].inputs[1]",
50
- "message": "must not add the feed input to the Cycle as well",
51
- "params": {"term": {"@type": "Term", "@id": "wheatGrain"}},
52
- }
53
-
54
-
55
- def test_validate_has_pregnancyRateTotal_valid():
56
- # no animals should be valid
57
- assert validate_has_pregnancyRateTotal({}) is True
58
-
59
- with open(f"{fixtures_folder}/pregnancyRateTotal/valid.json") as f:
60
- cycle = json.load(f)
61
- assert validate_has_pregnancyRateTotal(cycle) is True
62
-
63
-
64
- def test_validate_has_pregnancyRateTotal_invalid():
65
- with open(f"{fixtures_folder}/pregnancyRateTotal/invalid.json") as f:
66
- cycle = json.load(f)
67
- assert validate_has_pregnancyRateTotal(cycle) == {
68
- "level": "warning",
69
- "dataPath": ".animals[0].properties",
70
- "message": "should specify the pregnancy rate",
71
- "params": {"expected": "pregnancyRateTotal"},
72
- }
@@ -1,337 +0,0 @@
1
- import os
2
- import json
3
- from unittest.mock import patch
4
- from hestia_earth.schema import SiteSiteType, TermTermType, CompletenessField
5
-
6
- from tests.utils import FUEL_TERM_IDS, fixtures_path, fake_get_terms
7
- from hestia_earth.validation.validators.completeness import (
8
- validate_completeness,
9
- _validate_all_values,
10
- _validate_cropland,
11
- _validate_material,
12
- _validate_animalPopulation,
13
- _validate_freshForage,
14
- _validate_ingredient,
15
- validate_completeness_blank_nodes,
16
- )
17
-
18
- fixtures_folder = os.path.join(fixtures_path, "completeness")
19
- class_path = "hestia_earth.validation.validators.completeness"
20
-
21
-
22
- @patch(f"{class_path}.get_terms", side_effect=fake_get_terms)
23
- def test_validate_completeness_valid(*args):
24
- with open(f"{fixtures_folder}/valid.json") as f:
25
- data = json.load(f)
26
- assert validate_completeness({"completeness": data}) is True
27
-
28
-
29
- def test_validate_all_values_valid():
30
- with open(f"{fixtures_folder}/valid.json") as f:
31
- data = json.load(f)
32
- assert _validate_all_values(data) is True
33
-
34
-
35
- def test_validate_all_values_warning():
36
- with open(f"{fixtures_folder}/all-values/warning.json") as f:
37
- data = json.load(f)
38
- assert _validate_all_values(data) == {
39
- "level": "warning",
40
- "dataPath": ".completeness",
41
- "message": "may not all be set to false",
42
- }
43
-
44
-
45
- def test_validate_cropland_valid():
46
- with open(f"{fixtures_folder}/cropland/site.json") as f:
47
- site = json.load(f)
48
- with open(f"{fixtures_folder}/cropland/valid.json") as f:
49
- data = json.load(f)
50
- assert _validate_cropland(data, site) is True
51
-
52
- # also works if siteType is not cropland
53
- site["siteType"] = SiteSiteType.LAKE.value
54
- data[TermTermType.EXCRETA.value] = False
55
- assert _validate_cropland(data, site) is True
56
-
57
-
58
- def test_validate_cropland_warning():
59
- with open(f"{fixtures_folder}/cropland/site.json") as f:
60
- site = json.load(f)
61
- with open(f"{fixtures_folder}/cropland/warning.json") as f:
62
- data = json.load(f)
63
- assert _validate_cropland(data, site) == [
64
- {
65
- "level": "warning",
66
- "dataPath": ".completeness.animalFeed",
67
- "message": "should be true for site of type cropland",
68
- },
69
- {
70
- "level": "warning",
71
- "dataPath": ".completeness.excreta",
72
- "message": "should be true for site of type cropland",
73
- },
74
- ]
75
-
76
-
77
- @patch(f"{class_path}.get_terms", side_effect=fake_get_terms)
78
- def test_validate_material_valid(*args):
79
- with open(
80
- f"{fixtures_folder}/{CompletenessField.MATERIAL.value}/valid-incomplete.json"
81
- ) as f:
82
- data = json.load(f)
83
- assert _validate_material(data) is True
84
-
85
- with open(
86
- f"{fixtures_folder}/{CompletenessField.MATERIAL.value}/valid-no-fuel.json"
87
- ) as f:
88
- data = json.load(f)
89
- assert _validate_material(data) is True
90
-
91
- with open(
92
- f"{fixtures_folder}/{CompletenessField.MATERIAL.value}/valid-fuel-material.json"
93
- ) as f:
94
- data = json.load(f)
95
- assert _validate_material(data) is True
96
-
97
-
98
- @patch(f"{class_path}.get_terms", side_effect=fake_get_terms)
99
- def test_validate_material_error(*args):
100
- with open(f"{fixtures_folder}/{CompletenessField.MATERIAL.value}/error.json") as f:
101
- data = json.load(f)
102
- assert _validate_material(data) == {
103
- "level": "error",
104
- "dataPath": f".completeness.{CompletenessField.MATERIAL.value}",
105
- "message": "must be set to false when specifying fuel use",
106
- "params": {"allowedValues": FUEL_TERM_IDS},
107
- }
108
-
109
-
110
- def test_validate_animalPopulation_valid(*args):
111
- with open(
112
- f"{fixtures_folder}/{CompletenessField.ANIMALPOPULATION.value}/valid-incomplete.json"
113
- ) as f:
114
- data = json.load(f)
115
- assert _validate_animalPopulation(data) is True
116
-
117
- with open(
118
- f"{fixtures_folder}/{CompletenessField.ANIMALPOPULATION.value}/valid-no-liveAnimals.json"
119
- ) as f:
120
- data = json.load(f)
121
- assert _validate_animalPopulation(data) is True
122
-
123
- with open(
124
- f"{fixtures_folder}/{CompletenessField.ANIMALPOPULATION.value}/valid-animals.json"
125
- ) as f:
126
- data = json.load(f)
127
- assert _validate_animalPopulation(data) is True
128
-
129
-
130
- def test_validate_animalPopulation_error(*args):
131
- with open(
132
- f"{fixtures_folder}/{CompletenessField.ANIMALPOPULATION.value}/invalid.json"
133
- ) as f:
134
- data = json.load(f)
135
- assert _validate_animalPopulation(data) == {
136
- "level": "error",
137
- "dataPath": f".completeness.{CompletenessField.ANIMALPOPULATION.value}",
138
- "message": "animal population must not be complete",
139
- }
140
-
141
-
142
- @patch(f"{class_path}.get_terms", side_effect=fake_get_terms)
143
- def test_validate_freshForage_valid(*args):
144
- with open(
145
- f"{fixtures_folder}/{CompletenessField.FRESHFORAGE.value}/valid-animals.json"
146
- ) as f:
147
- data = json.load(f)
148
- assert _validate_freshForage(data, data.get("site")) is True
149
-
150
- with open(
151
- f"{fixtures_folder}/{CompletenessField.FRESHFORAGE.value}/valid-animal-inputs.json"
152
- ) as f:
153
- data = json.load(f)
154
- assert _validate_freshForage(data, data.get("site")) is True
155
-
156
- with open(
157
- f"{fixtures_folder}/{CompletenessField.FRESHFORAGE.value}/valid-products.json"
158
- ) as f:
159
- data = json.load(f)
160
- assert _validate_freshForage(data, data.get("site")) is True
161
-
162
- with open(
163
- f"{fixtures_folder}/{CompletenessField.FRESHFORAGE.value}/valid-not-liveAnimal.json"
164
- ) as f:
165
- data = json.load(f)
166
- assert _validate_freshForage(data, data.get("site")) is True
167
-
168
- with open(
169
- f"{fixtures_folder}/{CompletenessField.FRESHFORAGE.value}/valid-not-grazing-liveAnimal.json"
170
- ) as f:
171
- data = json.load(f)
172
- assert _validate_freshForage(data, data.get("site")) is True
173
-
174
-
175
- @patch(f"{class_path}.get_terms", side_effect=fake_get_terms)
176
- def test_validate_freshForage_error(*args):
177
- with open(
178
- f"{fixtures_folder}/{CompletenessField.FRESHFORAGE.value}/error-animals.json"
179
- ) as f:
180
- data = json.load(f)
181
- assert _validate_freshForage(data, data.get("site")) == {
182
- "level": "error",
183
- "dataPath": f".completeness.{CompletenessField.FRESHFORAGE.value}",
184
- "message": "must have inputs representing the forage when set to true",
185
- "params": {"siteType": "permanent pasture"},
186
- }
187
-
188
- with open(
189
- f"{fixtures_folder}/{CompletenessField.FRESHFORAGE.value}/error-products.json"
190
- ) as f:
191
- data = json.load(f)
192
- assert _validate_freshForage(data, data.get("site")) == {
193
- "level": "error",
194
- "dataPath": f".completeness.{CompletenessField.FRESHFORAGE.value}",
195
- "message": "must have inputs representing the forage when set to true",
196
- "params": {"siteType": "permanent pasture"},
197
- }
198
-
199
-
200
- @patch(f"{class_path}.get_terms", side_effect=fake_get_terms)
201
- def test_validate_ingredient_valid(*args):
202
- with open(
203
- f"{fixtures_folder}/{CompletenessField.INGREDIENT.value}/valid.json"
204
- ) as f:
205
- data = json.load(f)
206
- assert _validate_ingredient(data, data.get("site")) is True
207
-
208
- with open(
209
- f"{fixtures_folder}/{CompletenessField.INGREDIENT.value}/valid-agri-food-processor-complete.json"
210
- ) as f:
211
- data = json.load(f)
212
- assert _validate_ingredient(data, data.get("site")) is True
213
-
214
- with open(
215
- f"{fixtures_folder}/{CompletenessField.INGREDIENT.value}/valid-agri-food-processor-incomplete.json"
216
- ) as f:
217
- data = json.load(f)
218
- assert _validate_ingredient(data, data.get("site")) is True
219
-
220
-
221
- @patch(f"{class_path}.get_terms", side_effect=fake_get_terms)
222
- def test_validate_ingredient_error(*args):
223
- with open(
224
- f"{fixtures_folder}/{CompletenessField.INGREDIENT.value}/invalid.json"
225
- ) as f:
226
- data = json.load(f)
227
- assert _validate_ingredient(data, data.get("site")) == {
228
- "level": "error",
229
- "dataPath": f".completeness.{CompletenessField.INGREDIENT.value}",
230
- "message": "ingredients should be complete",
231
- "params": {"siteType": "cropland"},
232
- }
233
-
234
- with open(
235
- f"{fixtures_folder}/{CompletenessField.INGREDIENT.value}/invalid-agri-food-processor.json"
236
- ) as f:
237
- data = json.load(f)
238
- assert _validate_ingredient(data, data.get("site")) == {
239
- "level": "error",
240
- "dataPath": f".completeness.{CompletenessField.INGREDIENT.value}",
241
- "message": "must have inputs to represent ingredients",
242
- "params": {"siteType": "agri-food processor"},
243
- }
244
-
245
-
246
- def test_validate_completeness_blank_nodes_valid():
247
- with open(f"{fixtures_folder}/blank-nodes/valid.json") as f:
248
- data = json.load(f)
249
- assert validate_completeness_blank_nodes(data) is True
250
-
251
-
252
- def test_validate_completeness_blank_nodes_invalid():
253
- with open(f"{fixtures_folder}/blank-nodes/invalid.json") as f:
254
- data = json.load(f)
255
- assert validate_completeness_blank_nodes(data) == [
256
- {
257
- "dataPath": ".animals[0]",
258
- "level": "error",
259
- "message": "must not be blank if complete",
260
- "params": {
261
- "term": {
262
- "@id": "chicken",
263
- "@type": "Term",
264
- "termType": "liveAnimal",
265
- },
266
- "expected": "animalPopulation",
267
- },
268
- },
269
- {
270
- "dataPath": ".inputs[2]",
271
- "level": "error",
272
- "message": "must not be blank if complete",
273
- "params": {
274
- "term": {
275
- "@id": "diesel",
276
- "@type": "Term",
277
- "termType": "fuel",
278
- },
279
- "expected": "electricityFuel",
280
- },
281
- },
282
- {
283
- "dataPath": ".products[0]",
284
- "level": "error",
285
- "message": "must not be blank if complete",
286
- "params": {
287
- "term": {
288
- "@id": "aboveGroundCropResidueTotal",
289
- "@type": "Term",
290
- "termType": "cropResidue",
291
- },
292
- "expected": "cropResidue",
293
- },
294
- },
295
- {
296
- "dataPath": ".products[1]",
297
- "level": "error",
298
- "message": "must not be blank if complete",
299
- "params": {
300
- "term": {
301
- "@id": "aboveGroundCropResidueBurnt",
302
- "@type": "Term",
303
- "termType": "cropResidue",
304
- },
305
- "expected": "cropResidue",
306
- },
307
- },
308
- {
309
- "dataPath": ".products[2]",
310
- "level": "error",
311
- "message": "must not be blank if complete",
312
- "params": {
313
- "term": {
314
- "@id": "aboveGroundCropResidueLeftOnField",
315
- "@type": "Term",
316
- "termType": "cropResidue",
317
- },
318
- "expected": "cropResidue",
319
- },
320
- },
321
- ]
322
-
323
- with open(f"{fixtures_folder}/blank-nodes/agri-food processor-invalid.json") as f:
324
- data = json.load(f)
325
- assert validate_completeness_blank_nodes(data, data.get("site")) == {
326
- "dataPath": ".inputs[0]",
327
- "level": "error",
328
- "message": "must not be blank if complete",
329
- "params": {
330
- "term": {
331
- "@id": "maizeGrain",
332
- "@type": "Term",
333
- "termType": "crop",
334
- },
335
- "expected": "ingredient",
336
- },
337
- }