piccolo 1.15.0__tar.gz → 1.16.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 (384) hide show
  1. {piccolo-1.15.0 → piccolo-1.16.0}/PKG-INFO +1 -1
  2. piccolo-1.16.0/piccolo/__init__.py +1 -0
  3. piccolo-1.16.0/piccolo/testing/test_case.py +120 -0
  4. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo.egg-info/PKG-INFO +1 -1
  5. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo.egg-info/SOURCES.txt +2 -0
  6. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_array.py +2 -1
  7. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_bigint.py +2 -1
  8. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_boolean.py +1 -1
  9. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_bytea.py +1 -1
  10. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_choices.py +2 -1
  11. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_date.py +1 -1
  12. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_double_precision.py +1 -1
  13. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_interval.py +1 -1
  14. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_json.py +1 -1
  15. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_jsonb.py +2 -1
  16. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_numeric.py +1 -1
  17. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_primary_key.py +1 -1
  18. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_readable.py +1 -1
  19. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_real.py +1 -1
  20. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_reference.py +1 -1
  21. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_reserved_column_names.py +1 -1
  22. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_smallint.py +2 -2
  23. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_time.py +2 -1
  24. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_timestamp.py +1 -1
  25. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_timestamptz.py +1 -1
  26. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_uuid.py +1 -1
  27. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_varchar.py +2 -2
  28. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/functions/base.py +1 -1
  29. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/functions/test_datetime.py +2 -1
  30. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/functions/test_math.py +1 -1
  31. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_refresh.py +2 -1
  32. piccolo-1.16.0/tests/testing/test_test_case.py +65 -0
  33. piccolo-1.15.0/piccolo/__init__.py +0 -1
  34. {piccolo-1.15.0 → piccolo-1.16.0}/LICENSE +0 -0
  35. {piccolo-1.15.0 → piccolo-1.16.0}/README.md +0 -0
  36. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/__init__.py +0 -0
  37. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/app/__init__.py +0 -0
  38. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/app/commands/__init__.py +0 -0
  39. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/app/commands/new.py +0 -0
  40. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/app/commands/show_all.py +0 -0
  41. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/app/commands/templates/piccolo_app.py.jinja +0 -0
  42. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/app/commands/templates/tables.py.jinja +0 -0
  43. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/app/piccolo_app.py +0 -0
  44. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/__init__.py +0 -0
  45. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/__init__.py +0 -0
  46. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/new.py +0 -0
  47. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/README.md.jinja +0 -0
  48. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/_blacksheep_app.py.jinja +0 -0
  49. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/_esmerald_app.py.jinja +0 -0
  50. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/_fastapi_app.py.jinja +0 -0
  51. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/_lilya_app.py.jinja +0 -0
  52. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/_litestar_app.py.jinja +0 -0
  53. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/_starlette_app.py.jinja +0 -0
  54. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/app.py.jinja +0 -0
  55. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/conftest.py.jinja +0 -0
  56. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/home/__init__.py.jinja +0 -0
  57. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/home/_blacksheep_endpoints.py.jinja +0 -0
  58. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/home/_esmerald_endpoints.py.jinja +0 -0
  59. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/home/_lilya_endpoints.py.jinja +0 -0
  60. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/home/_litestar_endpoints.py.jinja +0 -0
  61. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/home/_starlette_endpoints.py.jinja +0 -0
  62. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/home/endpoints.py.jinja +0 -0
  63. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/home/piccolo_app.py.jinja +0 -0
  64. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/home/piccolo_migrations/README.md +0 -0
  65. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/home/tables.py.jinja +0 -0
  66. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/home/templates/base.html.jinja_raw +0 -0
  67. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/home/templates/home.html.jinja_raw +0 -0
  68. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/main.py.jinja +0 -0
  69. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/piccolo_conf.py.jinja +0 -0
  70. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/piccolo_conf_test.py.jinja +0 -0
  71. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/requirements.txt.jinja +0 -0
  72. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/static/favicon.ico +0 -0
  73. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/commands/templates/app/static/main.css +0 -0
  74. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/asgi/piccolo_app.py +0 -0
  75. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/fixtures/__init__.py +0 -0
  76. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/fixtures/commands/__init__.py +0 -0
  77. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/fixtures/commands/dump.py +0 -0
  78. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/fixtures/commands/load.py +0 -0
  79. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/fixtures/commands/shared.py +0 -0
  80. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/fixtures/piccolo_app.py +0 -0
  81. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/meta/__init__.py +0 -0
  82. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/meta/commands/__init__.py +0 -0
  83. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/meta/commands/version.py +0 -0
  84. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/meta/piccolo_app.py +0 -0
  85. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/__init__.py +0 -0
  86. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/auto/__init__.py +0 -0
  87. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/auto/diffable_table.py +0 -0
  88. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/auto/migration_manager.py +0 -0
  89. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/auto/operations.py +0 -0
  90. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/auto/schema_differ.py +0 -0
  91. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/auto/schema_snapshot.py +0 -0
  92. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/auto/serialisation.py +0 -0
  93. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/auto/serialisation_legacy.py +0 -0
  94. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/commands/__init__.py +0 -0
  95. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/commands/backwards.py +0 -0
  96. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/commands/base.py +0 -0
  97. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/commands/check.py +0 -0
  98. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/commands/clean.py +0 -0
  99. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/commands/forwards.py +0 -0
  100. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/commands/new.py +0 -0
  101. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/commands/templates/migration.py.jinja +0 -0
  102. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/piccolo_app.py +0 -0
  103. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/migrations/tables.py +0 -0
  104. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/playground/__init__.py +0 -0
  105. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/playground/commands/__init__.py +0 -0
  106. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/playground/commands/run.py +0 -0
  107. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/playground/piccolo_app.py +0 -0
  108. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/project/__init__.py +0 -0
  109. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/project/commands/__init__.py +0 -0
  110. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/project/commands/new.py +0 -0
  111. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/project/commands/templates/piccolo_conf.py.jinja +0 -0
  112. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/project/piccolo_app.py +0 -0
  113. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/schema/__init__.py +0 -0
  114. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/schema/commands/__init__.py +0 -0
  115. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/schema/commands/exceptions.py +0 -0
  116. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/schema/commands/generate.py +0 -0
  117. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/schema/commands/graph.py +0 -0
  118. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/schema/commands/templates/graphviz.dot.jinja +0 -0
  119. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/schema/piccolo_app.py +0 -0
  120. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/shell/__init__.py +0 -0
  121. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/shell/commands/__init__.py +0 -0
  122. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/shell/commands/run.py +0 -0
  123. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/shell/piccolo_app.py +0 -0
  124. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/sql_shell/__init__.py +0 -0
  125. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/sql_shell/commands/__init__.py +0 -0
  126. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/sql_shell/commands/run.py +0 -0
  127. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/sql_shell/piccolo_app.py +0 -0
  128. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/tester/__init__.py +0 -0
  129. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/tester/commands/__init__.py +0 -0
  130. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/tester/commands/run.py +0 -0
  131. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/tester/piccolo_app.py +0 -0
  132. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/user/__init__.py +0 -0
  133. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/user/commands/__init__.py +0 -0
  134. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/user/commands/change_password.py +0 -0
  135. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/user/commands/change_permissions.py +0 -0
  136. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/user/commands/create.py +0 -0
  137. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/user/commands/list.py +0 -0
  138. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/user/piccolo_app.py +0 -0
  139. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/user/piccolo_migrations/2019-11-14T21-52-21.py +0 -0
  140. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/user/piccolo_migrations/2020-06-11T21-38-55.py +0 -0
  141. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/user/piccolo_migrations/2021-04-30T16-14-15.py +0 -0
  142. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/user/piccolo_migrations/__init__.py +0 -0
  143. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/apps/user/tables.py +0 -0
  144. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/__init__.py +0 -0
  145. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/base.py +0 -0
  146. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/choices.py +0 -0
  147. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/column_types.py +0 -0
  148. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/combination.py +0 -0
  149. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/defaults/__init__.py +0 -0
  150. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/defaults/base.py +0 -0
  151. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/defaults/date.py +0 -0
  152. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/defaults/interval.py +0 -0
  153. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/defaults/time.py +0 -0
  154. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/defaults/timestamp.py +0 -0
  155. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/defaults/timestamptz.py +0 -0
  156. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/defaults/uuid.py +0 -0
  157. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/indexes.py +0 -0
  158. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/m2m.py +0 -0
  159. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/operators/__init__.py +0 -0
  160. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/operators/base.py +0 -0
  161. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/operators/comparison.py +0 -0
  162. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/operators/math.py +0 -0
  163. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/operators/string.py +0 -0
  164. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/readable.py +0 -0
  165. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/columns/reference.py +0 -0
  166. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/conf/__init__.py +0 -0
  167. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/conf/apps.py +0 -0
  168. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/custom_types.py +0 -0
  169. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/engine/__init__.py +0 -0
  170. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/engine/base.py +0 -0
  171. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/engine/cockroach.py +0 -0
  172. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/engine/exceptions.py +0 -0
  173. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/engine/finder.py +0 -0
  174. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/engine/postgres.py +0 -0
  175. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/engine/sqlite.py +0 -0
  176. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/main.py +0 -0
  177. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/py.typed +0 -0
  178. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/__init__.py +0 -0
  179. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/base.py +0 -0
  180. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/functions/__init__.py +0 -0
  181. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/functions/aggregate.py +0 -0
  182. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/functions/base.py +0 -0
  183. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/functions/datetime.py +0 -0
  184. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/functions/math.py +0 -0
  185. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/functions/string.py +0 -0
  186. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/functions/type_conversion.py +0 -0
  187. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/__init__.py +0 -0
  188. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/alter.py +0 -0
  189. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/count.py +0 -0
  190. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/create.py +0 -0
  191. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/create_index.py +0 -0
  192. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/delete.py +0 -0
  193. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/drop_index.py +0 -0
  194. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/exists.py +0 -0
  195. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/indexes.py +0 -0
  196. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/insert.py +0 -0
  197. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/objects.py +0 -0
  198. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/raw.py +0 -0
  199. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/refresh.py +0 -0
  200. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/select.py +0 -0
  201. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/table_exists.py +0 -0
  202. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/methods/update.py +0 -0
  203. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/mixins.py +0 -0
  204. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/query/proxy.py +0 -0
  205. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/querystring.py +0 -0
  206. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/schema.py +0 -0
  207. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/table.py +0 -0
  208. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/table_reflection.py +0 -0
  209. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/testing/__init__.py +0 -0
  210. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/testing/model_builder.py +0 -0
  211. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/testing/random_builder.py +0 -0
  212. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/utils/__init__.py +0 -0
  213. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/utils/dictionary.py +0 -0
  214. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/utils/encoding.py +0 -0
  215. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/utils/graphlib/__init__.py +0 -0
  216. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/utils/graphlib/_graphlib.py +0 -0
  217. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/utils/lazy_loader.py +0 -0
  218. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/utils/list.py +0 -0
  219. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/utils/naming.py +0 -0
  220. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/utils/objects.py +0 -0
  221. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/utils/printing.py +0 -0
  222. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/utils/pydantic.py +0 -0
  223. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/utils/repr.py +0 -0
  224. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/utils/sql_values.py +0 -0
  225. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/utils/sync.py +0 -0
  226. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo/utils/warnings.py +0 -0
  227. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo.egg-info/dependency_links.txt +0 -0
  228. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo.egg-info/entry_points.txt +0 -0
  229. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo.egg-info/requires.txt +0 -0
  230. {piccolo-1.15.0 → piccolo-1.16.0}/piccolo.egg-info/top_level.txt +0 -0
  231. {piccolo-1.15.0 → piccolo-1.16.0}/profiling/__init__.py +0 -0
  232. {piccolo-1.15.0 → piccolo-1.16.0}/profiling/run_profile.py +0 -0
  233. {piccolo-1.15.0 → piccolo-1.16.0}/pyproject.toml +0 -0
  234. {piccolo-1.15.0 → piccolo-1.16.0}/setup.cfg +0 -0
  235. {piccolo-1.15.0 → piccolo-1.16.0}/setup.py +0 -0
  236. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/__init__.py +0 -0
  237. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/app/__init__.py +0 -0
  238. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/app/commands/__init__.py +0 -0
  239. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/app/commands/test_new.py +0 -0
  240. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/app/commands/test_show_all.py +0 -0
  241. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/asgi/__init__.py +0 -0
  242. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/asgi/commands/__init__.py +0 -0
  243. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/asgi/commands/test_new.py +0 -0
  244. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/fixtures/__init__.py +0 -0
  245. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/fixtures/commands/__init__.py +0 -0
  246. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/fixtures/commands/test_dump_load.py +0 -0
  247. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/fixtures/commands/test_shared.py +0 -0
  248. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/meta/__init__.py +0 -0
  249. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/meta/commands/__init__.py +0 -0
  250. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/meta/commands/test_version.py +0 -0
  251. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/__init__.py +0 -0
  252. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/auto/__init__.py +0 -0
  253. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/auto/integration/__init__.py +0 -0
  254. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/auto/integration/test_migrations.py +0 -0
  255. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/auto/test_diffable_table.py +0 -0
  256. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/auto/test_migration_manager.py +0 -0
  257. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/auto/test_schema_differ.py +0 -0
  258. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/auto/test_schema_snapshot.py +0 -0
  259. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/auto/test_serialisation.py +0 -0
  260. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/commands/__init__.py +0 -0
  261. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/commands/test_base.py +0 -0
  262. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/commands/test_check.py +0 -0
  263. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/commands/test_clean.py +0 -0
  264. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/commands/test_forwards_backwards.py +0 -0
  265. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/commands/test_migrations/2020-03-31T20-38-22.py +0 -0
  266. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/commands/test_migrations/__init__.py +0 -0
  267. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/commands/test_new.py +0 -0
  268. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/migrations/test_migration.py +0 -0
  269. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/project/__init__.py +0 -0
  270. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/project/commands/__init__.py +0 -0
  271. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/project/commands/test_new.py +0 -0
  272. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/schema/__init__.py +0 -0
  273. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/shell/__init__.py +0 -0
  274. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/shell/commands/__init__.py +0 -0
  275. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/shell/commands/test_run.py +0 -0
  276. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/sql_shell/__init__.py +0 -0
  277. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/sql_shell/commands/__init__.py +0 -0
  278. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/sql_shell/commands/test_run.py +0 -0
  279. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/tester/__init__.py +0 -0
  280. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/user/__init__.py +0 -0
  281. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/user/commands/__init__.py +0 -0
  282. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/user/commands/test_change_password.py +0 -0
  283. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/user/commands/test_change_permissions.py +0 -0
  284. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/user/commands/test_create.py +0 -0
  285. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/user/commands/test_list.py +0 -0
  286. {piccolo-1.15.0 → piccolo-1.16.0}/tests/apps/user/test_tables.py +0 -0
  287. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/__init__.py +0 -0
  288. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/m2m/__init__.py +0 -0
  289. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/m2m/base.py +0 -0
  290. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/m2m/test_m2m.py +0 -0
  291. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/m2m/test_m2m_schema.py +0 -0
  292. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_base.py +0 -0
  293. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_combination.py +0 -0
  294. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_db_column_name.py +0 -0
  295. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_defaults.py +0 -0
  296. {piccolo-1.15.0 → piccolo-1.16.0}/tests/columns/test_get_sql_value.py +0 -0
  297. {piccolo-1.15.0 → piccolo-1.16.0}/tests/conf/__init__.py +0 -0
  298. {piccolo-1.15.0 → piccolo-1.16.0}/tests/conf/example.py +0 -0
  299. {piccolo-1.15.0 → piccolo-1.16.0}/tests/conf/test_apps.py +0 -0
  300. {piccolo-1.15.0 → piccolo-1.16.0}/tests/engine/__init__.py +0 -0
  301. {piccolo-1.15.0 → piccolo-1.16.0}/tests/engine/test_extra_nodes.py +0 -0
  302. {piccolo-1.15.0 → piccolo-1.16.0}/tests/engine/test_logging.py +0 -0
  303. {piccolo-1.15.0 → piccolo-1.16.0}/tests/engine/test_nested_transaction.py +0 -0
  304. {piccolo-1.15.0 → piccolo-1.16.0}/tests/engine/test_pool.py +0 -0
  305. {piccolo-1.15.0 → piccolo-1.16.0}/tests/engine/test_transaction.py +0 -0
  306. {piccolo-1.15.0 → piccolo-1.16.0}/tests/engine/test_version_parsing.py +0 -0
  307. {piccolo-1.15.0 → piccolo-1.16.0}/tests/example_apps/__init__.py +0 -0
  308. {piccolo-1.15.0 → piccolo-1.16.0}/tests/example_apps/mega/__init__.py +0 -0
  309. {piccolo-1.15.0 → piccolo-1.16.0}/tests/example_apps/mega/piccolo_app.py +0 -0
  310. {piccolo-1.15.0 → piccolo-1.16.0}/tests/example_apps/mega/piccolo_migrations/2021-09-20T21-23-25-698988.py +0 -0
  311. {piccolo-1.15.0 → piccolo-1.16.0}/tests/example_apps/mega/piccolo_migrations/__init__.py +0 -0
  312. {piccolo-1.15.0 → piccolo-1.16.0}/tests/example_apps/mega/tables.py +0 -0
  313. {piccolo-1.15.0 → piccolo-1.16.0}/tests/example_apps/music/__init__.py +0 -0
  314. {piccolo-1.15.0 → piccolo-1.16.0}/tests/example_apps/music/piccolo_app.py +0 -0
  315. {piccolo-1.15.0 → piccolo-1.16.0}/tests/example_apps/music/tables.py +0 -0
  316. {piccolo-1.15.0 → piccolo-1.16.0}/tests/example_apps/music/tables_detailed.py +0 -0
  317. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/__init__.py +0 -0
  318. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/functions/__init__.py +0 -0
  319. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/functions/test_functions.py +0 -0
  320. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/functions/test_string.py +0 -0
  321. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/functions/test_type_conversion.py +0 -0
  322. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/mixins/__init__.py +0 -0
  323. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/mixins/test_columns_delegate.py +0 -0
  324. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/mixins/test_order_by_delegate.py +0 -0
  325. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/test_await.py +0 -0
  326. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/test_camelcase.py +0 -0
  327. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/test_freeze.py +0 -0
  328. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/test_gather.py +0 -0
  329. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/test_querystring.py +0 -0
  330. {piccolo-1.15.0 → piccolo-1.16.0}/tests/query/test_slots.py +0 -0
  331. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/__init__.py +0 -0
  332. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/instance/__init__.py +0 -0
  333. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/instance/test_create.py +0 -0
  334. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/instance/test_get_related.py +0 -0
  335. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/instance/test_get_related_readable.py +0 -0
  336. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/instance/test_instantiate.py +0 -0
  337. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/instance/test_remove.py +0 -0
  338. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/instance/test_save.py +0 -0
  339. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/instance/test_to_dict.py +0 -0
  340. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_all_columns.py +0 -0
  341. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_alter.py +0 -0
  342. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_batch.py +0 -0
  343. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_callback.py +0 -0
  344. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_constructor.py +0 -0
  345. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_count.py +0 -0
  346. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_create.py +0 -0
  347. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_create_db_tables.py +0 -0
  348. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_create_table_class.py +0 -0
  349. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_delete.py +0 -0
  350. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_drop_db_tables.py +0 -0
  351. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_exists.py +0 -0
  352. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_from_dict.py +0 -0
  353. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_indexes.py +0 -0
  354. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_inheritance.py +0 -0
  355. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_insert.py +0 -0
  356. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_join.py +0 -0
  357. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_join_on.py +0 -0
  358. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_metaclass.py +0 -0
  359. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_objects.py +0 -0
  360. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_output.py +0 -0
  361. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_raw.py +0 -0
  362. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_ref.py +0 -0
  363. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_repr.py +0 -0
  364. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_select.py +0 -0
  365. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_str.py +0 -0
  366. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_table_exists.py +0 -0
  367. {piccolo-1.15.0 → piccolo-1.16.0}/tests/table/test_update.py +0 -0
  368. {piccolo-1.15.0 → piccolo-1.16.0}/tests/test_main.py +0 -0
  369. {piccolo-1.15.0 → piccolo-1.16.0}/tests/test_schema.py +0 -0
  370. {piccolo-1.15.0 → piccolo-1.16.0}/tests/testing/__init__.py +0 -0
  371. {piccolo-1.15.0 → piccolo-1.16.0}/tests/testing/test_model_builder.py +0 -0
  372. {piccolo-1.15.0 → piccolo-1.16.0}/tests/testing/test_random_builder.py +0 -0
  373. {piccolo-1.15.0 → piccolo-1.16.0}/tests/utils/__init__.py +0 -0
  374. {piccolo-1.15.0 → piccolo-1.16.0}/tests/utils/test_dictionary.py +0 -0
  375. {piccolo-1.15.0 → piccolo-1.16.0}/tests/utils/test_encoding.py +0 -0
  376. {piccolo-1.15.0 → piccolo-1.16.0}/tests/utils/test_lazy_loader.py +0 -0
  377. {piccolo-1.15.0 → piccolo-1.16.0}/tests/utils/test_list.py +0 -0
  378. {piccolo-1.15.0 → piccolo-1.16.0}/tests/utils/test_naming.py +0 -0
  379. {piccolo-1.15.0 → piccolo-1.16.0}/tests/utils/test_printing.py +0 -0
  380. {piccolo-1.15.0 → piccolo-1.16.0}/tests/utils/test_pydantic.py +0 -0
  381. {piccolo-1.15.0 → piccolo-1.16.0}/tests/utils/test_sql_values.py +0 -0
  382. {piccolo-1.15.0 → piccolo-1.16.0}/tests/utils/test_sync.py +0 -0
  383. {piccolo-1.15.0 → piccolo-1.16.0}/tests/utils/test_table_reflection.py +0 -0
  384. {piccolo-1.15.0 → piccolo-1.16.0}/tests/utils/test_warnings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: piccolo
