mock-einvoice 0.1.0__tar.gz → 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/CHANGELOG.md +34 -0
  2. {mock_einvoice-0.1.0/mock_einvoice.egg-info → mock_einvoice-0.2.0}/PKG-INFO +13 -10
  3. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/README.md +12 -9
  4. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0/mock_einvoice.egg-info}/PKG-INFO +13 -10
  5. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mock_einvoice.egg-info/SOURCES.txt +2 -0
  6. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/__init__.py +2 -2
  7. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/__init__.py +15 -11
  8. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/peppol.py +4 -37
  9. mock_einvoice-0.2.0/mockeinvoice/rules/peppol_national.py +968 -0
  10. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/pyproject.toml +1 -1
  11. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/__init__.py +17 -0
  12. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_buyer.py +8 -8
  13. mock_einvoice-0.2.0/tests/test_peppol_national_rules.py +691 -0
  14. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_peppol_rules.py +29 -35
  15. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_rules.py +9 -10
  16. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_server.py +6 -7
  17. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_supplier.py +5 -7
  18. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_upstream.py +15 -17
  19. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/upstream.py +3 -1
  20. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tools/peppol-files.tsv +66 -0
  21. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/LICENSE +0 -0
  22. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/MANIFEST.in +0 -0
  23. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mock_einvoice.egg-info/dependency_links.txt +0 -0
  24. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mock_einvoice.egg-info/entry_points.txt +0 -0
  25. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mock_einvoice.egg-info/top_level.txt +0 -0
  26. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/__main__.py +0 -0
  27. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/buyer.py +0 -0
  28. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/model.py +0 -0
  29. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/response.py +0 -0
  30. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/LICENSE-EUPL-1.2.txt +0 -0
  31. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/calculation.py +0 -0
  32. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/codelists.py +0 -0
  33. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/en16931.py +0 -0
  34. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/en16931_codes.py +0 -0
  35. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/en16931_ubl.py +0 -0
  36. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/en16931_vat.py +0 -0
  37. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/german.py +0 -0
  38. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/peppol_de.py +0 -0
  39. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/peppol_response.py +0 -0
  40. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/published.py +0 -0
  41. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/tree.py +0 -0
  42. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/ublsyntax.py +0 -0
  43. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/untdid.py +0 -0
  44. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/rules/xrechnung.py +0 -0
  45. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/server.py +0 -0
  46. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/specification.py +0 -0
  47. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/supplier.py +0 -0
  48. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/mockeinvoice/ubl.py +0 -0
  49. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/setup.cfg +0 -0
  50. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/FT G2G_TD01 con Allegato, Bonifico e Split Payment.xml +0 -0
  51. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/LICENSE-EUPL-1.2.txt +0 -0
  52. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/README.md +0 -0
  53. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/guide-example1.xml +0 -0
  54. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/guide-example2.xml +0 -0
  55. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/guide-example3.xml +0 -0
  56. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/issue116.xml +0 -0
  57. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/sample-discount-price.xml +0 -0
  58. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/ubl-tc434-creditnote1.xml +0 -0
  59. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/ubl-tc434-example1.xml +0 -0
  60. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/ubl-tc434-example10.xml +0 -0
  61. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/ubl-tc434-example2.xml +0 -0
  62. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/ubl-tc434-example3.xml +0 -0
  63. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/ubl-tc434-example4.xml +0 -0
  64. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/ubl-tc434-example5.xml +0 -0
  65. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/ubl-tc434-example6.xml +0 -0
  66. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/ubl-tc434-example7.xml +0 -0
  67. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/ubl-tc434-example8.xml +0 -0
  68. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/ubl-tc434-example9.xml +0 -0
  69. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-01.xml +0 -0
  70. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-02.xml +0 -0
  71. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-03.xml +0 -0
  72. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-04.xml +0 -0
  73. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-05.xml +0 -0
  74. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-06.xml +0 -0
  75. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-07.xml +0 -0
  76. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-08.xml +0 -0
  77. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-09.xml +0 -0
  78. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-10.xml +0 -0
  79. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-11.xml +0 -0
  80. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-12.xml +0 -0
  81. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-13.xml +0 -0
  82. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-14.xml +0 -0
  83. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-15.xml +0 -0
  84. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-16.xml +0 -0
  85. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-17.xml +0 -0
  86. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-18.xml +0 -0
  87. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-19.xml +0 -0
  88. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-20.xml +0 -0
  89. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-21.xml +0 -0
  90. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-22.xml +0 -0
  91. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-23.xml +0 -0
  92. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-24.xml +0 -0
  93. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-25.xml +0 -0
  94. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-26.xml +0 -0
  95. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-27.xml +0 -0
  96. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-28.xml +0 -0
  97. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-29.xml +0 -0
  98. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-30.xml +0 -0
  99. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-31.xml +0 -0
  100. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-32.xml +0 -0
  101. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-33.xml +0 -0
  102. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-36.xml +0 -0
  103. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-37.xml +0 -0
  104. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-38.xml +0 -0
  105. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-41.xml +0 -0
  106. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-42.xml +0 -0
  107. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-43.xml +0 -0
  108. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-44.xml +0 -0
  109. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-45.xml +0 -0
  110. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-46.xml +0 -0
  111. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-47.xml +0 -0
  112. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-48.xml +0 -0
  113. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-49.xml +0 -0
  114. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-50.xml +0 -0
  115. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-51.xml +0 -0
  116. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-52.xml +0 -0
  117. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-53.xml +0 -0
  118. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-54.xml +0 -0
  119. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-55.xml +0 -0
  120. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-56.xml +0 -0
  121. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-57.xml +0 -0
  122. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-61.xml +0 -0
  123. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-62.xml +0 -0
  124. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-63.xml +0 -0
  125. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-64.xml +0 -0
  126. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-65.xml +0 -0
  127. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-CL-16.xml +0 -0
  128. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-CL-18.xml +0 -0
  129. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-CL-24.xml +0 -0
  130. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-CO-13.xml +0 -0
  131. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-CO-15-2.xml +0 -0
  132. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-CO-15.xml +0 -0
  133. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-CO-25.xml +0 -0
  134. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-E-01.xml +0 -0
  135. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/BR-S-09.xml +0 -0
  136. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/UBL-SR-42.xml +0 -0
  137. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/UBL-SR-43.xml +0 -0
  138. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/UBL-SR-44.xml +0 -0
  139. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/CreditNote-unit-UBL/UBL-SR-47.xml +0 -0
  140. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-01.xml +0 -0
  141. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-02.xml +0 -0
  142. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-03.xml +0 -0
  143. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-04.xml +0 -0
  144. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-05.xml +0 -0
  145. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-06.xml +0 -0
  146. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-07.xml +0 -0
  147. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-08.xml +0 -0
  148. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-09.xml +0 -0
  149. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-10.xml +0 -0
  150. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-11.xml +0 -0
  151. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-12.xml +0 -0
  152. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-13.xml +0 -0
  153. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-14.xml +0 -0
  154. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-15.xml +0 -0
  155. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-16.xml +0 -0
  156. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-17.xml +0 -0
  157. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-18.xml +0 -0
  158. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-19.xml +0 -0
  159. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-20.xml +0 -0
  160. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-21.xml +0 -0
  161. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-22.xml +0 -0
  162. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-23.xml +0 -0
  163. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-24.xml +0 -0
  164. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-25.xml +0 -0
  165. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-26.xml +0 -0
  166. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-27.xml +0 -0
  167. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-28.xml +0 -0
  168. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-29.xml +0 -0
  169. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-30.xml +0 -0
  170. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-31.xml +0 -0
  171. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-32.xml +0 -0
  172. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-33.xml +0 -0
  173. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-36.xml +0 -0
  174. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-37.xml +0 -0
  175. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-38.xml +0 -0
  176. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-41.xml +0 -0
  177. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-42.xml +0 -0
  178. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-43.xml +0 -0
  179. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-44.xml +0 -0
  180. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-45.xml +0 -0
  181. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-46.xml +0 -0
  182. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-47.xml +0 -0
  183. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-48.xml +0 -0
  184. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-49.xml +0 -0
  185. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-50.xml +0 -0
  186. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-51.xml +0 -0
  187. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-52.xml +0 -0
  188. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-53.xml +0 -0
  189. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-54.xml +0 -0
  190. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-55.xml +0 -0
  191. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-56.xml +0 -0
  192. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-57.xml +0 -0
  193. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-61.xml +0 -0
  194. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-62.xml +0 -0
  195. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-63.xml +0 -0
  196. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-64.xml +0 -0
  197. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-65.xml +0 -0
  198. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-AE-01.xml +0 -0
  199. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-AE-02.xml +0 -0
  200. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-AE-03.xml +0 -0
  201. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-AE-04.xml +0 -0
  202. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-AE-05.xml +0 -0
  203. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-AE-06.xml +0 -0
  204. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-AE-07.xml +0 -0
  205. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-AE-08.xml +0 -0
  206. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-AE-09.xml +0 -0
  207. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-AE-10.xml +0 -0
  208. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-01.xml +0 -0
  209. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-03.xml +0 -0
  210. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-04.xml +0 -0
  211. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-05.xml +0 -0
  212. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-06.xml +0 -0
  213. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-07.xml +0 -0
  214. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-10.xml +0 -0
  215. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-11.xml +0 -0
  216. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-13.xml +0 -0
  217. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-14.xml +0 -0
  218. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-15.xml +0 -0
  219. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-16.xml +0 -0
  220. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-17.xml +0 -0
  221. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-18.xml +0 -0
  222. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-19.xml +0 -0
  223. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-20.xml +0 -0
  224. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-21.xml +0 -0
  225. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-23.xml +0 -0
  226. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CL-24.xml +0 -0
  227. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-03.xml +0 -0
  228. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-04.xml +0 -0
  229. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-09.xml +0 -0
  230. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-10.xml +0 -0
  231. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-11.xml +0 -0
  232. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-12.xml +0 -0
  233. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-13.xml +0 -0
  234. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-14.xml +0 -0
  235. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-15-2.xml +0 -0
  236. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-15.xml +0 -0
  237. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-16.xml +0 -0
  238. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-17.xml +0 -0
  239. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-18.xml +0 -0
  240. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-19.xml +0 -0
  241. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-20.xml +0 -0
  242. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-21.xml +0 -0
  243. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-22.xml +0 -0
  244. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-23.xml +0 -0
  245. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-24.xml +0 -0
  246. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-25.xml +0 -0
  247. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-CO-26.xml +0 -0
  248. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-E-01.xml +0 -0
  249. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-E-02.xml +0 -0
  250. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-E-03.xml +0 -0
  251. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-E-04.xml +0 -0
  252. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-E-05.xml +0 -0
  253. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-E-06.xml +0 -0
  254. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-E-07.xml +0 -0
  255. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-E-08.xml +0 -0
  256. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-E-09.xml +0 -0
  257. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-E-10.xml +0 -0
  258. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-G-01.xml +0 -0
  259. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-G-02.xml +0 -0
  260. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-G-03.xml +0 -0
  261. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-G-04.xml +0 -0
  262. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-G-05.xml +0 -0
  263. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-G-06.xml +0 -0
  264. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-G-07.xml +0 -0
  265. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-G-08.xml +0 -0
  266. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-G-09.xml +0 -0
  267. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-G-10.xml +0 -0
  268. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IC-01.xml +0 -0
  269. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IC-02.xml +0 -0
  270. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IC-03.xml +0 -0
  271. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IC-04.xml +0 -0
  272. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IC-05.xml +0 -0
  273. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IC-06.xml +0 -0
  274. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IC-07.xml +0 -0
  275. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IC-08.xml +0 -0
  276. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IC-09.xml +0 -0
  277. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IC-11.xml +0 -0
  278. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IC-12.xml +0 -0
  279. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IG-01.xml +0 -0
  280. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IG-02.xml +0 -0
  281. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IG-03.xml +0 -0
  282. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IG-04.xml +0 -0
  283. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IG-05.xml +0 -0
  284. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IG-06.xml +0 -0
  285. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IG-07.xml +0 -0
  286. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IG-08-1.xml +0 -0
  287. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IG-08-2.xml +0 -0
  288. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IG-08-3.xml +0 -0
  289. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IG-09.xml +0 -0
  290. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IG-10.xml +0 -0
  291. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IP-01.xml +0 -0
  292. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IP-02.xml +0 -0
  293. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IP-03.xml +0 -0
  294. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IP-04.xml +0 -0
  295. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IP-05.xml +0 -0
  296. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IP-06.xml +0 -0
  297. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IP-07.xml +0 -0
  298. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IP-08-1.xml +0 -0
  299. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IP-08-2.xml +0 -0
  300. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IP-08-3.xml +0 -0
  301. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IP-09.xml +0 -0
  302. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-IP-10.xml +0 -0
  303. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-O-01.xml +0 -0
  304. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-O-02.xml +0 -0
  305. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-O-03.xml +0 -0
  306. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-O-04.xml +0 -0
  307. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-O-05.xml +0 -0
  308. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-O-06.xml +0 -0
  309. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-O-07.xml +0 -0
  310. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-O-08.xml +0 -0
  311. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-O-09.xml +0 -0
  312. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-O-10.xml +0 -0
  313. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-O-11.xml +0 -0
  314. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-O-12.xml +0 -0
  315. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-O-13.xml +0 -0
  316. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-O-14.xml +0 -0
  317. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-S-01.xml +0 -0
  318. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-S-02.xml +0 -0
  319. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-S-03.xml +0 -0
  320. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-S-04.xml +0 -0
  321. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-S-05.xml +0 -0
  322. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-S-06.xml +0 -0
  323. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-S-07.xml +0 -0
  324. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-S-08-1.xml +0 -0
  325. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-S-08-2.xml +0 -0
  326. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-S-08-3.xml +0 -0
  327. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-S-09.xml +0 -0
  328. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-S-10.xml +0 -0
  329. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-Z-01.xml +0 -0
  330. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-Z-02.xml +0 -0
  331. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-Z-03.xml +0 -0
  332. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-Z-04.xml +0 -0
  333. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-Z-05.xml +0 -0
  334. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-Z-06.xml +0 -0
  335. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-Z-07.xml +0 -0
  336. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-Z-08.xml +0 -0
  337. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-Z-09.xml +0 -0
  338. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/BR-Z-10.xml +0 -0
  339. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/UBL-DT-01.xml +0 -0
  340. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/UBL-DT-06.xml +0 -0
  341. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/UBL-DT-07.xml +0 -0
  342. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/UBL-SR-12.xml +0 -0
  343. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/UBL-SR-18.xml +0 -0
  344. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/UBL-SR-42.xml +0 -0
  345. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/UBL-SR-44.xml +0 -0
  346. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/en16931/unit/Invoice-unit-UBL/UBL-SR-47.xml +0 -0
  347. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/LICENSE-Apache-2.0.txt +0 -0
  348. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/README.md +0 -0
  349. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/extension/04.01a-INVOICE_ubl.xml +0 -0
  350. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/extension/04.02a-INVOICE_ubl.xml +0 -0
  351. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/extension/04.03a-INVOICE_ubl.xml +0 -0
  352. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/extension/04.04a-INVOICE_ubl.xml +0 -0
  353. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/extension/05.01a-INVOICE_ubl.xml +0 -0
  354. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.01a-INVOICE_ubl.xml +0 -0
  355. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.02a-INVOICE_ubl.xml +0 -0
  356. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.03a-INVOICE_ubl.xml +0 -0
  357. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.04a-INVOICE_ubl.xml +0 -0
  358. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.05a-INVOICE_ubl.xml +0 -0
  359. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.06a-INVOICE_ubl.xml +0 -0
  360. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.07a-INVOICE_ubl.xml +0 -0
  361. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.08a-INVOICE_ubl.xml +0 -0
  362. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.09a-INVOICE_ubl.xml +0 -0
  363. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.10a-INVOICE_ubl.xml +0 -0
  364. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.11a-INVOICE_ubl.xml +0 -0
  365. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.12a-INVOICE_ubl.xml +0 -0
  366. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.13a-INVOICE_ubl.xml +0 -0
  367. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.14a-INVOICE_ubl.xml +0 -0
  368. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.15a-INVOICE_ubl.xml +0 -0
  369. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.17a-INVOICE_ubl.xml +0 -0
  370. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.18a-INVOICE_ubl.xml +0 -0
  371. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.19a-INVOICE_ubl.xml +0 -0
  372. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.20a-INVOICE_ubl.xml +0 -0
  373. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/01.21a-INVOICE_ubl.xml +0 -0
  374. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/02.01a-INVOICE_ubl.xml +0 -0
  375. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/02.02a-INVOICE_ubl.xml +0 -0
  376. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/02.03a-INVOICE_ubl.xml +0 -0
  377. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/02.04a-INVOICE_ubl.xml +0 -0
  378. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/02.05a-INVOICE_ubl.xml +0 -0
  379. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/02.06a-INVOICE_ubl.xml +0 -0
  380. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/03.01a-INVOICE_ubl.xml +0 -0
  381. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/03.02a-INVOICE_ubl.xml +0 -0
  382. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/03.03a-INVOICE_ubl.xml +0 -0
  383. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/03.04a-INVOICE_ubl.xml +0 -0
  384. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/03.05a-INVOICE_ubl.xml +0 -0
  385. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/03.06a-INVOICE_ubl.xml +0 -0
  386. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/business-cases/standard/03.07a-INVOICE_ubl.xml +0 -0
  387. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/technical-cases/cius/01.01_comprehensive_test_ubl.xml +0 -0
  388. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/technical-cases/cius/01.02_comprehensive_test_ubl.xml +0 -0
  389. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/technical-cases/cius/01.03_comprehensive_test_ubl.xml +0 -0
  390. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/technical-cases/cius/01.04_comprehensive_test_ubl.xml +0 -0
  391. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/technical-cases/cius/01.05_minimal_test_ubl.xml +0 -0
  392. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/technical-cases/cius/01.06_minimal_test_ubl.xml +0 -0
  393. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/external/xrechnung/technical-cases/cvd/02.01a-cvd_INVOICE_ubl.xml +0 -0
  394. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/peppol-creditnote.xml +0 -0
  395. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/peppol-invoice.xml +0 -0
  396. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/peppol-response.xml +0 -0
  397. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/samples/xrechnung-invoice.xml +0 -0
  398. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_business_rules.py +0 -0
  399. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_code_rules.py +0 -0
  400. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_model.py +0 -0
  401. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_peppol_de_rules.py +0 -0
  402. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_reading.py +0 -0
  403. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_refusals.py +0 -0
  404. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_response.py +0 -0
  405. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_ubl_rules.py +0 -0
  406. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_vat_rules.py +0 -0
  407. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_writing.py +0 -0
  408. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tests/test_xrechnung_rules.py +0 -0
  409. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tools/code_lists.py +0 -0
  410. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tools/fetch_peppol.py +0 -0
  411. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tools/peppol-response-files.tsv +0 -0
  412. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tools/published_rules.py +0 -0
  413. {mock_einvoice-0.1.0 → mock_einvoice-0.2.0}/tools/ubl_syntax.py +0 -0
