py2docfx 0.1.15.dev2025736__py3-none-any.whl → 0.1.15.dev2038808__py3-none-any.whl

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 (600) hide show
  1. py2docfx/docfx_yaml/process_doctree.py +34 -21
  2. py2docfx/docfx_yaml/tests/test_method_arguments.py +7 -1
  3. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  4. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
  5. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  6. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
  7. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  8. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  9. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  10. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  11. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  12. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  13. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  14. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  15. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  16. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  17. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  18. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  19. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  20. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  21. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  22. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py +29 -0
  23. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  24. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  25. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  26. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  27. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  28. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  29. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  30. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  31. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  32. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  33. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  34. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +48 -11
  35. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  36. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  37. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  38. py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +115 -9
  39. py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +12 -3
  40. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  41. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  42. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  43. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  44. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  45. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  46. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
  47. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +4 -4
  48. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +4 -4
  49. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +4 -4
  50. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_database.py +22 -4
  51. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +82 -35
  52. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +4 -4
  53. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +4 -4
  54. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +4 -4
  55. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/builder.py +4 -3
  56. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/containers.py +13 -0
  57. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +62 -115
  58. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +1 -1
  59. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +15 -18
  60. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +4 -1
  61. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/type_checkers.py +5 -0
  62. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +3 -3
  63. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +25 -9
  64. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message.py +26 -0
  65. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +0 -63
  66. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto.py +38 -1
  67. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto_text.py +129 -0
  68. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/reflection.py +0 -49
  69. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +3 -3
  70. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +4 -4
  71. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +4 -4
  72. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/symbol_database.py +0 -18
  73. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +8 -3
  74. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +4 -4
  75. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +4 -4
  76. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/unknown_fields.py +3 -4
  77. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +4 -4
  78. py2docfx/venv/venv1/Lib/site-packages/msal/__init__.py +1 -1
  79. py2docfx/venv/venv1/Lib/site-packages/msal/application.py +51 -17
  80. py2docfx/venv/venv1/Lib/site-packages/msal/broker.py +18 -4
  81. py2docfx/venv/venv1/Lib/site-packages/msal/cloudshell.py +5 -1
  82. py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +5 -4
  83. py2docfx/venv/venv1/Lib/site-packages/msal/sku.py +6 -0
  84. py2docfx/venv/venv1/Lib/site-packages/msal/token_cache.py +31 -10
  85. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/__init__.py +2 -3
  86. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/cache_lock.py +4 -1
  87. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/filelock.py +62 -0
  88. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/libsecret.py +1 -1
  89. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/token_cache.py +7 -1
  90. py2docfx/venv/venv1/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  91. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
  92. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  93. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
  94. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  95. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  96. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  97. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  98. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  99. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  100. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  101. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  102. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  103. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  104. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  105. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  106. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  107. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  108. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  109. py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +29 -0
  110. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  111. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  112. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  113. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  114. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  115. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  116. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  117. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  118. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  119. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  120. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  121. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +48 -11
  122. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  123. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  124. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  125. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +115 -9
  126. py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +12 -3
  127. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  128. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  129. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  130. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  131. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  132. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  133. {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/METADATA +1 -1
  134. {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/RECORD +136 -593
  135. py2docfx/docfx_yaml/tests/test_process_doctree.py +0 -120
  136. py2docfx/venv/venv1/Lib/site-packages/adodbapi/__init__.py +0 -82
  137. py2docfx/venv/venv1/Lib/site-packages/adodbapi/ado_consts.py +0 -283
  138. py2docfx/venv/venv1/Lib/site-packages/adodbapi/adodbapi.py +0 -1153
  139. py2docfx/venv/venv1/Lib/site-packages/adodbapi/apibase.py +0 -723
  140. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_print.py +0 -72
  141. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_table_names.py +0 -21
  142. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_read.py +0 -41
  143. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_write.py +0 -41
  144. py2docfx/venv/venv1/Lib/site-packages/adodbapi/is64bit.py +0 -34
  145. py2docfx/venv/venv1/Lib/site-packages/adodbapi/process_connect_string.py +0 -137
  146. py2docfx/venv/venv1/Lib/site-packages/adodbapi/schema_table.py +0 -16
  147. py2docfx/venv/venv1/Lib/site-packages/adodbapi/setup.py +0 -68
  148. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitest.py +0 -1547
  149. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitestconfig.py +0 -184
  150. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/dbapi20.py +0 -879
  151. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/is64bit.py +0 -34
  152. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/setuptestframework.py +0 -98
  153. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/test_adodbapi_dbapi20.py +0 -195
  154. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/tryconnection.py +0 -30
  155. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/_parameterized.py +0 -420
  156. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/service.py +0 -213
  157. py2docfx/venv/venv1/Lib/site-packages/isapi/__init__.py +0 -39
  158. py2docfx/venv/venv1/Lib/site-packages/isapi/install.py +0 -809
  159. py2docfx/venv/venv1/Lib/site-packages/isapi/isapicon.py +0 -121
  160. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/advanced.py +0 -218
  161. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector.py +0 -116
  162. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_asynch.py +0 -85
  163. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_with_filter.py +0 -162
  164. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/test.py +0 -195
  165. py2docfx/venv/venv1/Lib/site-packages/isapi/simple.py +0 -73
  166. py2docfx/venv/venv1/Lib/site-packages/isapi/test/extension_simple.py +0 -114
  167. py2docfx/venv/venv1/Lib/site-packages/isapi/threaded_extension.py +0 -191
  168. py2docfx/venv/venv1/Lib/site-packages/portalocker/__about__.py +0 -6
  169. py2docfx/venv/venv1/Lib/site-packages/portalocker/__init__.py +0 -79
  170. py2docfx/venv/venv1/Lib/site-packages/portalocker/__main__.py +0 -122
  171. py2docfx/venv/venv1/Lib/site-packages/portalocker/constants.py +0 -59
  172. py2docfx/venv/venv1/Lib/site-packages/portalocker/exceptions.py +0 -27
  173. py2docfx/venv/venv1/Lib/site-packages/portalocker/portalocker.py +0 -154
  174. py2docfx/venv/venv1/Lib/site-packages/portalocker/redis.py +0 -236
  175. py2docfx/venv/venv1/Lib/site-packages/portalocker/utils.py +0 -569
  176. py2docfx/venv/venv1/Lib/site-packages/pythoncom.py +0 -4
  177. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/basictimerapp.py +0 -258
  178. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/customprint.py +0 -183
  179. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/demoutils.py +0 -63
  180. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dlgappdemo.py +0 -51
  181. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dojobapp.py +0 -71
  182. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/helloapp.py +0 -53
  183. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/cmdserver.py +0 -113
  184. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/createwin.py +0 -114
  185. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/demoutils.py +0 -65
  186. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dibdemo.py +0 -73
  187. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dlgtest.py +0 -145
  188. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dyndlg.py +0 -104
  189. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/fontdemo.py +0 -85
  190. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/guidemo.py +0 -53
  191. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/hiertest.py +0 -138
  192. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/menutest.py +0 -13
  193. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/objdoc.py +0 -57
  194. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/demoutils.py +0 -63
  195. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/flash.py +0 -95
  196. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/msoffice.py +0 -159
  197. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxserialtest.py +0 -132
  198. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxtest.py +0 -243
  199. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/webbrowser.py +0 -72
  200. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/openGLDemo.py +0 -415
  201. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/progressbar.py +0 -105
  202. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/sliderdemo.py +0 -76
  203. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/splittst.py +0 -79
  204. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/threadedgui.py +0 -189
  205. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/toolbar.py +0 -105
  206. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/__init__.py +0 -3
  207. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/__init__.py +0 -133
  208. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/configui.py +0 -34
  209. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgcon.py +0 -31
  210. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgpyapp.py +0 -48
  211. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/debugger.py +0 -1097
  212. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/fail.py +0 -54
  213. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/__init__.py +0 -0
  214. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/ideoptions.py +0 -136
  215. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/list.py +0 -146
  216. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/login.py +0 -155
  217. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/status.py +0 -242
  218. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/DockingBar.py +0 -676
  219. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/__init__.py +0 -0
  220. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/__init__.py +0 -0
  221. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/app.py +0 -411
  222. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/bitmap.py +0 -168
  223. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/cmdline.py +0 -54
  224. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dbgcommands.py +0 -188
  225. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dlgappcore.py +0 -76
  226. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/ModuleBrowser.py +0 -235
  227. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/__init__.py +0 -105
  228. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/__init__.py +0 -0
  229. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/coloreditor.py +0 -646
  230. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/configui.py +0 -299
  231. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/document.py +0 -379
  232. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/editor.py +0 -511
  233. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/frame.py +0 -74
  234. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/template.py +0 -59
  235. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/vss.py +0 -104
  236. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/help.py +0 -173
  237. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/interact.py +0 -995
  238. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpyapp.py +0 -552
  239. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpydde.py +0 -65
  240. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/scriptutils.py +0 -684
  241. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/sgrepmdi.py +0 -749
  242. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/startup.py +0 -70
  243. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/stdin.py +0 -172
  244. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/toolmenu.py +0 -279
  245. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/window.py +0 -14
  246. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/winout.py +0 -589
  247. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoExpand.py +0 -95
  248. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoIndent.py +0 -536
  249. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/CallTips.py +0 -216
  250. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/FormatParagraph.py +0 -166
  251. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/IdleHistory.py +0 -87
  252. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/PyParse.py +0 -585
  253. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/__init__.py +0 -1
  254. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/__init__.py +0 -0
  255. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/activex.py +0 -79
  256. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/afxres.py +0 -501
  257. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/dialog.py +0 -277
  258. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/docview.py +0 -151
  259. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/object.py +0 -66
  260. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/thread.py +0 -25
  261. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/window.py +0 -50
  262. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/IDLEenvironment.py +0 -593
  263. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/__init__.py +0 -1
  264. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/bindings.py +0 -180
  265. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/config.py +0 -363
  266. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/configui.py +0 -291
  267. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/control.py +0 -565
  268. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/document.py +0 -312
  269. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/find.py +0 -511
  270. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/formatter.py +0 -704
  271. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/keycodes.py +0 -190
  272. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/scintillacon.py +0 -3083
  273. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/view.py +0 -841
  274. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/TraceCollector.py +0 -79
  275. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/__init__.py +0 -0
  276. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browseProjects.py +0 -323
  277. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browser.py +0 -494
  278. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/hierlist.py +0 -353
  279. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regedit.py +0 -382
  280. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regpy.py +0 -80
  281. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupRead_BackupWrite.py +0 -119
  282. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupSeek_streamheaders.py +0 -137
  283. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CopyFileEx.py +0 -57
  284. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CreateFileTransacted_MiniVersion.py +0 -122
  285. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtFormatMessage.py +0 -83
  286. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_pull.py +0 -28
  287. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_push.py +0 -32
  288. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/FileSecurityTest.py +0 -137
  289. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/GetSaveFileName.py +0 -43
  290. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/NetValidatePasswordPolicy.py +0 -127
  291. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/OpenEncryptedFileRaw.py +0 -66
  292. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegCreateKeyTransacted.py +0 -60
  293. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegRestoreKey.py +0 -71
  294. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/SystemParametersInfo.py +0 -210
  295. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/c_extension/setup.py +0 -26
  296. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeclient.py +0 -18
  297. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeserver.py +0 -42
  298. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/desktopmanager.py +0 -246
  299. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/eventLogDemo.py +0 -143
  300. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/getfilever.py +0 -33
  301. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/mmapfile_demo.py +0 -101
  302. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/cat.py +0 -17
  303. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/runproc.py +0 -114
  304. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/print_desktop.py +0 -113
  305. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/rastest.py +0 -166
  306. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/GetTokenInformation.py +0 -110
  307. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/account_rights.py +0 -49
  308. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/explicit_entries.py +0 -170
  309. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/get_policy_info.py +0 -39
  310. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/list_rights.py +0 -35
  311. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/localized_names.py +0 -70
  312. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsaregevent.py +0 -14
  313. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsastore.py +0 -12
  314. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/query_information.py +0 -25
  315. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsave_sa.py +0 -61
  316. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsecurity.py +0 -36
  317. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sa_inherit.py +0 -8
  318. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/security_enums.py +0 -336
  319. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_audit.py +0 -106
  320. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_owner.py +0 -73
  321. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_policy_info.py +0 -25
  322. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setkernelobjectsecurity.py +0 -134
  323. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setnamedsecurityinfo.py +0 -131
  324. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setsecurityinfo.py +0 -131
  325. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setuserobjectsecurity.py +0 -102
  326. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/fetch_url.py +0 -158
  327. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/simple_auth.py +0 -72
  328. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/socket_server.py +0 -199
  329. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/validate_password.py +0 -41
  330. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/nativePipeTestService.py +0 -63
  331. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestService.py +0 -185
  332. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestServiceClient.py +0 -158
  333. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/serviceEvents.py +0 -98
  334. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/timer_demo.py +0 -72
  335. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboardDemo.py +0 -155
  336. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboard_bitmapdemo.py +0 -117
  337. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32comport_demo.py +0 -174
  338. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32console_demo.py +0 -132
  339. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32cred_demo.py +0 -82
  340. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32fileDemo.py +0 -41
  341. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_demo.py +0 -177
  342. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_devicenotify.py +0 -106
  343. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_dialog.py +0 -445
  344. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_menu.py +0 -464
  345. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_taskbar.py +0 -136
  346. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32netdemo.py +0 -272
  347. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32rcparser_demo.py +0 -86
  348. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32servicedemo.py +0 -23
  349. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32ts_logoff_disconnected.py +0 -25
  350. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/testwnet.py +0 -123
  351. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/winnetwk.py +0 -100
  352. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/winprocess.py +0 -230
  353. py2docfx/venv/venv1/Lib/site-packages/win32/lib/_win32verstamp_pywin32ctypes.py +0 -164
  354. py2docfx/venv/venv1/Lib/site-packages/win32/lib/afxres.py +0 -8
  355. py2docfx/venv/venv1/Lib/site-packages/win32/lib/commctrl.py +0 -1551
  356. py2docfx/venv/venv1/Lib/site-packages/win32/lib/mmsystem.py +0 -956
  357. py2docfx/venv/venv1/Lib/site-packages/win32/lib/netbios.py +0 -293
  358. py2docfx/venv/venv1/Lib/site-packages/win32/lib/ntsecuritycon.py +0 -731
  359. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_bootstrap.py +0 -21
  360. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_testutil.py +0 -291
  361. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywintypes.py +0 -124
  362. py2docfx/venv/venv1/Lib/site-packages/win32/lib/rasutil.py +0 -40
  363. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regcheck.py +0 -161
  364. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regutil.py +0 -395
  365. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspi.py +0 -413
  366. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspicon.py +0 -477
  367. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win2kras.py +0 -14
  368. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32con.py +0 -5064
  369. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32cryptcon.py +0 -1922
  370. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32evtlogutil.py +0 -225
  371. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32gui_struct.py +0 -957
  372. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32inetcon.py +0 -1086
  373. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32netcon.py +0 -627
  374. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhquery.py +0 -570
  375. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhutil.py +0 -212
  376. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32rcparser.py +0 -674
  377. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32serviceutil.py +0 -1073
  378. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32timezone.py +0 -1201
  379. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32traceutil.py +0 -59
  380. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32verstamp.py +0 -235
  381. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winerror.py +0 -7362
  382. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winioctlcon.py +0 -1079
  383. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winnt.py +0 -1347
  384. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winperf.py +0 -236
  385. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winxptheme.py +0 -8
  386. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/ControlService.py +0 -594
  387. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/BrandProject.py +0 -97
  388. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/bulkstamp.py +0 -156
  389. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/vssutil.py +0 -201
  390. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/backupEventLog.py +0 -46
  391. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/h2py.py +0 -194
  392. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/killProcName.py +0 -62
  393. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_postinstall.py +0 -733
  394. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_testall.py +0 -120
  395. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/rasutil.py +0 -98
  396. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/regsetup.py +0 -607
  397. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/setup_d.py +0 -111
  398. py2docfx/venv/venv1/Lib/site-packages/win32/test/handles.py +0 -175
  399. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_clipboard.py +0 -137
  400. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_exceptions.py +0 -213
  401. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_odbc.py +0 -264
  402. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_pywintypes.py +0 -111
  403. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_security.py +0 -166
  404. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_sspi.py +0 -229
  405. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32api.py +0 -273
  406. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32clipboard.py +0 -59
  407. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32cred.py +0 -91
  408. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32crypt.py +0 -144
  409. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32event.py +0 -119
  410. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32file.py +0 -1096
  411. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32gui.py +0 -227
  412. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32guistruct.py +0 -333
  413. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32inet.py +0 -108
  414. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32net.py +0 -23
  415. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32pipe.py +0 -148
  416. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32print.py +0 -24
  417. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32profile.py +0 -19
  418. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32rcparser.py +0 -70
  419. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32timezone.py +0 -16
  420. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32trace.py +0 -366
  421. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32ts.py +0 -19
  422. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32wnet.py +0 -174
  423. py2docfx/venv/venv1/Lib/site-packages/win32/test/testall.py +0 -223
  424. py2docfx/venv/venv1/Lib/site-packages/win32/winxpgui.py +0 -13
  425. py2docfx/venv/venv1/Lib/site-packages/win32com/__init__.py +0 -134
  426. py2docfx/venv/venv1/Lib/site-packages/win32com/client/CLSIDToClass.py +0 -60
  427. py2docfx/venv/venv1/Lib/site-packages/win32com/client/__init__.py +0 -717
  428. py2docfx/venv/venv1/Lib/site-packages/win32com/client/build.py +0 -771
  429. py2docfx/venv/venv1/Lib/site-packages/win32com/client/combrowse.py +0 -604
  430. py2docfx/venv/venv1/Lib/site-packages/win32com/client/connect.py +0 -48
  431. py2docfx/venv/venv1/Lib/site-packages/win32com/client/dynamic.py +0 -699
  432. py2docfx/venv/venv1/Lib/site-packages/win32com/client/gencache.py +0 -825
  433. py2docfx/venv/venv1/Lib/site-packages/win32com/client/genpy.py +0 -1350
  434. py2docfx/venv/venv1/Lib/site-packages/win32com/client/makepy.py +0 -453
  435. py2docfx/venv/venv1/Lib/site-packages/win32com/client/selecttlb.py +0 -182
  436. py2docfx/venv/venv1/Lib/site-packages/win32com/client/tlbrowse.py +0 -277
  437. py2docfx/venv/venv1/Lib/site-packages/win32com/client/util.py +0 -103
  438. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/__init__.py +0 -0
  439. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/connect.py +0 -96
  440. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/dump_clipboard.py +0 -74
  441. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsApartmentThreaded.py +0 -98
  442. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsFreeThreaded.py +0 -92
  443. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelAddin.py +0 -169
  444. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelRTDServer.py +0 -434
  445. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/iebutton.py +0 -214
  446. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/ietoolbar.py +0 -368
  447. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/outlookAddin.py +0 -135
  448. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/trybag.py +0 -78
  449. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/__init__.py +0 -1
  450. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegw.py +0 -618
  451. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwenum.py +0 -331
  452. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwparse.py +0 -1017
  453. py2docfx/venv/venv1/Lib/site-packages/win32com/olectl.py +0 -70
  454. py2docfx/venv/venv1/Lib/site-packages/win32com/server/__init__.py +0 -1
  455. py2docfx/venv/venv1/Lib/site-packages/win32com/server/connect.py +0 -85
  456. py2docfx/venv/venv1/Lib/site-packages/win32com/server/dispatcher.py +0 -239
  457. py2docfx/venv/venv1/Lib/site-packages/win32com/server/exception.py +0 -99
  458. py2docfx/venv/venv1/Lib/site-packages/win32com/server/factory.py +0 -26
  459. py2docfx/venv/venv1/Lib/site-packages/win32com/server/localserver.py +0 -53
  460. py2docfx/venv/venv1/Lib/site-packages/win32com/server/policy.py +0 -803
  461. py2docfx/venv/venv1/Lib/site-packages/win32com/server/register.py +0 -677
  462. py2docfx/venv/venv1/Lib/site-packages/win32com/server/util.py +0 -229
  463. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/PythonTools.py +0 -47
  464. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/__init__.py +0 -0
  465. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/dictionary.py +0 -133
  466. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/interp.py +0 -59
  467. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/perfmon.py +0 -36
  468. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/test_pycomtest.py +0 -181
  469. py2docfx/venv/venv1/Lib/site-packages/win32com/storagecon.py +0 -142
  470. py2docfx/venv/venv1/Lib/site-packages/win32com/test/GenTestScripts.py +0 -95
  471. py2docfx/venv/venv1/Lib/site-packages/win32com/test/__init__.py +0 -1
  472. py2docfx/venv/venv1/Lib/site-packages/win32com/test/daodump.py +0 -88
  473. py2docfx/venv/venv1/Lib/site-packages/win32com/test/errorSemantics.py +0 -243
  474. py2docfx/venv/venv1/Lib/site-packages/win32com/test/pippo_server.py +0 -96
  475. py2docfx/venv/venv1/Lib/site-packages/win32com/test/policySemantics.py +0 -115
  476. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testADOEvents.py +0 -100
  477. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAXScript.py +0 -44
  478. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAccess.py +0 -185
  479. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testArrays.py +0 -99
  480. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testClipboard.py +0 -169
  481. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testCollections.py +0 -159
  482. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testConversionErrors.py +0 -35
  483. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDCOM.py +0 -50
  484. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDates.py +0 -74
  485. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDictionary.py +0 -101
  486. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDynamic.py +0 -83
  487. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExchange.py +0 -121
  488. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExplorer.py +0 -139
  489. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGIT.py +0 -142
  490. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGatewayAddresses.py +0 -149
  491. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testIterators.py +0 -140
  492. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOffice.py +0 -184
  493. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOfficeEvents.py +0 -138
  494. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMarshal.py +0 -160
  495. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPersist.py +0 -227
  496. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPippo.py +0 -80
  497. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPyComTest.py +0 -918
  498. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testROT.py +0 -29
  499. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testServers.py +0 -51
  500. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testShell.py +0 -272
  501. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStorage.py +0 -88
  502. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStreams.py +0 -147
  503. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testWMI.py +0 -18
  504. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testall.py +0 -320
  505. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testmakepy.py +0 -54
  506. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvb.py +0 -583
  507. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvbscript_regexp.py +0 -40
  508. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testxslt.py +0 -34
  509. py2docfx/venv/venv1/Lib/site-packages/win32com/test/util.py +0 -262
  510. py2docfx/venv/venv1/Lib/site-packages/win32com/universal.py +0 -224
  511. py2docfx/venv/venv1/Lib/site-packages/win32com/util.py +0 -35
  512. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/__init__.py +0 -113
  513. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/adsicon.py +0 -340
  514. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/objectPicker.py +0 -68
  515. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/scp.py +0 -565
  516. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/search.py +0 -151
  517. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/test.py +0 -274
  518. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/__init__.py +0 -6
  519. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditSecurity.py +0 -229
  520. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditServiceSecurity.py +0 -219
  521. py2docfx/venv/venv1/Lib/site-packages/win32comext/axcontrol/__init__.py +0 -4
  522. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/__init__.py +0 -4
  523. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/adb.py +0 -467
  524. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/codecontainer.py +0 -279
  525. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/contexts.py +0 -58
  526. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/debugger.py +0 -238
  527. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/documents.py +0 -135
  528. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/dump.py +0 -57
  529. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/expressions.py +0 -212
  530. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/gateways.py +0 -583
  531. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/stackframe.py +0 -178
  532. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/util.py +0 -98
  533. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/__init__.py +0 -4
  534. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/asputil.py +0 -13
  535. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/__init__.py +0 -1
  536. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/debug.py +0 -223
  537. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/error.py +0 -262
  538. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/framework.py +0 -1291
  539. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pydumper.py +0 -78
  540. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript.py +0 -438
  541. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript_rexec.py +0 -54
  542. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/scriptdispatch.py +0 -103
  543. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/__init__.py +0 -0
  544. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/axsite.py +0 -145
  545. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/leakTest.py +0 -185
  546. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost.py +0 -240
  547. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost4Dbg.py +0 -83
  548. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/__init__.py +0 -6
  549. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/show_all_jobs.py +0 -48
  550. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/test_bits.py +0 -119
  551. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/__init__.py +0 -4
  552. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/__init__.py +0 -1
  553. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_record.py +0 -60
  554. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_test.py +0 -402
  555. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/__init__.py +0 -1
  556. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/demo/filterDemo.py +0 -300
  557. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/ifiltercon.py +0 -110
  558. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/__init__.py +0 -4
  559. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/inetcon.py +0 -261
  560. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/__init__.py +0 -21
  561. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/demos/mapisend.py +0 -98
  562. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/emsabtags.py +0 -875
  563. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapitags.py +0 -1023
  564. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapiutil.py +0 -211
  565. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/__init__.py +0 -1
  566. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/pscon.py +0 -838
  567. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/test/testpropsys.py +0 -5
  568. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/__init__.py +0 -4
  569. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IActiveDesktop.py +0 -83
  570. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IFileOperationProgressSink.py +0 -179
  571. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IShellLinkDataList.py +0 -67
  572. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/ITransferAdviseSink.py +0 -93
  573. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IUniformResourceLocator.py +0 -56
  574. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/browse_for_folder.py +0 -45
  575. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/create_link.py +0 -73
  576. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/dump_link.py +0 -58
  577. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/explorer_browser.py +0 -143
  578. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/column_provider.py +0 -125
  579. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/context_menu.py +0 -122
  580. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/copy_hook.py +0 -84
  581. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/empty_volume_cache.py +0 -188
  582. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/folder_view.py +0 -866
  583. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/icon_handler.py +0 -81
  584. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/shell_view.py +0 -971
  585. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/shellexecuteex.py +0 -19
  586. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/viewstate.py +0 -68
  587. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/walk_shell_folders.py +0 -24
  588. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/shellcon.py +0 -1615
  589. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testSHFileOperation.py +0 -75
  590. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellFolder.py +0 -21
  591. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellItem.py +0 -69
  592. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/__init__.py +0 -6
  593. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask.py +0 -66
  594. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_1.py +0 -68
  595. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_2.py +0 -49
  596. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_localsystem.py +0 -3
  597. py2docfx/venv/venv1/Scripts/pywin32_postinstall.py +0 -733
  598. py2docfx/venv/venv1/Scripts/pywin32_testall.py +0 -120
  599. {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/WHEEL +0 -0
  600. {py2docfx-0.1.15.dev2025736.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/top_level.txt +0 -0
@@ -1,879 +0,0 @@
1
- #!/usr/bin/env python
2
- """Python DB API 2.0 driver compliance unit test suite.
3
-
4
- This software is Public Domain and may be used without restrictions.
5
-
6
- "Now we have booze and barflies entering the discussion, plus rumours of
7
- DBAs on drugs... and I won't tell you what flashes through my mind each
8
- time I read the subject line with 'Anal Compliance' in it. All around
9
- this is turning out to be a thoroughly unwholesome unit test."
10
-
11
- -- Ian Bicking
12
- """
13
-
14
- __version__ = "$Revision: 1.15.0 $"[11:-2]
15
- __author__ = "Stuart Bishop <stuart@stuartbishop.net>"
16
-
17
- import time
18
- import unittest
19
-
20
- # set this to "True" to follow API 2.0 to the letter
21
- TEST_FOR_NON_IDEMPOTENT_CLOSE = False
22
-
23
- # Revision 1.15 2019/11/22 00:50:00 kf7xm
24
- # Make Turn off IDEMPOTENT_CLOSE a proper skipTest
25
-
26
- # Revision 1.14 2013/05/20 11:02:05 kf7xm
27
- # Add a literal string to the format insertion test to catch trivial re-format algorithms
28
-
29
- # Revision 1.13 2013/05/08 14:31:50 kf7xm
30
- # Quick switch to Turn off IDEMPOTENT_CLOSE test. Also: Silence teardown failure
31
-
32
-
33
- # Revision 1.12 2009/02/06 03:35:11 kf7xm
34
- # Tested okay with Python 3.0, includes last minute patches from Mark H.
35
- #
36
- # Revision 1.1.1.1.2.1 2008/09/20 19:54:59 rupole
37
- # Include latest changes from main branch
38
- # Updates for py3k
39
- #
40
- # Revision 1.11 2005/01/02 02:41:01 zenzen
41
- # Update author email address
42
- #
43
- # Revision 1.10 2003/10/09 03:14:14 zenzen
44
- # Add test for DB API 2.0 optional extension, where database exceptions
45
- # are exposed as attributes on the Connection object.
46
- #
47
- # Revision 1.9 2003/08/13 01:16:36 zenzen
48
- # Minor tweak from Stefan Fleiter
49
- #
50
- # Revision 1.8 2003/04/10 00:13:25 zenzen
51
- # Changes, as per suggestions by M.-A. Lemburg
52
- # - Add a table prefix, to ensure namespace collisions can always be avoided
53
- #
54
- # Revision 1.7 2003/02/26 23:33:37 zenzen
55
- # Break out DDL into helper functions, as per request by David Rushby
56
- #
57
- # Revision 1.6 2003/02/21 03:04:33 zenzen
58
- # Stuff from Henrik Ekelund:
59
- # added test_None
60
- # added test_nextset & hooks
61
- #
62
- # Revision 1.5 2003/02/17 22:08:43 zenzen
63
- # Implement suggestions and code from Henrik Eklund - test that cursor.arraysize
64
- # defaults to 1 & generic cursor.callproc test added
65
- #
66
- # Revision 1.4 2003/02/15 00:16:33 zenzen
67
- # Changes, as per suggestions and bug reports by M.-A. Lemburg,
68
- # Matthew T. Kromer, Federico Di Gregorio and Daniel Dittmar
69
- # - Class renamed
70
- # - Now a subclass of TestCase, to avoid requiring the driver stub
71
- # to use multiple inheritance
72
- # - Reversed the polarity of buggy test in test_description
73
- # - Test exception hierarchy correctly
74
- # - self.populate is now self._populate(), so if a driver stub
75
- # overrides self.ddl1 this change propogates
76
- # - VARCHAR columns now have a width, which will hopefully make the
77
- # DDL even more portible (this will be reversed if it causes more problems)
78
- # - cursor.rowcount being checked after various execute and fetchXXX methods
79
- # - Check for fetchall and fetchmany returning empty lists after results
80
- # are exhausted (already checking for empty lists if select retrieved
81
- # nothing
82
- # - Fix bugs in test_setoutputsize_basic and test_setinputsizes
83
- #
84
-
85
-
86
- class DatabaseAPI20Test(unittest.TestCase):
87
- """Test a database self.driver for DB API 2.0 compatibility.
88
- This implementation tests Gadfly, but the TestCase
89
- is structured so that other self.drivers can subclass this
90
- test case to ensure compiliance with the DB-API. It is
91
- expected that this TestCase may be expanded in the future
92
- if ambiguities or edge conditions are discovered.
93
-
94
- The 'Optional Extensions' are not yet being tested.
95
-
96
- self.drivers should subclass this test, overriding setUp, tearDown,
97
- self.driver, connect_args and connect_kw_args. Class specification
98
- should be as follows:
99
-
100
- import dbapi20
101
- class mytest(dbapi20.DatabaseAPI20Test):
102
- [...]
103
-
104
- Don't 'import DatabaseAPI20Test from dbapi20', or you will
105
- confuse the unit tester - just 'import dbapi20'.
106
- """
107
-
108
- # The self.driver module. This should be the module where the 'connect'
109
- # method is to be found
110
- driver = None
111
- connect_args = () # List of arguments to pass to connect
112
- connect_kw_args = {} # Keyword arguments for connect
113
- table_prefix = "dbapi20test_" # If you need to specify a prefix for tables
114
-
115
- ddl1 = "create table %sbooze (name varchar(20))" % table_prefix
116
- ddl2 = "create table %sbarflys (name varchar(20), drink varchar(30))" % table_prefix
117
- xddl1 = "drop table %sbooze" % table_prefix
118
- xddl2 = "drop table %sbarflys" % table_prefix
119
-
120
- lowerfunc = "lower" # Name of stored procedure to convert string->lowercase
121
-
122
- # Some drivers may need to override these helpers, for example adding
123
- # a 'commit' after the execute.
124
- def executeDDL1(self, cursor):
125
- cursor.execute(self.ddl1)
126
-
127
- def executeDDL2(self, cursor):
128
- cursor.execute(self.ddl2)
129
-
130
- def setUp(self):
131
- """self.drivers should override this method to perform required setup
132
- if any is necessary, such as creating the database.
133
- """
134
- pass
135
-
136
- def tearDown(self):
137
- """self.drivers should override this method to perform required cleanup
138
- if any is necessary, such as deleting the test database.
139
- The default drops the tables that may be created.
140
- """
141
- try:
142
- con = self._connect()
143
- try:
144
- cur = con.cursor()
145
- for ddl in (self.xddl1, self.xddl2):
146
- try:
147
- cur.execute(ddl)
148
- con.commit()
149
- except self.driver.Error:
150
- # Assume table didn't exist. Other tests will check if
151
- # execute is busted.
152
- pass
153
- finally:
154
- con.close()
155
- except Exception:
156
- pass
157
-
158
- def _connect(self):
159
- try:
160
- r = self.driver.connect(*self.connect_args, **self.connect_kw_args)
161
- except AttributeError:
162
- self.fail("No connect method found in self.driver module")
163
- return r
164
-
165
- def test_connect(self):
166
- con = self._connect()
167
- con.close()
168
-
169
- def test_apilevel(self):
170
- try:
171
- # Must exist
172
- apilevel = self.driver.apilevel
173
- # Must equal 2.0
174
- self.assertEqual(apilevel, "2.0")
175
- except AttributeError:
176
- self.fail("Driver doesn't define apilevel")
177
-
178
- def test_threadsafety(self):
179
- try:
180
- # Must exist
181
- threadsafety = self.driver.threadsafety
182
- # Must be a valid value
183
- self.assertTrue(threadsafety in (0, 1, 2, 3))
184
- except AttributeError:
185
- self.fail("Driver doesn't define threadsafety")
186
-
187
- def test_paramstyle(self):
188
- try:
189
- # Must exist
190
- paramstyle = self.driver.paramstyle
191
- # Must be a valid value
192
- self.assertTrue(
193
- paramstyle in ("qmark", "numeric", "named", "format", "pyformat")
194
- )
195
- except AttributeError:
196
- self.fail("Driver doesn't define paramstyle")
197
-
198
- def test_Exceptions(self):
199
- # Make sure required exceptions exist, and are in the defined hierarchy.
200
- self.assertTrue(issubclass(self.driver.Warning, Exception))
201
- self.assertTrue(issubclass(self.driver.Error, Exception))
202
-
203
- self.assertTrue(issubclass(self.driver.InterfaceError, self.driver.Error))
204
- self.assertTrue(issubclass(self.driver.DatabaseError, self.driver.Error))
205
- self.assertTrue(issubclass(self.driver.OperationalError, self.driver.Error))
206
- self.assertTrue(issubclass(self.driver.IntegrityError, self.driver.Error))
207
- self.assertTrue(issubclass(self.driver.InternalError, self.driver.Error))
208
- self.assertTrue(issubclass(self.driver.ProgrammingError, self.driver.Error))
209
- self.assertTrue(issubclass(self.driver.NotSupportedError, self.driver.Error))
210
-
211
- def test_ExceptionsAsConnectionAttributes(self):
212
- # OPTIONAL EXTENSION
213
- # Test for the optional DB API 2.0 extension, where the exceptions
214
- # are exposed as attributes on the Connection object
215
- # I figure this optional extension will be implemented by any
216
- # driver author who is using this test suite, so it is enabled
217
- # by default.
218
- con = self._connect()
219
- drv = self.driver
220
- self.assertTrue(con.Warning is drv.Warning)
221
- self.assertTrue(con.Error is drv.Error)
222
- self.assertTrue(con.InterfaceError is drv.InterfaceError)
223
- self.assertTrue(con.DatabaseError is drv.DatabaseError)
224
- self.assertTrue(con.OperationalError is drv.OperationalError)
225
- self.assertTrue(con.IntegrityError is drv.IntegrityError)
226
- self.assertTrue(con.InternalError is drv.InternalError)
227
- self.assertTrue(con.ProgrammingError is drv.ProgrammingError)
228
- self.assertTrue(con.NotSupportedError is drv.NotSupportedError)
229
-
230
- def test_commit(self):
231
- con = self._connect()
232
- try:
233
- # Commit must work, even if it doesn't do anything
234
- con.commit()
235
- finally:
236
- con.close()
237
-
238
- def test_rollback(self):
239
- con = self._connect()
240
- # If rollback is defined, it should either work or throw
241
- # the documented exception
242
- if hasattr(con, "rollback"):
243
- try:
244
- con.rollback()
245
- except self.driver.NotSupportedError:
246
- pass
247
-
248
- def test_cursor(self):
249
- con = self._connect()
250
- try:
251
- cur = con.cursor()
252
- finally:
253
- con.close()
254
-
255
- def test_cursor_isolation(self):
256
- con = self._connect()
257
- try:
258
- # Make sure cursors created from the same connection have
259
- # the documented transaction isolation level
260
- cur1 = con.cursor()
261
- cur2 = con.cursor()
262
- self.executeDDL1(cur1)
263
- cur1.execute(
264
- "insert into %sbooze values ('Victoria Bitter')" % (self.table_prefix)
265
- )
266
- cur2.execute("select name from %sbooze" % self.table_prefix)
267
- booze = cur2.fetchall()
268
- self.assertEqual(len(booze), 1)
269
- self.assertEqual(len(booze[0]), 1)
270
- self.assertEqual(booze[0][0], "Victoria Bitter")
271
- finally:
272
- con.close()
273
-
274
- def test_description(self):
275
- con = self._connect()
276
- try:
277
- cur = con.cursor()
278
- self.executeDDL1(cur)
279
- self.assertEqual(
280
- cur.description,
281
- None,
282
- "cursor.description should be none after executing a "
283
- "statement that can return no rows (such as DDL)",
284
- )
285
- cur.execute("select name from %sbooze" % self.table_prefix)
286
- self.assertEqual(
287
- len(cur.description), 1, "cursor.description describes too many columns"
288
- )
289
- self.assertEqual(
290
- len(cur.description[0]),
291
- 7,
292
- "cursor.description[x] tuples must have 7 elements",
293
- )
294
- self.assertEqual(
295
- cur.description[0][0].lower(),
296
- "name",
297
- "cursor.description[x][0] must return column name",
298
- )
299
- self.assertEqual(
300
- cur.description[0][1],
301
- self.driver.STRING,
302
- "cursor.description[x][1] must return column type. Got %r"
303
- % cur.description[0][1],
304
- )
305
-
306
- # Make sure self.description gets reset
307
- self.executeDDL2(cur)
308
- self.assertEqual(
309
- cur.description,
310
- None,
311
- "cursor.description not being set to None when executing "
312
- "no-result statements (eg. DDL)",
313
- )
314
- finally:
315
- con.close()
316
-
317
- def test_rowcount(self):
318
- con = self._connect()
319
- try:
320
- cur = con.cursor()
321
- self.executeDDL1(cur)
322
- self.assertTrue(
323
- cur.rowcount in (-1, 0), # Bug #543885
324
- "cursor.rowcount should be -1 or 0 after executing no-result "
325
- "statements",
326
- )
327
- cur.execute(
328
- "insert into %sbooze values ('Victoria Bitter')" % (self.table_prefix)
329
- )
330
- self.assertTrue(
331
- cur.rowcount in (-1, 1),
332
- "cursor.rowcount should == number or rows inserted, or "
333
- "set to -1 after executing an insert statement",
334
- )
335
- cur.execute("select name from %sbooze" % self.table_prefix)
336
- self.assertTrue(
337
- cur.rowcount in (-1, 1),
338
- "cursor.rowcount should == number of rows returned, or "
339
- "set to -1 after executing a select statement",
340
- )
341
- self.executeDDL2(cur)
342
- self.assertEqual(
343
- cur.rowcount,
344
- -1,
345
- "cursor.rowcount not being reset to -1 after executing "
346
- "no-result statements",
347
- )
348
- finally:
349
- con.close()
350
-
351
- lower_func = "lower"
352
-
353
- def test_callproc(self):
354
- con = self._connect()
355
- try:
356
- cur = con.cursor()
357
- if self.lower_func and hasattr(cur, "callproc"):
358
- r = cur.callproc(self.lower_func, ("FOO",))
359
- self.assertEqual(len(r), 1)
360
- self.assertEqual(r[0], "FOO")
361
- r = cur.fetchall()
362
- self.assertEqual(len(r), 1, "callproc produced no result set")
363
- self.assertEqual(len(r[0]), 1, "callproc produced invalid result set")
364
- self.assertEqual(r[0][0], "foo", "callproc produced invalid results")
365
- finally:
366
- con.close()
367
-
368
- def test_close(self):
369
- con = self._connect()
370
- try:
371
- cur = con.cursor()
372
- finally:
373
- con.close()
374
-
375
- # cursor.execute should raise an Error if called after connection
376
- # closed
377
- self.assertRaises(self.driver.Error, self.executeDDL1, cur)
378
-
379
- # connection.commit should raise an Error if called after connection'
380
- # closed.'
381
- self.assertRaises(self.driver.Error, con.commit)
382
-
383
- # connection.close should raise an Error if called more than once
384
- #!!! reasonable persons differ about the usefulness of this test and this feature !!!
385
- if TEST_FOR_NON_IDEMPOTENT_CLOSE:
386
- self.assertRaises(self.driver.Error, con.close)
387
- else:
388
- self.skipTest(
389
- "Non-idempotent close is considered a bad thing by some people."
390
- )
391
-
392
- def test_execute(self):
393
- con = self._connect()
394
- try:
395
- cur = con.cursor()
396
- self._paraminsert(cur)
397
- finally:
398
- con.close()
399
-
400
- def _paraminsert(self, cur):
401
- self.executeDDL2(cur)
402
- cur.execute(
403
- "insert into %sbarflys values ('Victoria Bitter', 'thi%%s :may ca%%(u)se? troub:1e')"
404
- % (self.table_prefix)
405
- )
406
- self.assertTrue(cur.rowcount in (-1, 1))
407
-
408
- if self.driver.paramstyle == "qmark":
409
- cur.execute(
410
- "insert into %sbarflys values (?, 'thi%%s :may ca%%(u)se? troub:1e')"
411
- % self.table_prefix,
412
- ("Cooper's",),
413
- )
414
- elif self.driver.paramstyle == "numeric":
415
- cur.execute(
416
- "insert into %sbarflys values (:1, 'thi%%s :may ca%%(u)se? troub:1e')"
417
- % self.table_prefix,
418
- ("Cooper's",),
419
- )
420
- elif self.driver.paramstyle == "named":
421
- cur.execute(
422
- "insert into %sbarflys values (:beer, 'thi%%s :may ca%%(u)se? troub:1e')"
423
- % self.table_prefix,
424
- {"beer": "Cooper's"},
425
- )
426
- elif self.driver.paramstyle == "format":
427
- cur.execute(
428
- "insert into %sbarflys values (%%s, 'thi%%s :may ca%%(u)se? troub:1e')"
429
- % self.table_prefix,
430
- ("Cooper's",),
431
- )
432
- elif self.driver.paramstyle == "pyformat":
433
- cur.execute(
434
- "insert into %sbarflys values (%%(beer)s, 'thi%%s :may ca%%(u)se? troub:1e')"
435
- % self.table_prefix,
436
- {"beer": "Cooper's"},
437
- )
438
- else:
439
- self.fail("Invalid paramstyle")
440
- self.assertTrue(cur.rowcount in (-1, 1))
441
-
442
- cur.execute("select name, drink from %sbarflys" % self.table_prefix)
443
- res = cur.fetchall()
444
- self.assertEqual(len(res), 2, "cursor.fetchall returned too few rows")
445
- beers = [res[0][0], res[1][0]]
446
- beers.sort()
447
- self.assertEqual(
448
- beers[0],
449
- "Cooper's",
450
- "cursor.fetchall retrieved incorrect data, or data inserted incorrectly",
451
- )
452
- self.assertEqual(
453
- beers[1],
454
- "Victoria Bitter",
455
- "cursor.fetchall retrieved incorrect data, or data inserted incorrectly",
456
- )
457
- trouble = "thi%s :may ca%(u)se? troub:1e"
458
- self.assertEqual(
459
- res[0][1],
460
- trouble,
461
- "cursor.fetchall retrieved incorrect data, or data inserted "
462
- f"incorrectly. Got={res[0][1]!r}, Expected={trouble!r}",
463
- )
464
- self.assertEqual(
465
- res[1][1],
466
- trouble,
467
- "cursor.fetchall retrieved incorrect data, or data inserted "
468
- f"incorrectly. Got={res[1][1]!r}, Expected={trouble!r}",
469
- )
470
-
471
- def test_executemany(self):
472
- con = self._connect()
473
- try:
474
- cur = con.cursor()
475
- self.executeDDL1(cur)
476
- largs = [("Cooper's",), ("Boag's",)]
477
- margs = [{"beer": "Cooper's"}, {"beer": "Boag's"}]
478
- if self.driver.paramstyle == "qmark":
479
- cur.executemany(
480
- "insert into %sbooze values (?)" % self.table_prefix, largs
481
- )
482
- elif self.driver.paramstyle == "numeric":
483
- cur.executemany(
484
- "insert into %sbooze values (:1)" % self.table_prefix, largs
485
- )
486
- elif self.driver.paramstyle == "named":
487
- cur.executemany(
488
- "insert into %sbooze values (:beer)" % self.table_prefix, margs
489
- )
490
- elif self.driver.paramstyle == "format":
491
- cur.executemany(
492
- "insert into %sbooze values (%%s)" % self.table_prefix, largs
493
- )
494
- elif self.driver.paramstyle == "pyformat":
495
- cur.executemany(
496
- "insert into %sbooze values (%%(beer)s)" % (self.table_prefix),
497
- margs,
498
- )
499
- else:
500
- self.fail("Unknown paramstyle")
501
- self.assertTrue(
502
- cur.rowcount in (-1, 2),
503
- "insert using cursor.executemany set cursor.rowcount to "
504
- "incorrect value %r" % cur.rowcount,
505
- )
506
- cur.execute("select name from %sbooze" % self.table_prefix)
507
- res = cur.fetchall()
508
- self.assertEqual(
509
- len(res), 2, "cursor.fetchall retrieved incorrect number of rows"
510
- )
511
- beers = [res[0][0], res[1][0]]
512
- beers.sort()
513
- self.assertEqual(
514
- beers[0], "Boag's", 'incorrect data "%s" retrieved' % beers[0]
515
- )
516
- self.assertEqual(beers[1], "Cooper's", "incorrect data retrieved")
517
- finally:
518
- con.close()
519
-
520
- def test_fetchone(self):
521
- con = self._connect()
522
- try:
523
- cur = con.cursor()
524
-
525
- # cursor.fetchone should raise an Error if called before
526
- # executing a select-type query
527
- self.assertRaises(self.driver.Error, cur.fetchone)
528
-
529
- # cursor.fetchone should raise an Error if called after
530
- # executing a query that cannnot return rows
531
- self.executeDDL1(cur)
532
- self.assertRaises(self.driver.Error, cur.fetchone)
533
-
534
- cur.execute("select name from %sbooze" % self.table_prefix)
535
- self.assertEqual(
536
- cur.fetchone(),
537
- None,
538
- "cursor.fetchone should return None if a query retrieves no rows",
539
- )
540
- self.assertTrue(cur.rowcount in (-1, 0))
541
-
542
- # cursor.fetchone should raise an Error if called after
543
- # executing a query that cannnot return rows
544
- cur.execute(
545
- "insert into %sbooze values ('Victoria Bitter')" % (self.table_prefix)
546
- )
547
- self.assertRaises(self.driver.Error, cur.fetchone)
548
-
549
- cur.execute("select name from %sbooze" % self.table_prefix)
550
- r = cur.fetchone()
551
- self.assertEqual(
552
- len(r), 1, "cursor.fetchone should have retrieved a single row"
553
- )
554
- self.assertEqual(
555
- r[0], "Victoria Bitter", "cursor.fetchone retrieved incorrect data"
556
- )
557
- self.assertEqual(
558
- cur.fetchone(),
559
- None,
560
- "cursor.fetchone should return None if no more rows available",
561
- )
562
- self.assertTrue(cur.rowcount in (-1, 1))
563
- finally:
564
- con.close()
565
-
566
- samples = [
567
- "Carlton Cold",
568
- "Carlton Draft",
569
- "Mountain Goat",
570
- "Redback",
571
- "Victoria Bitter",
572
- "XXXX",
573
- ]
574
-
575
- def _populate(self):
576
- """Return a list of sql commands to setup the DB for the fetch
577
- tests.
578
- """
579
- populate = [
580
- "insert into %sbooze values ('%s')" % (self.table_prefix, s)
581
- for s in self.samples
582
- ]
583
- return populate
584
-
585
- def test_fetchmany(self):
586
- con = self._connect()
587
- try:
588
- cur = con.cursor()
589
-
590
- # cursor.fetchmany should raise an Error if called without
591
- # issuing a query
592
- self.assertRaises(self.driver.Error, cur.fetchmany, 4)
593
-
594
- self.executeDDL1(cur)
595
- for sql in self._populate():
596
- cur.execute(sql)
597
-
598
- cur.execute("select name from %sbooze" % self.table_prefix)
599
- r = cur.fetchmany()
600
- self.assertEqual(
601
- len(r),
602
- 1,
603
- "cursor.fetchmany retrieved incorrect number of rows, "
604
- "default of arraysize is one.",
605
- )
606
- cur.arraysize = 10
607
- r = cur.fetchmany(3) # Should get 3 rows
608
- self.assertEqual(
609
- len(r), 3, "cursor.fetchmany retrieved incorrect number of rows"
610
- )
611
- r = cur.fetchmany(4) # Should get 2 more
612
- self.assertEqual(
613
- len(r), 2, "cursor.fetchmany retrieved incorrect number of rows"
614
- )
615
- r = cur.fetchmany(4) # Should be an empty sequence
616
- self.assertEqual(
617
- len(r),
618
- 0,
619
- "cursor.fetchmany should return an empty sequence after "
620
- "results are exhausted",
621
- )
622
- self.assertTrue(cur.rowcount in (-1, 6))
623
-
624
- # Same as above, using cursor.arraysize
625
- cur.arraysize = 4
626
- cur.execute("select name from %sbooze" % self.table_prefix)
627
- r = cur.fetchmany() # Should get 4 rows
628
- self.assertEqual(
629
- len(r), 4, "cursor.arraysize not being honoured by fetchmany"
630
- )
631
- r = cur.fetchmany() # Should get 2 more
632
- self.assertEqual(len(r), 2)
633
- r = cur.fetchmany() # Should be an empty sequence
634
- self.assertEqual(len(r), 0)
635
- self.assertTrue(cur.rowcount in (-1, 6))
636
-
637
- cur.arraysize = 6
638
- cur.execute("select name from %sbooze" % self.table_prefix)
639
- rows = cur.fetchmany() # Should get all rows
640
- self.assertTrue(cur.rowcount in (-1, 6))
641
- self.assertEqual(len(rows), 6)
642
- self.assertEqual(len(rows), 6)
643
- rows = [r[0] for r in rows]
644
- rows.sort()
645
-
646
- # Make sure we get the right data back out
647
- for i in range(0, 6):
648
- self.assertEqual(
649
- rows[i],
650
- self.samples[i],
651
- "incorrect data retrieved by cursor.fetchmany",
652
- )
653
-
654
- rows = cur.fetchmany() # Should return an empty list
655
- self.assertEqual(
656
- len(rows),
657
- 0,
658
- "cursor.fetchmany should return an empty sequence if "
659
- "called after the whole result set has been fetched",
660
- )
661
- self.assertTrue(cur.rowcount in (-1, 6))
662
-
663
- self.executeDDL2(cur)
664
- cur.execute("select name from %sbarflys" % self.table_prefix)
665
- r = cur.fetchmany() # Should get empty sequence
666
- self.assertEqual(
667
- len(r),
668
- 0,
669
- "cursor.fetchmany should return an empty sequence if "
670
- "query retrieved no rows",
671
- )
672
- self.assertTrue(cur.rowcount in (-1, 0))
673
-
674
- finally:
675
- con.close()
676
-
677
- def test_fetchall(self):
678
- con = self._connect()
679
- try:
680
- cur = con.cursor()
681
- # cursor.fetchall should raise an Error if called
682
- # without executing a query that may return rows (such
683
- # as a select)
684
- self.assertRaises(self.driver.Error, cur.fetchall)
685
-
686
- self.executeDDL1(cur)
687
- for sql in self._populate():
688
- cur.execute(sql)
689
-
690
- # cursor.fetchall should raise an Error if called
691
- # after executing a a statement that cannot return rows
692
- self.assertRaises(self.driver.Error, cur.fetchall)
693
-
694
- cur.execute("select name from %sbooze" % self.table_prefix)
695
- rows = cur.fetchall()
696
- self.assertTrue(cur.rowcount in (-1, len(self.samples)))
697
- self.assertEqual(
698
- len(rows),
699
- len(self.samples),
700
- "cursor.fetchall did not retrieve all rows",
701
- )
702
- rows = [r[0] for r in rows]
703
- rows.sort()
704
- for i in range(0, len(self.samples)):
705
- self.assertEqual(
706
- rows[i], self.samples[i], "cursor.fetchall retrieved incorrect rows"
707
- )
708
- rows = cur.fetchall()
709
- self.assertEqual(
710
- len(rows),
711
- 0,
712
- "cursor.fetchall should return an empty list if called "
713
- "after the whole result set has been fetched",
714
- )
715
- self.assertTrue(cur.rowcount in (-1, len(self.samples)))
716
-
717
- self.executeDDL2(cur)
718
- cur.execute("select name from %sbarflys" % self.table_prefix)
719
- rows = cur.fetchall()
720
- self.assertTrue(cur.rowcount in (-1, 0))
721
- self.assertEqual(
722
- len(rows),
723
- 0,
724
- "cursor.fetchall should return an empty list if "
725
- "a select query returns no rows",
726
- )
727
-
728
- finally:
729
- con.close()
730
-
731
- def test_mixedfetch(self):
732
- con = self._connect()
733
- try:
734
- cur = con.cursor()
735
- self.executeDDL1(cur)
736
- for sql in self._populate():
737
- cur.execute(sql)
738
-
739
- cur.execute("select name from %sbooze" % self.table_prefix)
740
- rows1 = cur.fetchone()
741
- rows23 = cur.fetchmany(2)
742
- rows4 = cur.fetchone()
743
- rows56 = cur.fetchall()
744
- self.assertTrue(cur.rowcount in (-1, 6))
745
- self.assertEqual(
746
- len(rows23), 2, "fetchmany returned incorrect number of rows"
747
- )
748
- self.assertEqual(
749
- len(rows56), 2, "fetchall returned incorrect number of rows"
750
- )
751
-
752
- rows = [rows1[0]]
753
- rows.extend([rows23[0][0], rows23[1][0]])
754
- rows.append(rows4[0])
755
- rows.extend([rows56[0][0], rows56[1][0]])
756
- rows.sort()
757
- for i in range(0, len(self.samples)):
758
- self.assertEqual(
759
- rows[i], self.samples[i], "incorrect data retrieved or inserted"
760
- )
761
- finally:
762
- con.close()
763
-
764
- def help_nextset_setUp(self, cur):
765
- """Should create a procedure called deleteme
766
- that returns two result sets, first the
767
- number of rows in booze then "name from booze"
768
- """
769
- raise NotImplementedError("Helper not implemented")
770
- # sql="""
771
- # create procedure deleteme as
772
- # begin
773
- # select count(*) from booze
774
- # select name from booze
775
- # end
776
- # """
777
- # cur.execute(sql)
778
-
779
- def help_nextset_tearDown(self, cur):
780
- "If cleaning up is needed after nextSetTest"
781
- raise NotImplementedError("Helper not implemented")
782
- # cur.execute("drop procedure deleteme")
783
-
784
- def test_nextset(self):
785
- raise NotImplementedError("Drivers need to override this test")
786
-
787
- def test_arraysize(self):
788
- # Not much here - rest of the tests for this are in test_fetchmany
789
- con = self._connect()
790
- try:
791
- cur = con.cursor()
792
- self.assertTrue(
793
- hasattr(cur, "arraysize"), "cursor.arraysize must be defined"
794
- )
795
- finally:
796
- con.close()
797
-
798
- def test_setinputsizes(self):
799
- con = self._connect()
800
- try:
801
- cur = con.cursor()
802
- cur.setinputsizes((25,))
803
- self._paraminsert(cur) # Make sure cursor still works
804
- finally:
805
- con.close()
806
-
807
- def test_setoutputsize_basic(self):
808
- # Basic test is to make sure setoutputsize doesn't blow up
809
- con = self._connect()
810
- try:
811
- cur = con.cursor()
812
- cur.setoutputsize(1000)
813
- cur.setoutputsize(2000, 0)
814
- self._paraminsert(cur) # Make sure the cursor still works
815
- finally:
816
- con.close()
817
-
818
- def test_setoutputsize(self):
819
- # Real test for setoutputsize is driver dependant
820
- raise NotImplementedError("Driver needed to override this test")
821
-
822
- def test_None(self):
823
- con = self._connect()
824
- try:
825
- cur = con.cursor()
826
- self.executeDDL1(cur)
827
- cur.execute("insert into %sbooze values (NULL)" % self.table_prefix)
828
- cur.execute("select name from %sbooze" % self.table_prefix)
829
- r = cur.fetchall()
830
- self.assertEqual(len(r), 1)
831
- self.assertEqual(len(r[0]), 1)
832
- self.assertEqual(r[0][0], None, "NULL value not returned as None")
833
- finally:
834
- con.close()
835
-
836
- def test_Date(self):
837
- d1 = self.driver.Date(2002, 12, 25)
838
- d2 = self.driver.DateFromTicks(time.mktime((2002, 12, 25, 0, 0, 0, 0, 0, 0)))
839
- # Can we assume this? API doesn't specify, but it seems implied
840
- # self.assertEqual(str(d1),str(d2))
841
-
842
- def test_Time(self):
843
- t1 = self.driver.Time(13, 45, 30)
844
- t2 = self.driver.TimeFromTicks(time.mktime((2001, 1, 1, 13, 45, 30, 0, 0, 0)))
845
- # Can we assume this? API doesn't specify, but it seems implied
846
- # self.assertEqual(str(t1),str(t2))
847
-
848
- def test_Timestamp(self):
849
- t1 = self.driver.Timestamp(2002, 12, 25, 13, 45, 30)
850
- t2 = self.driver.TimestampFromTicks(
851
- time.mktime((2002, 12, 25, 13, 45, 30, 0, 0, 0))
852
- )
853
- # Can we assume this? API doesn't specify, but it seems implied
854
- # self.assertEqual(str(t1),str(t2))
855
-
856
- def test_Binary(self):
857
- b = self.driver.Binary(b"Something")
858
- b = self.driver.Binary(b"")
859
-
860
- def test_STRING(self):
861
- self.assertTrue(hasattr(self.driver, "STRING"), "module.STRING must be defined")
862
-
863
- def test_BINARY(self):
864
- self.assertTrue(
865
- hasattr(self.driver, "BINARY"), "module.BINARY must be defined."
866
- )
867
-
868
- def test_NUMBER(self):
869
- self.assertTrue(
870
- hasattr(self.driver, "NUMBER"), "module.NUMBER must be defined."
871
- )
872
-
873
- def test_DATETIME(self):
874
- self.assertTrue(
875
- hasattr(self.driver, "DATETIME"), "module.DATETIME must be defined."
876
- )
877
-
878
- def test_ROWID(self):
879
- self.assertTrue(hasattr(self.driver, "ROWID"), "module.ROWID must be defined.")