3
- Version: 1.15.0
3
+ Version: 1.16.0
4
4
  Summary: A fast, user friendly ORM and query builder which supports asyncio.
5
5
  Home-page: https://github.com/piccolo-orm/piccolo
6
6
  Author: Daniel Townsend
@@ -0,0 +1 @@
1
+ __VERSION__ = "1.16.0"
@@ -0,0 +1,120 @@
1
+ from __future__ import annotations
2
+
3
+ import typing as t
4
+ from unittest import IsolatedAsyncioTestCase, TestCase
5
+
6
+ from piccolo.engine import Engine, engine_finder
7
+ from piccolo.table import (
8
+ Table,
9
+ create_db_tables,
10
+ create_db_tables_sync,
11
+ drop_db_tables,
12
+ drop_db_tables_sync,
13
+ )
14
+
15
+
16
+ class TableTest(TestCase):
17
+ """
18
+ Identical to :class:`AsyncTableTest <piccolo.testing.test_case.AsyncTableTest>`,
19
+ except it only work for sync tests. Only use this if you can't make your
20
+ tests async (perhaps you're on Python 3.7 where ``IsolatedAsyncioTestCase``
21
+ isn't available).
22
+
23
+ For example::
24
+
25
+ class TestBand(TableTest):
26
+ tables = [Band]
27
+
28
+ def test_band(self):
29
+ ...
30
+
31
+ """ # noqa: E501
32
+
33
+ tables: t.List[t.Type[Table]]
34
+
35
+ def setUp(self) -> None:
36
+ create_db_tables_sync(*self.tables)
37
+
38
+ def tearDown(self) -> None:
39
+ drop_db_tables_sync(*self.tables)
40
+
41
+
42
+ class AsyncTableTest(IsolatedAsyncioTestCase):
43
+ """
44
+ Used for tests where we need to create Piccolo tables - they will
45
+ automatically be created and dropped.
46
+
47
+ For example::
48
+
49
+ class TestBand(AsyncTableTest):
50
+ tables = [Band]
51
+
52
+ async def test_band(self):
53
+ ...
54
+
55
+ """
56
+
57
+ tables: t.List[t.Type[Table]]
58
+
59
+ async def asyncSetUp(self) -> None:
60
+ await create_db_tables(*self.tables)
61
+
62
+ async def asyncTearDown(self) -> None:
63
+ await drop_db_tables(*self.tables)
64
+
65
+
66
+ class AsyncTransactionTest(IsolatedAsyncioTestCase):
67
+ """
68
+ Wraps each test in a transaction, which is automatically rolled back when
69
+ the test finishes.
70
+
71
+ .. warning::
72
+ Python 3.11 and above only.
73
+
74
+ If your test suite just contains ``AsyncTransactionTest`` tests, then you
75
+ can setup your database tables once before your test suite runs. Any
76
+ changes made to your tables by the tests will be rolled back automatically.
77
+
78
+ Here's an example::
79
+
80
+ from piccolo.testing.test_case import AsyncTransactionTest
81
+
82
+
83
+ class TestBandEndpoint(AsyncTransactionTest):
84
+
85
+ async def test_band_response(self):
86
+ \"\"\"
87
+ Make sure the endpoint returns a 200.
88
+ \"\"\"
89
+ band = Band({Band.name: "Pythonistas"})
90
+ await band.save()
91
+
92
+ # Using an API testing client, like httpx:
93
+ response = await client.get(f"/bands/{band.id}/")
94
+ self.assertEqual(response.status_code, 200)
95
+
96
+ We add a ``Band`` to the database, but any subsequent tests won't see it,
97
+ as the changes are rolled back automatically.
98
+
99
+ """
100
+
101
+ # We use `engine_finder` to find the current `Engine`, but you can
102
+ # explicity set it here if you prefer:
103
+ #
104
+ # class MyTest(AsyncTransactionTest):
105
+ # db = DB
106
+ #
107
+ # ...
108
+ #
109
+ db: t.Optional[Engine] = None
110
+
111
+ async def asyncSetUp(self) -> None:
112
+ db = self.db or engine_finder()
113
+ assert db is not None
114
+ self.transaction = db.transaction()
115
+ # This is only available in Python 3.11 and above:
116
+ await self.enterAsyncContext(cm=self.transaction) # type: ignore
117
+
118
+ async def asyncTearDown(self):
119
+ await super().asyncTearDown()
120
+ await self.transaction.rollback()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: piccolo
3
- Version: 1.15.0
3
+ Version: 1.16.0
4
4
  Summary: A fast, user friendly ORM and query builder which supports asyncio.