@@ -10,6 +10,40 @@ says so where it does.
10
10
 
11
11
  Nothing yet.
12
12
 
13
+ ## [0.2.0] - 2026-10-07
14
+
15
+ Every rule Peppol BIS Billing publishes is now built: the 71 for a seller in
16
+ Denmark, Greece, Iceland, Italy, the Netherlands, Norway or Sweden were the
17
+ last. **It changes what such a document gets:** it was "not judged" and the
18
+ server turned it away, and it is now `valid` or `invalid`.
19
+
20
+ ### Added
21
+
22
+ - **Peppol's rules for a seller in Denmark, Greece, Iceland, Italy, the
23
+ Netherlands, Norway and Sweden** ([#18]): 71 rules, 61 fatal, in
24
+ `mockeinvoice/rules/peppol_national.py`. Every rule Peppol BIS Billing
25
+ 3.0.21 publishes is now built, 165 in all. All 282 cases Peppol publishes
26
+ for these rules agree. Iceland's ten have no published cases and rest on
27
+ this project's tests. **Changes behaviour:** a Peppol document from one of
28
+ those seven countries was `not judged`, and the server turned it away with
29
+ `NOT-JUDGED`. It is now `valid` or `invalid`. Peppol's own Swedish example
30
+ is `valid`.
31
+ - `tools/fetch_peppol.py` fetches the unit tests for those countries and
32
+ Peppol's three national examples as well: 167 files, from 101.
33
+
34
+ ### Changed
35
+
36
+ - **No document is `not judged` any more.** The verdict, the server's
37
+ `NOT-JUDGED` and `Report.not_built` are kept for a rule a specification
38
+ publishes before this package has it. `Report.not_applicable` is empty for
39
+ a Peppol document, where it listed the 71.
40
+
41
+ ### Removed
42
+
43
+ - `mockeinvoice.rules.peppol.SCOPES`, `sellers_countries` and `from_`, which
44
+ said which unbuilt national rules a document could wait on. Nothing is
45
+ left for them to say.
46
+
13
47
  ## [0.1.0] - 2026-10-07
14
48
 
15
49
  The first release. It reads and writes UBL invoices and credit notes and
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mock-einvoice
3
- Version: 0.1.0
3
+ Version: 0.2.0
4
4
  Summary: A mock e-invoicing partner: EN 16931 invoices in and out, with the responses that follow. Zero dependencies.
5
5
  License: MIT AND EUPL-1.2
6
6
  Project-URL: Repository, https://github.com/rseufert/mock-einvoice
@@ -39,13 +39,13 @@ python3 -m pip install mock-einvoice
39
39
  mock-einvoice --port 8100
40
40
  ```
41
41
 
42
- It reads and writes UBL invoices and credit notes, and the Peppol Invoice Response that answers one, and holds them to their published rules: invoices to all 979 rules of the EN 16931 core, to Peppol's own 63 and the 31 it has for Germany, and to the 34 of a standard XRechnung document; responses to all 82 of theirs. Over HTTP it is a buyer that takes invoices in and answers the Peppol ones, and a supplier that sends them and takes the answers.
42
+ It reads and writes UBL invoices and credit notes, and the Peppol Invoice Response that answers one, and holds them to their published rules: invoices to all 979 rules of the EN 16931 core, to all 165 of Peppol's (its own 63, the 31 it has for Germany and the 71 for seven other countries), and to the 34 of a standard XRechnung document; responses to all 82 of theirs. Over HTTP it is a buyer that takes invoices in and answers the Peppol ones, and a supplier that sends them and takes the answers.
43
43
 
44
- **What 0.1.0 is not:**
44
+ **What 0.2.0 is not:**
45
45
 
46
46
  - **It writes no invoices of its own.** The supplier sends the documents it is given.
47
47
  - **It knows nothing of the other mocks.** Writing an invoice from one of mock-sap's billing documents, and saying "paid" when SAP has cleared it, is integration, and belongs in [mock-acme](https://github.com/rseufert/mock-acme) with the rest of it. It is not built there yet.
48
- - **A Peppol document from a seller in Denmark, Greece, Iceland, Italy, the Netherlands, Norway or Sweden is at best "not judged"**, and the server does not take it in: Peppol's 71 rules for those countries are not built ([#18](https://github.com/rseufert/mock-einvoice/issues/18)). An XRechnung document, and a Peppol document from Germany or from a country Peppol has no national rules for, can be "valid".
48
+ - **Peppol's ten rules for a seller in Iceland are held to this project's tests only.** Peppol publishes unit tests for its rules for Denmark, Greece, Italy, the Netherlands, Norway and Sweden, and every case agrees here; for Iceland it publishes none. Those ten were written from the same reading of the rule file as the tests that hold them, so a misreading would be in both.
49
49
  - **No CII, no XRechnung Extension, no ZUGFeRD**, and no transport: see [What it refuses](#what-it-refuses) and [Known to be wrong, or not real](#known-to-be-wrong-or-not-real).
50
50
 
51
51
  ## What is built
@@ -100,12 +100,14 @@ A document names its specification, and that decides its layers:
100
100
  | Layer | Pinned to | Published rules | Built |
101
101
  | --- | --- | --- | --- |
102
102
  | EN 16931 core | [validation artefacts 1.3.16](https://github.com/ConnectingEurope/eInvoicing-EN16931/tree/validation-1.3.16) | 979 (281 fatal) | all 979: what a document must have in it (`BR-01` to `BR-65`), the calculation rules (`BR-CO-*`), the decimals rules (`BR-DEC-*`), the ten families of VAT category rules, the code lists (`BR-CL-*`), and the 756 rules about the UBL document itself (`UBL-CR-*`, `UBL-DT-*`, `UBL-SR-*`) |
103
- | Peppol BIS Billing 3.0 | 3.0.21, at commit [`806866b`](https://github.com/OpenPEPPOL/peppol-bis-invoice-3/commit/806866bd2bd91d7e9623b68f08164e8fbe9e67a0) (it has no tag) | 165 (139 fatal) | 94: Peppol's own 63 (`PEPPOL-EN16931-*`, `PEPPOL-COMMON-*`) and Germany's 31 (`DE-R-*`). Not the 71 for a seller in another country (`DK-R`, `GR-R`, `IS-R`, `IT-R`, `NL-R`, `NO-R`, `SE-R`) |
103
+ | Peppol BIS Billing 3.0 | 3.0.21, at commit [`806866b`](https://github.com/OpenPEPPOL/peppol-bis-invoice-3/commit/806866bd2bd91d7e9623b68f08164e8fbe9e67a0) (it has no tag) | 165 (139 fatal) | all 165: Peppol's own 63 (`PEPPOL-EN16931-*`, `PEPPOL-COMMON-*`), Germany's 31 (`DE-R-*`), and the 71 for a seller in Denmark, Greece, Iceland, Italy, the Netherlands, Norway or Sweden (`DK-R`, `GR-R`, `GR-S`, `IS-R`, `IT-R`, `NL-R`, `NO-R`, `SE-R`) |
104
104
  | XRechnung 3.0 | [Schematron 2.6.0](https://github.com/itplr-kosit/xrechnung-schematron/tree/v2.6.0) | 56 (46 fatal) | 34: every rule of a standard XRechnung document (`BR-DE-*`, `BR-TMP-2`, `BR-TMP-6`). Not the 22 of XRechnung Extension and CVD (`BR-DEX-*`, `BR-DE-CVD-*`), whose documents are refused by name |
105
105
 
106
- **Not built is said, never assumed.** `mockeinvoice/rules/published.py` lists every published rule of every layer by identifier and flag, and a report lists the ones that did not run. A document nothing was found wrong with is `not judged`, not `valid`, for as long as a fatal rule that could apply to it is unbuilt.
106
+ **Not built is said, never assumed.** `mockeinvoice/rules/published.py` lists every published rule of every layer by identifier and flag, and a report lists the ones that did not run. A document nothing was found wrong with is `not judged`, not `valid`, for as long as a fatal rule that could apply to it is unbuilt. Every rule that can apply to a document this package takes is built, so no document is `not judged` today; the verdict is kept for the day a specification publishes a rule before this package has it.
107
107
 
108
- **A rule that could not apply is not waited on.** Peppol's rules for a seller in one country say nothing of a document from another, and the rules of XRechnung Extension and CVD say nothing of a standard XRechnung document. A report lists them apart, as `not_applicable`, and they do not hold back its verdict. A document counts as one of a country's if the seller's VAT identifier, its tax representative's, or its address says so: all three at once, which is never narrower than the published rules' own test, so nothing is waved through that a national rule could have caught.
108
+ **A rule that could not apply is not waited on.** The rules of XRechnung Extension and CVD say nothing of a standard XRechnung document. A report lists them apart, as `not_applicable`, and they do not hold back its verdict.
109
+
110
+ **Where a seller is, is not one question.** Peppol's rules for a seller's country do not agree on what makes a document one of theirs. Norway, Italy and Greece go by the first two letters of the seller's VAT identifier, then its tax representative's, and only then by the country of its address. Denmark, Iceland and Sweden go by the address, written exactly (`dk` is not Denmark). The Netherlands goes by the address however it is written. Each rule here goes by what its published test goes by, and `mockeinvoice/rules/peppol_national.py` says which.
109
111
 
110
112
  **Two things a rule is asked of.** Most rules are asked of the model. The 756 about the UBL document itself are asked of its elements, because they are about elements the standard has no term for and the model does not hold: `validate(xml)` asks them of the document as it was sent. `check(document, specification)`, given a model and no XML, asks them of the document that model would be written as. Where one of them reports an element, the reader's own finding about that element (`UNHELD`, `REPEATED`) is left out, so an element is reported once, under the published rule's name where there is one.
111
113
 
@@ -336,15 +338,16 @@ The rules, the reader and the writer are tested against files this project did n
336
338
  | EN 16931 examples | 17 documents | read, written back, and compared element for element by a reader that is not this one |
337
339
  | XRechnung test suite | 39 valid XRechnung 3.0 documents | read with nothing to say, written back element for element, and every one is `valid`: no rule of the core's 979 or XRechnung's 34 fails or warns. Seventeen are told, as information, that they do not say when they were delivered (`BR-DE-TMP-32`) |
338
340
  | XRechnung test suite | 5 Extension and 1 CVD document | refused by name |
339
- | Peppol unit tests | 400 cases | all 396 agree: 331 for Peppol's own rules and 65 for Germany's. The other 4 are about a UBL Order |
341
+ | Peppol unit tests | 673 cases, with 678 things said of a rule | all 678 agree: 331 for Peppol's own rules, 65 for Germany's and 282 for the other six countries that have any. 4 cases are about a UBL Order. Iceland's ten rules have none |
340
342
  | Peppol Invoice Response | 14 examples and 13 unit test cases | every example is read with nothing to say, written back element for element, and no rule has anything to say of it; all 13 cases agree. The structure and the code lists here are compared with the ones Peppol describes |
341
- | Peppol examples | 10 documents | read with nothing to say, written back element for element, and no rule has anything to say of them. Nine are `valid`; the tenth is from a seller in Sweden, whose rules are not built, and is `not judged` |
343
+ | Peppol examples | 10 documents | read with nothing to say, written back element for element, and no rule has anything to say of them. All ten are `valid` |
344
+ | Peppol national examples | 3 documents, kept by Peppol's national authorities | two are `valid` with a warning each; the third, a Greek invoice through a tax representative, is `invalid` by the core's `BR-06`, because its seller has no legal name |
342
345
 
343
346
  - **A case for a rule that is not built is never counted as agreeing.** The counts are written out in `tests/test_upstream.py`, so building a rule moves a number there on purpose.
344
347
  - **A disagreement is a failure here** until the published rule shows the case to be wrong; then it is listed in `tests/upstream.py` by name, with the reason. None is.
345
348
  - **To read the counts:** `python -m tests.upstream`. CI prints them on every run.
346
349
 
347
- Peppol's files are not in this repository (see Licences). `python tools/fetch_peppol.py` fetches the 101 listed in `tools/peppol-files.tsv` (billing's examples, its unit tests, and the rule file itself, which a test reads Peppol's code lists from) and the 28 in `tools/peppol-response-files.tsv` (the Invoice Response's examples, unit tests, hand-written rules, code lists and the description of its structure) from the pinned commit, checks each against the git hash listed for it, and puts them where the tests look. Without them those two tests are skipped and say so. CI fetches them on two of its jobs.
350
+ Peppol's files are not in this repository (see Licences). `python tools/fetch_peppol.py` fetches the 167 listed in `tools/peppol-files.tsv` (billing's examples and national examples, its unit tests, and the rule file itself, which a test reads Peppol's code lists from) and the 28 in `tools/peppol-response-files.tsv` (the Invoice Response's examples, unit tests, hand-written rules, code lists and the description of its structure) from the pinned commit, checks each against the git hash listed for it, and puts them where the tests look. Without them those two tests are skipped and say so. CI fetches them on two of its jobs.
348
351
 
349
352
  Two things were checked while building and are not tests, because their sources are not here:
350
353
 
@@ -9,13 +9,13 @@ python3 -m pip install mock-einvoice
9
9
  mock-einvoice --port 8100
10
10
  ```
11
11
 
12
- It reads and writes UBL invoices and credit notes, and the Peppol Invoice Response that answers one, and holds them to their published rules: invoices to all 979 rules of the EN 16931 core, to Peppol's own 63 and the 31 it has for Germany, and to the 34 of a standard XRechnung document; responses to all 82 of theirs. Over HTTP it is a buyer that takes invoices in and answers the Peppol ones, and a supplier that sends them and takes the answers.
12
+ It reads and writes UBL invoices and credit notes, and the Peppol Invoice Response that answers one, and holds them to their published rules: invoices to all 979 rules of the EN 16931 core, to all 165 of Peppol's (its own 63, the 31 it has for Germany and the 71 for seven other countries), and to the 34 of a standard XRechnung document; responses to all 82 of theirs. Over HTTP it is a buyer that takes invoices in and answers the Peppol ones, and a supplier that sends them and takes the answers.
13
13
 
14
- **What 0.1.0 is not:**
14
+ **What 0.2.0 is not:**
15
15
 
16
16
  - **It writes no invoices of its own.** The supplier sends the documents it is given.
17
17
  - **It knows nothing of the other mocks.** Writing an invoice from one of mock-sap's billing documents, and saying "paid" when SAP has cleared it, is integration, and belongs in [mock-acme](https://github.com/rseufert/mock-acme) with the rest of it. It is not built there yet.
18
- - **A Peppol document from a seller in Denmark, Greece, Iceland, Italy, the Netherlands, Norway or Sweden is at best "not judged"**, and the server does not take it in: Peppol's 71 rules for those countries are not built ([#18](https://github.com/rseufert/mock-einvoice/issues/18)). An XRechnung document, and a Peppol document from Germany or from a country Peppol has no national rules for, can be "valid".
18
+ - **Peppol's ten rules for a seller in Iceland are held to this project's tests only.** Peppol publishes unit tests for its rules for Denmark, Greece, Italy, the Netherlands, Norway and Sweden, and every case agrees here; for Iceland it publishes none. Those ten were written from the same reading of the rule file as the tests that hold them, so a misreading would be in both.
19
19
  - **No CII, no XRechnung Extension, no ZUGFeRD**, and no transport: see [What it refuses](#what-it-refuses) and [Known to be wrong, or not real](#known-to-be-wrong-or-not-real).
20
20
 
21
21
  ## What is built
@@ -70,12 +70,14 @@ A document names its specification, and that decides its layers:
70
70
  | Layer | Pinned to | Published rules | Built |
71
71
  | --- | --- | --- | --- |
72
72
  | EN 16931 core | [validation artefacts 1.3.16](https://github.com/ConnectingEurope/eInvoicing-EN16931/tree/validation-1.3.16) | 979 (281 fatal) | all 979: what a document must have in it (`BR-01` to `BR-65`), the calculation rules (`BR-CO-*`), the decimals rules (`BR-DEC-*`), the ten families of VAT category rules, the code lists (`BR-CL-*`), and the 756 rules about the UBL document itself (`UBL-CR-*`, `UBL-DT-*`, `UBL-SR-*`) |
73
- | Peppol BIS Billing 3.0 | 3.0.21, at commit [`806866b`](https://github.com/OpenPEPPOL/peppol-bis-invoice-3/commit/806866bd2bd91d7e9623b68f08164e8fbe9e67a0) (it has no tag) | 165 (139 fatal) | 94: Peppol's own 63 (`PEPPOL-EN16931-*`, `PEPPOL-COMMON-*`) and Germany's 31 (`DE-R-*`). Not the 71 for a seller in another country (`DK-R`, `GR-R`, `IS-R`, `IT-R`, `NL-R`, `NO-R`, `SE-R`) |
73
+ | Peppol BIS Billing 3.0 | 3.0.21, at commit [`806866b`](https://github.com/OpenPEPPOL/peppol-bis-invoice-3/commit/806866bd2bd91d7e9623b68f08164e8fbe9e67a0) (it has no tag) | 165 (139 fatal) | all 165: Peppol's own 63 (`PEPPOL-EN16931-*`, `PEPPOL-COMMON-*`), Germany's 31 (`DE-R-*`), and the 71 for a seller in Denmark, Greece, Iceland, Italy, the Netherlands, Norway or Sweden (`DK-R`, `GR-R`, `GR-S`, `IS-R`, `IT-R`, `NL-R`, `NO-R`, `SE-R`) |
74
74
  | XRechnung 3.0 | [Schematron 2.6.0](https://github.com/itplr-kosit/xrechnung-schematron/tree/v2.6.0) | 56 (46 fatal) | 34: every rule of a standard XRechnung document (`BR-DE-*`, `BR-TMP-2`, `BR-TMP-6`). Not the 22 of XRechnung Extension and CVD (`BR-DEX-*`, `BR-DE-CVD-*`), whose documents are refused by name |
75
75
 
76
- **Not built is said, never assumed.** `mockeinvoice/rules/published.py` lists every published rule of every layer by identifier and flag, and a report lists the ones that did not run. A document nothing was found wrong with is `not judged`, not `valid`, for as long as a fatal rule that could apply to it is unbuilt.
76
+ **Not built is said, never assumed.** `mockeinvoice/rules/published.py` lists every published rule of every layer by identifier and flag, and a report lists the ones that did not run. A document nothing was found wrong with is `not judged`, not `valid`, for as long as a fatal rule that could apply to it is unbuilt. Every rule that can apply to a document this package takes is built, so no document is `not judged` today; the verdict is kept for the day a specification publishes a rule before this package has it.
77
77
 
78
- **A rule that could not apply is not waited on.** Peppol's rules for a seller in one country say nothing of a document from another, and the rules of XRechnung Extension and CVD say nothing of a standard XRechnung document. A report lists them apart, as `not_applicable`, and they do not hold back its verdict. A document counts as one of a country's if the seller's VAT identifier, its tax representative's, or its address says so: all three at once, which is never narrower than the published rules' own test, so nothing is waved through that a national rule could have caught.
78
+ **A rule that could not apply is not waited on.** The rules of XRechnung Extension and CVD say nothing of a standard XRechnung document. A report lists them apart, as `not_applicable`, and they do not hold back its verdict.
79
+
80
+ **Where a seller is, is not one question.** Peppol's rules for a seller's country do not agree on what makes a document one of theirs. Norway, Italy and Greece go by the first two letters of the seller's VAT identifier, then its tax representative's, and only then by the country of its address. Denmark, Iceland and Sweden go by the address, written exactly (`dk` is not Denmark). The Netherlands goes by the address however it is written. Each rule here goes by what its published test goes by, and `mockeinvoice/rules/peppol_national.py` says which.
79
81
 
80
82
  **Two things a rule is asked of.** Most rules are asked of the model. The 756 about the UBL document itself are asked of its elements, because they are about elements the standard has no term for and the model does not hold: `validate(xml)` asks them of the document as it was sent. `check(document, specification)`, given a model and no XML, asks them of the document that model would be written as. Where one of them reports an element, the reader's own finding about that element (`UNHELD`, `REPEATED`) is left out, so an element is reported once, under the published rule's name where there is one.
81
83
 
@@ -306,15 +308,16 @@ The rules, the reader and the writer are tested against files this project did n
306
308
  | EN 16931 examples | 17 documents | read, written back, and compared element for element by a reader that is not this one |
307
309
  | XRechnung test suite | 39 valid XRechnung 3.0 documents | read with nothing to say, written back element for element, and every one is `valid`: no rule of the core's 979 or XRechnung's 34 fails or warns. Seventeen are told, as information, that they do not say when they were delivered (`BR-DE-TMP-32`) |
308
310
  | XRechnung test suite | 5 Extension and 1 CVD document | refused by name |
309
- | Peppol unit tests | 400 cases | all 396 agree: 331 for Peppol's own rules and 65 for Germany's. The other 4 are about a UBL Order |
311
+ | Peppol unit tests | 673 cases, with 678 things said of a rule | all 678 agree: 331 for Peppol's own rules, 65 for Germany's and 282 for the other six countries that have any. 4 cases are about a UBL Order. Iceland's ten rules have none |
310
312
  | Peppol Invoice Response | 14 examples and 13 unit test cases | every example is read with nothing to say, written back element for element, and no rule has anything to say of it; all 13 cases agree. The structure and the code lists here are compared with the ones Peppol describes |
311
- | Peppol examples | 10 documents | read with nothing to say, written back element for element, and no rule has anything to say of them. Nine are `valid`; the tenth is from a seller in Sweden, whose rules are not built, and is `not judged` |
313
+ | Peppol examples | 10 documents | read with nothing to say, written back element for element, and no rule has anything to say of them. All ten are `valid` |
314
+ | Peppol national examples | 3 documents, kept by Peppol's national authorities | two are `valid` with a warning each; the third, a Greek invoice through a tax representative, is `invalid` by the core's `BR-06`, because its seller has no legal name |
312
315
 
313
316
  - **A case for a rule that is not built is never counted as agreeing.** The counts are written out in `tests/test_upstream.py`, so building a rule moves a number there on purpose.
314
317
  - **A disagreement is a failure here** until the published rule shows the case to be wrong; then it is listed in `tests/upstream.py` by name, with the reason. None is.
315
318
  - **To read the counts:** `python -m tests.upstream`. CI prints them on every run.
316
319
 
317
- Peppol's files are not in this repository (see Licences). `python tools/fetch_peppol.py` fetches the 101 listed in `tools/peppol-files.tsv` (billing's examples, its unit tests, and the rule file itself, which a test reads Peppol's code lists from) and the 28 in `tools/peppol-response-files.tsv` (the Invoice Response's examples, unit tests, hand-written rules, code lists and the description of its structure) from the pinned commit, checks each against the git hash listed for it, and puts them where the tests look. Without them those two tests are skipped and say so. CI fetches them on two of its jobs.
320
+ Peppol's files are not in this repository (see Licences). `python tools/fetch_peppol.py` fetches the 167 listed in `tools/peppol-files.tsv` (billing's examples and national examples, its unit tests, and the rule file itself, which a test reads Peppol's code lists from) and the 28 in `tools/peppol-response-files.tsv` (the Invoice Response's examples, unit tests, hand-written rules, code lists and the description of its structure) from the pinned commit, checks each against the git hash listed for it, and puts them where the tests look. Without them those two tests are skipped and say so. CI fetches them on two of its jobs.
318
321
 
319
322
  Two things were checked while building and are not tests, because their sources are not here:
320
323
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mock-einvoice
3
- Version: 0.1.0
3
+ Version: 0.2.0
4
4
  Summary: A mock e-invoicing partner: EN 16931 invoices in and out, with the responses that follow. Zero dependencies.
5
5
  License: MIT AND EUPL-1.2
6
6
  Project-URL: Repository, https://github.com/rseufert/mock-einvoice
@@ -39,13 +39,13 @@ python3 -m pip install mock-einvoice
39
39
  mock-einvoice --port 8100
40
40
  ```
41
41
 
42
- It reads and writes UBL invoices and credit notes, and the Peppol Invoice Response that answers one, and holds them to their published rules: invoices to all 979 rules of the EN 16931 core, to Peppol's own 63 and the 31 it has for Germany, and to the 34 of a standard XRechnung document; responses to all 82 of theirs. Over HTTP it is a buyer that takes invoices in and answers the Peppol ones, and a supplier that sends them and takes the answers.
42
+ It reads and writes UBL invoices and credit notes, and the Peppol Invoice Response that answers one, and holds them to their published rules: invoices to all 979 rules of the EN 16931 core, to all 165 of Peppol's (its own 63, the 31 it has for Germany and the 71 for seven other countries), and to the 34 of a standard XRechnung document; responses to all 82 of theirs. Over HTTP it is a buyer that takes invoices in and answers the Peppol ones, and a supplier that sends them and takes the answers.
43
43
 
44
- **What 0.1.0 is not:**
44
+ **What 0.2.0 is not:**
45
45
 
46
46
  - **It writes no invoices of its own.** The supplier sends the documents it is given.
47
47
  - **It knows nothing of the other mocks.** Writing an invoice from one of mock-sap's billing documents, and saying "paid" when SAP has cleared it, is integration, and belongs in [mock-acme](https://github.com/rseufert/mock-acme) with the rest of it. It is not built there yet.
48
- - **A Peppol document from a seller in Denmark, Greece, Iceland, Italy, the Netherlands, Norway or Sweden is at best "not judged"**, and the server does not take it in: Peppol's 71 rules for those countries are not built ([#18](https://github.com/rseufert/mock-einvoice/issues/18)). An XRechnung document, and a Peppol document from Germany or from a country Peppol has no national rules for, can be "valid".
48
+ - **Peppol's ten rules for a seller in Iceland are held to this project's tests only.** Peppol publishes unit tests for its rules for Denmark, Greece, Italy, the Netherlands, Norway and Sweden, and every case agrees here; for Iceland it publishes none. Those ten were written from the same reading of the rule file as the tests that hold them, so a misreading would be in both.
49
49
  - **No CII, no XRechnung Extension, no ZUGFeRD**, and no transport: see [What it refuses](#what-it-refuses) and [Known to be wrong, or not real](#known-to-be-wrong-or-not-real).
50
50
 
51
51
  ## What is built
@@ -100,12 +100,14 @@ A document names its specification, and that decides its layers:
100
100
  | Layer | Pinned to | Published rules | Built |
101
101
  | --- | --- | --- | --- |
102
102
  | EN 16931 core | [validation artefacts 1.3.16](https://github.com/ConnectingEurope/eInvoicing-EN16931/tree/validation-1.3.16) | 979 (281 fatal) | all 979: what a document must have in it (`BR-01` to `BR-65`), the calculation rules (`BR-CO-*`), the decimals rules (`BR-DEC-*`), the ten families of VAT category rules, the code lists (`BR-CL-*`), and the 756 rules about the UBL document itself (`UBL-CR-*`, `UBL-DT-*`, `UBL-SR-*`) |
103
- | Peppol BIS Billing 3.0 | 3.0.21, at commit [`806866b`](https://github.com/OpenPEPPOL/peppol-bis-invoice-3/commit/806866bd2bd91d7e9623b68f08164e8fbe9e67a0) (it has no tag) | 165 (139 fatal) | 94: Peppol's own 63 (`PEPPOL-EN16931-*`, `PEPPOL-COMMON-*`) and Germany's 31 (`DE-R-*`). Not the 71 for a seller in another country (`DK-R`, `GR-R`, `IS-R`, `IT-R`, `NL-R`, `NO-R`, `SE-R`) |
103
+ | Peppol BIS Billing 3.0 | 3.0.21, at commit [`806866b`](https://github.com/OpenPEPPOL/peppol-bis-invoice-3/commit/806866bd2bd91d7e9623b68f08164e8fbe9e67a0) (it has no tag) | 165 (139 fatal) | all 165: Peppol's own 63 (`PEPPOL-EN16931-*`, `PEPPOL-COMMON-*`), Germany's 31 (`DE-R-*`), and the 71 for a seller in Denmark, Greece, Iceland, Italy, the Netherlands, Norway or Sweden (`DK-R`, `GR-R`, `GR-S`, `IS-R`, `IT-R`, `NL-R`, `NO-R`, `SE-R`) |
104
104
  | XRechnung 3.0 | [Schematron 2.6.0](https://github.com/itplr-kosit/xrechnung-schematron/tree/v2.6.0) | 56 (46 fatal) | 34: every rule of a standard XRechnung document (`BR-DE-*`, `BR-TMP-2`, `BR-TMP-6`). Not the 22 of XRechnung Extension and CVD (`BR-DEX-*`, `BR-DE-CVD-*`), whose documents are refused by name |
105
105
 
106
- **Not built is said, never assumed.** `mockeinvoice/rules/published.py` lists every published rule of every layer by identifier and flag, and a report lists the ones that did not run. A document nothing was found wrong with is `not judged`, not `valid`, for as long as a fatal rule that could apply to it is unbuilt.
106
+ **Not built is said, never assumed.** `mockeinvoice/rules/published.py` lists every published rule of every layer by identifier and flag, and a report lists the ones that did not run. A document nothing was found wrong with is `not judged`, not `valid`, for as long as a fatal rule that could apply to it is unbuilt. Every rule that can apply to a document this package takes is built, so no document is `not judged` today; the verdict is kept for the day a specification publishes a rule before this package has it.
107
107
 
108
- **A rule that could not apply is not waited on.** Peppol's rules for a seller in one country say nothing of a document from another, and the rules of XRechnung Extension and CVD say nothing of a standard XRechnung document. A report lists them apart, as `not_applicable`, and they do not hold back its verdict. A document counts as one of a country's if the seller's VAT identifier, its tax representative's, or its address says so: all three at once, which is never narrower than the published rules' own test, so nothing is waved through that a national rule could have caught.
108
+ **A rule that could not apply is not waited on.** The rules of XRechnung Extension and CVD say nothing of a standard XRechnung document. A report lists them apart, as `not_applicable`, and they do not hold back its verdict.
109
+
110
+ **Where a seller is, is not one question.** Peppol's rules for a seller's country do not agree on what makes a document one of theirs. Norway, Italy and Greece go by the first two letters of the seller's VAT identifier, then its tax representative's, and only then by the country of its address. Denmark, Iceland and Sweden go by the address, written exactly (`dk` is not Denmark). The Netherlands goes by the address however it is written. Each rule here goes by what its published test goes by, and `mockeinvoice/rules/peppol_national.py` says which.
109
111
 
110
112
  **Two things a rule is asked of.** Most rules are asked of the model. The 756 about the UBL document itself are asked of its elements, because they are about elements the standard has no term for and the model does not hold: `validate(xml)` asks them of the document as it was sent. `check(document, specification)`, given a model and no XML, asks them of the document that model would be written as. Where one of them reports an element, the reader's own finding about that element (`UNHELD`, `REPEATED`) is left out, so an element is reported once, under the published rule's name where there is one.
111
113
 
@@ -336,15 +338,16 @@ The rules, the reader and the writer are tested against files this project did n
336
338
  | EN 16931 examples | 17 documents | read, written back, and compared element for element by a reader that is not this one |
337
339
  | XRechnung test suite | 39 valid XRechnung 3.0 documents | read with nothing to say, written back element for element, and every one is `valid`: no rule of the core's 979 or XRechnung's 34 fails or warns. Seventeen are told, as information, that they do not say when they were delivered (`BR-DE-TMP-32`) |
338
340
  | XRechnung test suite | 5 Extension and 1 CVD document | refused by name |
339
- | Peppol unit tests | 400 cases | all 396 agree: 331 for Peppol's own rules and 65 for Germany's. The other 4 are about a UBL Order |
341
+ | Peppol unit tests | 673 cases, with 678 things said of a rule | all 678 agree: 331 for Peppol's own rules, 65 for Germany's and 282 for the other six countries that have any. 4 cases are about a UBL Order. Iceland's ten rules have none |
340
342
  | Peppol Invoice Response | 14 examples and 13 unit test cases | every example is read with nothing to say, written back element for element, and no rule has anything to say of it; all 13 cases agree. The structure and the code lists here are compared with the ones Peppol describes |
341
- | Peppol examples | 10 documents | read with nothing to say, written back element for element, and no rule has anything to say of them. Nine are `valid`; the tenth is from a seller in Sweden, whose rules are not built, and is `not judged` |
343
+ | Peppol examples | 10 documents | read with nothing to say, written back element for element, and no rule has anything to say of them. All ten are `valid` |
344
+ | Peppol national examples | 3 documents, kept by Peppol's national authorities | two are `valid` with a warning each; the third, a Greek invoice through a tax representative, is `invalid` by the core's `BR-06`, because its seller has no legal name |
342
345
 
343
346
  - **A case for a rule that is not built is never counted as agreeing.** The counts are written out in `tests/test_upstream.py`, so building a rule moves a number there on purpose.
344
347
  - **A disagreement is a failure here** until the published rule shows the case to be wrong; then it is listed in `tests/upstream.py` by name, with the reason. None is.
345
348
  - **To read the counts:** `python -m tests.upstream`. CI prints them on every run.
346
349
 
347
- Peppol's files are not in this repository (see Licences). `python tools/fetch_peppol.py` fetches the 101 listed in `tools/peppol-files.tsv` (billing's examples, its unit tests, and the rule file itself, which a test reads Peppol's code lists from) and the 28 in `tools/peppol-response-files.tsv` (the Invoice Response's examples, unit tests, hand-written rules, code lists and the description of its structure) from the pinned commit, checks each against the git hash listed for it, and puts them where the tests look. Without them those two tests are skipped and say so. CI fetches them on two of its jobs.
350
+ Peppol's files are not in this repository (see Licences). `python tools/fetch_peppol.py` fetches the 167 listed in `tools/peppol-files.tsv` (billing's examples and national examples, its unit tests, and the rule file itself, which a test reads Peppol's code lists from) and the 28 in `tools/peppol-response-files.tsv` (the Invoice Response's examples, unit tests, hand-written rules, code lists and the description of its structure) from the pinned commit, checks each against the git hash listed for it, and puts them where the tests look. Without them those two tests are skipped and say so. CI fetches them on two of its jobs.
348
351
 
349
352
  Two things were checked while building and are not tests, because their sources are not here:
350
353
 
@@ -28,6 +28,7 @@ mockeinvoice/rules/en16931_vat.py
28
28
  mockeinvoice/rules/german.py
29
29
  mockeinvoice/rules/peppol.py
30
30
  mockeinvoice/rules/peppol_de.py
31
+ mockeinvoice/rules/peppol_national.py
31
32
  mockeinvoice/rules/peppol_response.py
32
33
  mockeinvoice/rules/published.py
33
34
  mockeinvoice/rules/tree.py
@@ -40,6 +41,7 @@ tests/test_buyer.py
40
41
  tests/test_code_rules.py
41
42
  tests/test_model.py
42
43
  tests/test_peppol_de_rules.py
44
+ tests/test_peppol_national_rules.py
43
45
  tests/test_peppol_rules.py
44
46
  tests/test_reading.py
45
47
  tests/test_refusals.py
@@ -1,7 +1,7 @@
1
1
  """mock-einvoice: EN 16931 invoices, read, held to their rules, and answered.
2
2
 
3
3
  So far: UBL 2.1 invoices and credit notes in and out, the rules of the
4
- EN 16931 core, Peppol's own and Peppol's for Germany, and XRechnung's; the
4
+ EN 16931 core, all of Peppol's, and XRechnung's; the
5
5
  Peppol Invoice Response; and over HTTP a buyer that takes invoices in and
6
6
  answers them, and a supplier that sends them and takes the answers
7
7
  (`mockeinvoice.buyer`, `mockeinvoice.supplier`, `mockeinvoice.server`).
@@ -36,7 +36,7 @@ from .response import Response
36
36
  from .rules import Report, check, check_response
37
37
  from .ubl import parse, parse_tree, write
38
38
 
39
- __version__ = "0.1.0"
39
+ __version__ = "0.2.0"
40
40
 
41
41
  __all__ = ["Document", "Finding", "Group", "Refused", "Report", "Response", "Value", "check",
42
42
  "read", "read_response", "validate", "validate_response", "write", "write_response",
@@ -14,15 +14,19 @@ of every layer at the versions this package is pinned to.
14
14
 
15
15
  What is not built is said
16
16
  -------------------------
17
- Some rules are not built yet. A `Report` lists the rules that ran and, layer
18
- by layer, the published rules that did not, and its verdict follows from
19
- both: a document with no failing rule is `valid` only when every fatal rule
20
- of its layers that could apply to it ran. Until then the most it can be is `not judged`. Passing a
21
- document on rules that were not run is the one thing this must never do.
17
+ A `Report` lists the rules that ran and, layer by layer, the published rules
18
+ that did not, and its verdict follows from both: a document with no failing
19
+ rule is `valid` only when every fatal rule of its layers that could apply to
20
+ it ran. Until then the most it can be is `not judged`. Passing a document on
21
+ rules that were not run is the one thing this must never do.
22
22
 
23
- A rule that could not apply is not waited on: the rules Peppol has for a
24
- seller in one country say nothing of a document from another, and are listed
25
- apart as not applicable (`SCOPES`).
23
+ Every rule that can apply to a document this package takes is built, so no
24
+ document is `not judged` today. The verdict is kept for the day a
25
+ specification publishes a rule before this package has it.
26
+
27
+ A rule that could not apply is not waited on: XRechnung's rules for its
28
+ Extension and CVD say nothing of a standard XRechnung document, and are
29
+ listed apart as not applicable (`SCOPES`).
26
30
 
27
31
  Two things a rule can be asked of
28
32
  ---------------------------------
@@ -111,8 +115,8 @@ class Report:
111
115
  # The published rules of the document's layers that are not built and
112
116
  # could apply to it, by layer, each with its flag.
113
117
  not_built: Dict[str, Dict[str, str]] = field(default_factory=dict)
114
- # And those that are not built and cannot apply to it: the rules for a
115
- # seller's country, of a document from another. They are not waited on.
118
+ # And those that are not built and cannot apply to it: the rules of
119
+ # another specification's documents. They are not waited on.
116
120
  not_applicable: Dict[str, Dict[str, str]] = field(default_factory=dict)
117
121
 
118
122
  @property
@@ -242,9 +246,9 @@ from . import en16931_ubl as _en16931_ubl # noqa: E402,F401
242
246
  from . import en16931_vat as _en16931_vat # noqa: E402,F401
243
247
  from . import peppol as _peppol # noqa: E402,F401
244
248
  from . import peppol_de as _peppol_de # noqa: E402,F401
249
+ from . import peppol_national as _peppol_national # noqa: E402,F401
245
250
 
246
251
  from . import xrechnung as _xrechnung # noqa: E402,F401
247
252
  from . import peppol_response as _peppol_response # noqa: E402,F401
248
253
 
249
- SCOPES["peppol"].update(_peppol.SCOPES)
250
254
  SCOPES["xrechnung"].update(_xrechnung.SCOPES)
@@ -1,10 +1,9 @@
1
1
  """Peppol BIS Billing 3.0: the rules Peppol adds to the EN 16931 core.
2
2
 
3
3
  Here: Peppol's own 63 rules, asked of every Peppol document
4
- (`PEPPOL-EN16931-*` and `PEPPOL-COMMON-*`). Germany's are in `peppol_de.py`.
5
- The rules for a seller in another country (`DK-R`, `SE-R` and the rest) are
6
- not built; `SCOPES` says which documents they can apply to, so that a
7
- document from elsewhere does not wait on them.
4
+ (`PEPPOL-EN16931-*` and `PEPPOL-COMMON-*`). Germany's are in `peppol_de.py`,
5
+ and the rules for a seller in one of seven other countries (`DK-R`, `SE-R`
6
+ and the rest) in `peppol_national.py`.
8
7
 
9
8
  All of these are asked of the document's elements (`tree.py`), as the rules
10
9
  about UBL itself are: many of them are about what the model does not keep,
@@ -44,7 +43,7 @@ from __future__ import annotations
44
43
  import functools
45
44
  import re
46
45
  from decimal import Decimal
47
- from typing import Callable, Dict, Iterator, List, Optional, Sequence, Tuple
46
+ from typing import Callable, Iterator, List, Optional, Sequence, Tuple
48
47
 
49
48
  from . import Failure, rule
50
49
  from .calculation import (Incomputable, cents, date_of, decimal_of, double_sum, doubles_of,
@@ -746,35 +745,3 @@ def f001(root: At) -> Iterator[Failure]:
746
745
  well_formed = False
747
746
  if not well_formed:
748
747
  yield at.path, "it is %r" % at.text
749
-
750
-
751
- # -- the rules for a seller's country, which are not built ----------------------------------
752
-
753
- def sellers_countries(root: At) -> List[str]:
754
- """Every country the published tests could take the seller to be in.
755
-
756
- They decide it three ways between them: by the first two letters of the
757
- seller's VAT identifier, or its tax representative's, or by the country
758
- of the seller's address. This is all of those at once, so that it is
759
- never narrower than any of them.
760
- """
761
- found = [normalize_space(at.text[:2]).upper()
762
- for party in ("%s/cac:PartyTaxScheme/cbc:CompanyID" % SELLER,
763
- "cac:TaxRepresentativeParty/cac:PartyTaxScheme/cbc:CompanyID")
764
- for at in elements(root, party)]
765
- return found + [normalize_space(at.text).upper()
766
- for at in elements(root, "%s/%s" % (SELLER, COUNTRY))]
767
-
768
-
769
- def from_(*countries: str) -> Callable[[At], bool]:
770
- return lambda root: any(country in sellers_countries(root) for country in countries)
771
-
772
-
773
- # The national rule sets, by the start of their rules' names: whether a
774
- # document is one they can apply to. Every one of their published contexts
775
- # asks for the seller's country in one of the three ways above.
776
- SCOPES: Dict[str, Callable[[At], bool]] = {
777
- "DK-R-": from_("DK"), "GR-R-": from_("GR", "EL"),
778
- "GR-S-": from_("GR", "EL"), "IS-R-": from_("IS"), "IT-R-": from_("IT"),
779
- "NL-R-": from_("NL"), "NO-R-": from_("NO"), "SE-R-": from_("SE"),
780
- }