5
5
  Home-page: https://github.com/piccolo-orm/piccolo
6
6
  Author: Daniel Townsend
@@ -185,6 +185,7 @@ piccolo/query/methods/update.py
185
185
  piccolo/testing/__init__.py
186
186
  piccolo/testing/model_builder.py
187
187
  piccolo/testing/random_builder.py
188
+ piccolo/testing/test_case.py
188
189
  piccolo/utils/__init__.py
189
190
  piccolo/utils/dictionary.py
190
191
  piccolo/utils/encoding.py
@@ -365,6 +366,7 @@ tests/table/instance/test_to_dict.py
365
366
  tests/testing/__init__.py
366
367
  tests/testing/test_model_builder.py
367
368
  tests/testing/test_random_builder.py
369
+ tests/testing/test_test_case.py
368
370
  tests/utils/__init__.py
369
371
  tests/utils/test_dictionary.py
370
372
  tests/utils/test_encoding.py
@@ -14,7 +14,8 @@ from piccolo.columns.column_types import (
14
14
  )
15
15
  from piccolo.querystring import QueryString
16
16
  from piccolo.table import Table
17
- from tests.base import TableTest, engines_only, engines_skip, sqlite_only
17
+ from piccolo.testing.test_case import TableTest
18
+ from tests.base import engines_only, engines_skip, sqlite_only
18
19
 
19
20
 
20
21
  class MyTable(Table):
@@ -2,7 +2,8 @@ import os
2
2
 
3
3
  from piccolo.columns.column_types import BigInt
4
4
  from piccolo.table import Table
5
- from tests.base import TableTest, engines_only
5
+ from piccolo.testing.test_case import TableTest
6
+ from tests.base import engines_only
6
7
 
7
8
 
8
9
  class MyTable(Table):
@@ -2,7 +2,7 @@ import typing as t
2
2
 
3
3
  from piccolo.columns.column_types import Boolean
4
4
  from piccolo.table import Table
5
- from tests.base import TableTest
5
+ from piccolo.testing.test_case import TableTest
6
6
 
7
7
 
8
8
  class MyTable(Table):
@@ -1,6 +1,6 @@
1
1
  from piccolo.columns.column_types import Bytea
2
2
  from piccolo.table import Table
3
- from tests.base import TableTest
3
+ from piccolo.testing.test_case import TableTest
4
4
 
5
5
 
6
6
  class MyTable(Table):
@@ -2,7 +2,8 @@ import enum
2
2
 
3
3
  from piccolo.columns.column_types import Array, Varchar
4
4
  from piccolo.table import Table
5
- from tests.base import TableTest, engines_only
5
+ from piccolo.testing.test_case import TableTest
6
+ from tests.base import engines_only
6
7
  from tests.example_apps.music.tables import Shirt
7
8
 
8
9
 
@@ -3,7 +3,7 @@ import datetime
3
3
  from piccolo.columns.column_types import Date
4
4
  from piccolo.columns.defaults.date import DateNow
5
5
  from piccolo.table import Table
6
- from tests.base import TableTest
6
+ from piccolo.testing.test_case import TableTest
7
7
 
8
8
 
9
9
  class MyTable(Table):
@@ -1,6 +1,6 @@
1
1
  from piccolo.columns.column_types import DoublePrecision
2
2
  from piccolo.table import Table
3
- from tests.base import TableTest
3
+ from piccolo.testing.test_case import TableTest
4
4
 
5
5
 
6
6
  class MyTable(Table):
@@ -3,7 +3,7 @@ import datetime
3
3
  from piccolo.columns.column_types import Interval
4
4
  from piccolo.columns.defaults.interval import IntervalCustom
5
5
  from piccolo.table import Table
6
- from tests.base import TableTest
6
+ from piccolo.testing.test_case import TableTest
7
7
 
8
8
 
9
9
  class MyTable(Table):
@@ -1,6 +1,6 @@
1
1
  from piccolo.columns.column_types import JSON
2
2
  from piccolo.table import Table
3
- from tests.base import TableTest
3
+ from piccolo.testing.test_case import TableTest
4
4
 
5
5
 
6
6
  class MyTable(Table):
@@ -1,6 +1,7 @@
1
1
  from piccolo.columns.column_types import JSONB, ForeignKey, Varchar
2
2
  from piccolo.table import Table
3
- from tests.base import TableTest, engines_only, engines_skip
3
+ from piccolo.testing.test_case import TableTest
4
+ from tests.base import engines_only, engines_skip
4
5
 
5
6
 
6
7
  class RecordingStudio(Table):
@@ -2,7 +2,7 @@ from decimal import Decimal
2
2
 
3
3
  from piccolo.columns.column_types import Numeric
4
4
  from piccolo.table import Table
5
- from tests.base import TableTest
5
+ from piccolo.testing.test_case import TableTest
6
6
 
7
7
 
8
8
  class MyTable(Table):
@@ -8,7 +8,7 @@ from piccolo.columns.column_types import (
8
8
  Varchar,
9
9
  )
10
10
  from piccolo.table import Table
11
- from tests.base import TableTest
11
+ from piccolo.testing.test_case import TableTest
12
12
 
13
13
 
14
14
  class MyTableDefaultPrimaryKey(Table):
@@ -1,7 +1,7 @@
1
1
  from piccolo import columns
2
2
  from piccolo.columns.readable import Readable
3
3
  from piccolo.table import Table
4
- from tests.base import TableTest
4
+ from piccolo.testing.test_case import TableTest
5
5
 
6
6
 
7
7
  class MyTable(Table):
@@ -1,6 +1,6 @@
1
1
  from piccolo.columns.column_types import Real
2
2
  from piccolo.table import Table
3
- from tests.base import TableTest
3
+ from piccolo.testing.test_case import TableTest
4
4
 
5
5
 
6
6
  class MyTable(Table):
@@ -8,7 +8,7 @@ from unittest import TestCase
8
8
  from piccolo.columns import ForeignKey, Varchar
9
9
  from piccolo.columns.reference import LazyTableReference
10
10
  from piccolo.table import Table
11
- from tests.base import TableTest
11
+ from piccolo.testing.test_case import TableTest
12
12
 
13
13
 
14
14
  class Band(Table):
@@ -1,6 +1,6 @@
1
1
  from piccolo.columns.column_types import Integer, Varchar
2
2
  from piccolo.table import Table
3
- from tests.base import TableTest
3
+ from piccolo.testing.test_case import TableTest
4
4
 
5
5
 
6
6
  class Concert(Table):
@@ -2,8 +2,8 @@ import os
2
2
 
3
3
  from piccolo.columns.column_types import SmallInt
4
4
  from piccolo.table import Table
5
-
6
- from ..base import TableTest, engines_only
5
+ from piccolo.testing.test_case import TableTest
6
+ from tests.base import engines_only
7
7
 
8
8
 
9
9
  class MyTable(Table):
@@ -4,7 +4,8 @@ from functools import partial
4
4
  from piccolo.columns.column_types import Time
5
5
  from piccolo.columns.defaults.time import TimeNow
6
6
  from piccolo.table import Table
7
- from tests.base import TableTest, engines_skip
7
+ from piccolo.testing.test_case import TableTest
8
+ from tests.base import engines_skip
8
9
 
9
10
 
10
11
  class MyTable(Table):
@@ -3,7 +3,7 @@ import datetime
3
3
  from piccolo.columns.column_types import Timestamp
4
4
  from piccolo.columns.defaults.timestamp import TimestampNow
5
5
  from piccolo.table import Table
6
- from tests.base import TableTest
6
+ from piccolo.testing.test_case import TableTest
7
7
 
8
8
 
9
9
  class MyTable(Table):
@@ -9,7 +9,7 @@ from piccolo.columns.defaults.timestamptz import (
9
9
  TimestamptzOffset,
10
10
  )
11
11
  from piccolo.table import Table
12
- from tests.base import TableTest
12
+ from piccolo.testing.test_case import TableTest
13
13
 
14
14
 
15
15
  class MyTable(Table):
@@ -2,7 +2,7 @@ import uuid
2
2
 
3
3
  from piccolo.columns.column_types import UUID
4
4
  from piccolo.table import Table
5
- from tests.base import TableTest
5
+ from piccolo.testing.test_case import TableTest
6
6
 
7
7
 
8
8
  class MyTable(Table):
@@ -1,7 +1,7 @@
1
1
  from piccolo.columns.column_types import Varchar
2
2
  from piccolo.table import Table
3
-
4
- from ..base import TableTest, engines_only
3
+ from piccolo.testing.test_case import TableTest
4
+ from tests.base import engines_only
5
5
 
6
6
 
7
7
  class MyTable(Table):
@@ -1,4 +1,4 @@
1
- from tests.base import TableTest
1
+ from piccolo.testing.test_case import TableTest
2
2
  from tests.example_apps.music.tables import Band, Manager
3
3
 
4
4
 
@@ -12,7 +12,8 @@ from piccolo.query.functions.datetime import (
12
12
  Year,
13
13
  )
14
14
  from piccolo.table import Table
15
- from tests.base import TableTest, engines_only, sqlite_only
15
+ from piccolo.testing.test_case import TableTest
16
+ from tests.base import engines_only, sqlite_only
16
17
 
17
18
 
18
19
  class Concert(Table):
@@ -3,7 +3,7 @@ import decimal
3
3
  from piccolo.columns import Numeric
4
4
  from piccolo.query.functions.math import Abs, Ceil, Floor, Round
5
5
  from piccolo.table import Table
6
- from tests.base import TableTest
6
+ from piccolo.testing.test_case import TableTest
7
7
 
8
8
 
9
9
  class Ticket(Table):
@@ -1,6 +1,7 @@
1
1
  import typing as t
2
2
 
3
- from tests.base import DBTestCase, TableTest
3
+ from piccolo.testing.test_case import TableTest
4
+ from tests.base import DBTestCase
4
5
  from tests.example_apps.music.tables import (
5
6
  Band,
6
7
  Concert,
@@ -0,0 +1,65 @@
1
+ import sys
2
+
3
+ import pytest
4
+
5
+ from piccolo.engine import engine_finder
6
+ from piccolo.testing.test_case import (
7
+ AsyncTableTest,
8
+ AsyncTransactionTest,
9
+ TableTest,
10
+ )
11
+ from tests.example_apps.music.tables import Band, Manager
12
+
13
+
14
+ class TestTableTest(TableTest):
15
+ """
16
+ Make sure the tables are created automatically.
17
+ """
18
+
19
+ tables = [Band, Manager]
20
+
21
+ async def test_tables_created(self):
22
+ self.assertTrue(Band.table_exists().run_sync())
23
+ self.assertTrue(Manager.table_exists().run_sync())
24
+
25
+
26
+ class TestAsyncTableTest(AsyncTableTest):
27
+ """
28
+ Make sure the tables are created automatically in async tests.
29
+ """
30
+
31
+ tables = [Band, Manager]
32
+
33
+ async def test_tables_created(self):
34
+ self.assertTrue(await Band.table_exists())
35
+ self.assertTrue(await Manager.table_exists())
36
+
37
+
38
+ @pytest.mark.skipif(sys.version_info <= (3, 11), reason="Python 3.11 required")
39
+ class TestAsyncTransaction(AsyncTransactionTest):
40
+ """
41
+ Make sure that the test exists within a transaction.
42
+ """
43
+
44
+ async def test_transaction_exists(self):
45
+ db = engine_finder()
46
+ assert db is not None
47
+ self.assertTrue(db.transaction_exists())
48
+
49
+
50
+ @pytest.mark.skipif(sys.version_info <= (3, 11), reason="Python 3.11 required")
51
+ class TestAsyncTransactionRolledBack(AsyncTransactionTest):
52
+ """
53
+ Make sure that the changes get rolled back automatically.
54
+ """
55
+
56
+ async def asyncTearDown(self):
57
+ await super().asyncTearDown()
58
+
59
+ assert Manager.table_exists().run_sync() is False
60
+
61
+ async def test_insert_data(self):
62
+ await Manager.create_table()
63
+
64
+ manager = Manager({Manager.name: "Guido"})
65
+ await manager.save()
@@ -1 +0,0 @@
1
- __VERSION__ = "1.15.0"
File without changes
File without changes