py2docfx 0.1.15.dev2025501__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 (597) hide show
  1. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  2. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
  3. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  4. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
  5. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  6. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  7. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  8. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  9. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  10. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  11. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  12. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  13. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  14. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  15. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  16. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  17. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  18. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  19. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  20. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_normalization.py +29 -0
  21. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  22. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  23. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  24. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  25. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  26. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  27. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  28. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  29. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  30. py2docfx/venv/basevenv/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  31. py2docfx/venv/basevenv/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  32. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +48 -11
  33. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  34. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  35. py2docfx/venv/basevenv/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  36. py2docfx/venv/basevenv/Lib/site-packages/setuptools/dist.py +115 -9
  37. py2docfx/venv/basevenv/Lib/site-packages/setuptools/msvc.py +12 -3
  38. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  39. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  40. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  41. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  42. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  43. py2docfx/venv/basevenv/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  44. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/__init__.py +1 -1
  45. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/any_pb2.py +4 -4
  46. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/api_pb2.py +4 -4
  47. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/compiler/plugin_pb2.py +4 -4
  48. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_database.py +22 -4
  49. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/descriptor_pb2.py +82 -35
  50. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/duration_pb2.py +4 -4
  51. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/empty_pb2.py +4 -4
  52. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/field_mask_pb2.py +4 -4
  53. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/builder.py +4 -3
  54. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/containers.py +13 -0
  55. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/decoder.py +62 -115
  56. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_edition_defaults.py +1 -1
  57. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/python_message.py +15 -18
  58. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/testing_refleaks.py +4 -1
  59. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/type_checkers.py +5 -0
  60. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/well_known_types.py +3 -3
  61. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/json_format.py +25 -9
  62. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message.py +26 -0
  63. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/message_factory.py +0 -63
  64. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto.py +38 -1
  65. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/proto_text.py +129 -0
  66. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/reflection.py +0 -49
  67. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/runtime_version.py +3 -3
  68. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/source_context_pb2.py +4 -4
  69. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/struct_pb2.py +4 -4
  70. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/symbol_database.py +0 -18
  71. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/text_format.py +8 -3
  72. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/timestamp_pb2.py +4 -4
  73. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/type_pb2.py +4 -4
  74. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/unknown_fields.py +3 -4
  75. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/wrappers_pb2.py +4 -4
  76. py2docfx/venv/venv1/Lib/site-packages/msal/__init__.py +1 -1
  77. py2docfx/venv/venv1/Lib/site-packages/msal/application.py +51 -17
  78. py2docfx/venv/venv1/Lib/site-packages/msal/broker.py +18 -4
  79. py2docfx/venv/venv1/Lib/site-packages/msal/cloudshell.py +5 -1
  80. py2docfx/venv/venv1/Lib/site-packages/msal/managed_identity.py +5 -4
  81. py2docfx/venv/venv1/Lib/site-packages/msal/sku.py +6 -0
  82. py2docfx/venv/venv1/Lib/site-packages/msal/token_cache.py +31 -10
  83. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/__init__.py +2 -3
  84. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/cache_lock.py +4 -1
  85. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/filelock.py +62 -0
  86. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/libsecret.py +1 -1
  87. py2docfx/venv/venv1/Lib/site-packages/msal_extensions/token_cache.py +7 -1
  88. py2docfx/venv/venv1/Lib/site-packages/setuptools/_core_metadata.py +21 -5
  89. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/_msvccompiler.py +2 -0
  90. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/ccompiler.py +5 -2
  91. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/__init__.py +27 -8
  92. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build.py +1 -6
  93. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_clib.py +1 -9
  94. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/build_ext.py +1 -8
  95. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/check.py +1 -1
  96. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/config.py +0 -2
  97. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/command/install.py +8 -17
  98. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compat/numpy.py +2 -0
  99. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/base.py +8 -5
  100. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/msvc.py +1 -1
  101. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/compilers/C/unix.py +15 -1
  102. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/dist.py +2 -1
  103. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/sysconfig.py +0 -10
  104. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/tests/test_build_ext.py +60 -5
  105. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/unixccompiler.py +6 -0
  106. py2docfx/venv/venv1/Lib/site-packages/setuptools/_distutils/util.py +7 -6
  107. py2docfx/venv/venv1/Lib/site-packages/setuptools/_normalization.py +29 -0
  108. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/__init__.py +1 -1
  109. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py +613 -0
  110. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py +2 -2
  111. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/bdist_wheel.py +25 -594
  112. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/__init__.py +6 -6
  113. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/cli/convert.py +282 -223
  114. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/macosx_libfile.py +22 -9
  115. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/metadata.py +16 -13
  116. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/util.py +0 -9
  117. py2docfx/venv/venv1/Lib/site-packages/setuptools/_vendor/wheel/wheelfile.py +40 -9
  118. py2docfx/venv/venv1/Lib/site-packages/setuptools/command/bdist_wheel.py +6 -2
  119. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_apply_pyprojecttoml.py +48 -11
  120. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/extra_validations.py +31 -1
  121. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +222 -129
  122. py2docfx/venv/venv1/Lib/site-packages/setuptools/config/_validate_pyproject/formats.py +30 -3
  123. py2docfx/venv/venv1/Lib/site-packages/setuptools/dist.py +115 -9
  124. py2docfx/venv/venv1/Lib/site-packages/setuptools/msvc.py +12 -3
  125. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/config/test_apply_pyprojecttoml.py +246 -13
  126. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_bdist_wheel.py +93 -8
  127. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_build_meta.py +17 -4
  128. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_core_metadata.py +45 -0
  129. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_egg_info.py +24 -4
  130. py2docfx/venv/venv1/Lib/site-packages/setuptools/tests/test_sdist.py +13 -1
  131. {py2docfx-0.1.15.dev2025501.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/METADATA +1 -1
  132. {py2docfx-0.1.15.dev2025501.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/RECORD +134 -590
  133. py2docfx/venv/venv1/Lib/site-packages/adodbapi/__init__.py +0 -82
  134. py2docfx/venv/venv1/Lib/site-packages/adodbapi/ado_consts.py +0 -283
  135. py2docfx/venv/venv1/Lib/site-packages/adodbapi/adodbapi.py +0 -1153
  136. py2docfx/venv/venv1/Lib/site-packages/adodbapi/apibase.py +0 -723
  137. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_print.py +0 -72
  138. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/db_table_names.py +0 -21
  139. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_read.py +0 -41
  140. py2docfx/venv/venv1/Lib/site-packages/adodbapi/examples/xls_write.py +0 -41
  141. py2docfx/venv/venv1/Lib/site-packages/adodbapi/is64bit.py +0 -34
  142. py2docfx/venv/venv1/Lib/site-packages/adodbapi/process_connect_string.py +0 -137
  143. py2docfx/venv/venv1/Lib/site-packages/adodbapi/schema_table.py +0 -16
  144. py2docfx/venv/venv1/Lib/site-packages/adodbapi/setup.py +0 -68
  145. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitest.py +0 -1547
  146. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/adodbapitestconfig.py +0 -184
  147. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/dbapi20.py +0 -879
  148. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/is64bit.py +0 -34
  149. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/setuptestframework.py +0 -98
  150. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/test_adodbapi_dbapi20.py +0 -195
  151. py2docfx/venv/venv1/Lib/site-packages/adodbapi/test/tryconnection.py +0 -30
  152. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/internal/_parameterized.py +0 -420
  153. py2docfx/venv/venv1/Lib/site-packages/google/protobuf/service.py +0 -213
  154. py2docfx/venv/venv1/Lib/site-packages/isapi/__init__.py +0 -39
  155. py2docfx/venv/venv1/Lib/site-packages/isapi/install.py +0 -809
  156. py2docfx/venv/venv1/Lib/site-packages/isapi/isapicon.py +0 -121
  157. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/advanced.py +0 -218
  158. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector.py +0 -116
  159. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_asynch.py +0 -85
  160. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/redirector_with_filter.py +0 -162
  161. py2docfx/venv/venv1/Lib/site-packages/isapi/samples/test.py +0 -195
  162. py2docfx/venv/venv1/Lib/site-packages/isapi/simple.py +0 -73
  163. py2docfx/venv/venv1/Lib/site-packages/isapi/test/extension_simple.py +0 -114
  164. py2docfx/venv/venv1/Lib/site-packages/isapi/threaded_extension.py +0 -191
  165. py2docfx/venv/venv1/Lib/site-packages/portalocker/__about__.py +0 -6
  166. py2docfx/venv/venv1/Lib/site-packages/portalocker/__init__.py +0 -79
  167. py2docfx/venv/venv1/Lib/site-packages/portalocker/__main__.py +0 -122
  168. py2docfx/venv/venv1/Lib/site-packages/portalocker/constants.py +0 -59
  169. py2docfx/venv/venv1/Lib/site-packages/portalocker/exceptions.py +0 -27
  170. py2docfx/venv/venv1/Lib/site-packages/portalocker/portalocker.py +0 -154
  171. py2docfx/venv/venv1/Lib/site-packages/portalocker/redis.py +0 -236
  172. py2docfx/venv/venv1/Lib/site-packages/portalocker/utils.py +0 -569
  173. py2docfx/venv/venv1/Lib/site-packages/pythoncom.py +0 -4
  174. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/basictimerapp.py +0 -258
  175. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/customprint.py +0 -183
  176. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/demoutils.py +0 -63
  177. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dlgappdemo.py +0 -51
  178. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/dojobapp.py +0 -71
  179. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/app/helloapp.py +0 -53
  180. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/cmdserver.py +0 -113
  181. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/createwin.py +0 -114
  182. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/demoutils.py +0 -65
  183. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dibdemo.py +0 -73
  184. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dlgtest.py +0 -145
  185. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/dyndlg.py +0 -104
  186. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/fontdemo.py +0 -85
  187. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/guidemo.py +0 -53
  188. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/hiertest.py +0 -138
  189. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/menutest.py +0 -13
  190. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/objdoc.py +0 -57
  191. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/demoutils.py +0 -63
  192. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/flash.py +0 -95
  193. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/msoffice.py +0 -159
  194. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxserialtest.py +0 -132
  195. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/ocxtest.py +0 -243
  196. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/ocx/webbrowser.py +0 -72
  197. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/openGLDemo.py +0 -415
  198. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/progressbar.py +0 -105
  199. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/sliderdemo.py +0 -76
  200. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/splittst.py +0 -79
  201. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/threadedgui.py +0 -189
  202. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/Demos/toolbar.py +0 -105
  203. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/__init__.py +0 -3
  204. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/__init__.py +0 -133
  205. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/configui.py +0 -34
  206. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgcon.py +0 -31
  207. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/dbgpyapp.py +0 -48
  208. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/debugger.py +0 -1097
  209. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/debugger/fail.py +0 -54
  210. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/__init__.py +0 -0
  211. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/ideoptions.py +0 -136
  212. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/list.py +0 -146
  213. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/login.py +0 -155
  214. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/dialogs/status.py +0 -242
  215. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/DockingBar.py +0 -676
  216. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/docking/__init__.py +0 -0
  217. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/__init__.py +0 -0
  218. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/app.py +0 -411
  219. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/bitmap.py +0 -168
  220. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/cmdline.py +0 -54
  221. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dbgcommands.py +0 -188
  222. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/dlgappcore.py +0 -76
  223. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/ModuleBrowser.py +0 -235
  224. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/__init__.py +0 -105
  225. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/__init__.py +0 -0
  226. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/color/coloreditor.py +0 -646
  227. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/configui.py +0 -299
  228. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/document.py +0 -379
  229. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/editor.py +0 -511
  230. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/frame.py +0 -74
  231. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/template.py +0 -59
  232. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/editor/vss.py +0 -104
  233. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/help.py +0 -173
  234. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/interact.py +0 -995
  235. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpyapp.py +0 -552
  236. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/intpydde.py +0 -65
  237. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/scriptutils.py +0 -684
  238. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/sgrepmdi.py +0 -749
  239. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/startup.py +0 -70
  240. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/stdin.py +0 -172
  241. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/toolmenu.py +0 -279
  242. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/window.py +0 -14
  243. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/framework/winout.py +0 -589
  244. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoExpand.py +0 -95
  245. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/AutoIndent.py +0 -536
  246. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/CallTips.py +0 -216
  247. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/FormatParagraph.py +0 -166
  248. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/IdleHistory.py +0 -87
  249. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/PyParse.py +0 -585
  250. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/idle/__init__.py +0 -1
  251. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/__init__.py +0 -0
  252. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/activex.py +0 -79
  253. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/afxres.py +0 -501
  254. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/dialog.py +0 -277
  255. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/docview.py +0 -151
  256. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/object.py +0 -66
  257. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/thread.py +0 -25
  258. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/mfc/window.py +0 -50
  259. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/IDLEenvironment.py +0 -593
  260. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/__init__.py +0 -1
  261. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/bindings.py +0 -180
  262. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/config.py +0 -363
  263. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/configui.py +0 -291
  264. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/control.py +0 -565
  265. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/document.py +0 -312
  266. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/find.py +0 -511
  267. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/formatter.py +0 -704
  268. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/keycodes.py +0 -190
  269. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/scintillacon.py +0 -3083
  270. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/scintilla/view.py +0 -841
  271. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/TraceCollector.py +0 -79
  272. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/__init__.py +0 -0
  273. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browseProjects.py +0 -323
  274. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/browser.py +0 -494
  275. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/hierlist.py +0 -353
  276. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regedit.py +0 -382
  277. py2docfx/venv/venv1/Lib/site-packages/pythonwin/pywin/tools/regpy.py +0 -80
  278. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupRead_BackupWrite.py +0 -119
  279. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/BackupSeek_streamheaders.py +0 -137
  280. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CopyFileEx.py +0 -57
  281. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/CreateFileTransacted_MiniVersion.py +0 -122
  282. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtFormatMessage.py +0 -83
  283. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_pull.py +0 -28
  284. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/EvtSubscribe_push.py +0 -32
  285. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/FileSecurityTest.py +0 -137
  286. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/GetSaveFileName.py +0 -43
  287. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/NetValidatePasswordPolicy.py +0 -127
  288. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/OpenEncryptedFileRaw.py +0 -66
  289. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegCreateKeyTransacted.py +0 -60
  290. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/RegRestoreKey.py +0 -71
  291. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/SystemParametersInfo.py +0 -210
  292. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/c_extension/setup.py +0 -26
  293. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeclient.py +0 -18
  294. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/dde/ddeserver.py +0 -42
  295. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/desktopmanager.py +0 -246
  296. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/eventLogDemo.py +0 -143
  297. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/getfilever.py +0 -33
  298. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/mmapfile_demo.py +0 -101
  299. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/cat.py +0 -17
  300. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/pipes/runproc.py +0 -114
  301. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/print_desktop.py +0 -113
  302. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/rastest.py +0 -166
  303. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/GetTokenInformation.py +0 -110
  304. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/account_rights.py +0 -49
  305. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/explicit_entries.py +0 -170
  306. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/get_policy_info.py +0 -39
  307. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/list_rights.py +0 -35
  308. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/localized_names.py +0 -70
  309. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsaregevent.py +0 -14
  310. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/lsastore.py +0 -12
  311. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/query_information.py +0 -25
  312. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsave_sa.py +0 -61
  313. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/regsecurity.py +0 -36
  314. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sa_inherit.py +0 -8
  315. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/security_enums.py +0 -336
  316. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_audit.py +0 -106
  317. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_file_owner.py +0 -73
  318. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/set_policy_info.py +0 -25
  319. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setkernelobjectsecurity.py +0 -134
  320. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setnamedsecurityinfo.py +0 -131
  321. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setsecurityinfo.py +0 -131
  322. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/setuserobjectsecurity.py +0 -102
  323. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/fetch_url.py +0 -158
  324. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/simple_auth.py +0 -72
  325. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/socket_server.py +0 -199
  326. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/security/sspi/validate_password.py +0 -41
  327. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/nativePipeTestService.py +0 -63
  328. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestService.py +0 -185
  329. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/pipeTestServiceClient.py +0 -158
  330. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/service/serviceEvents.py +0 -98
  331. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/timer_demo.py +0 -72
  332. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboardDemo.py +0 -155
  333. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32clipboard_bitmapdemo.py +0 -117
  334. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32comport_demo.py +0 -174
  335. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32console_demo.py +0 -132
  336. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32cred_demo.py +0 -82
  337. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32fileDemo.py +0 -41
  338. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_demo.py +0 -177
  339. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_devicenotify.py +0 -106
  340. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_dialog.py +0 -445
  341. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_menu.py +0 -464
  342. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32gui_taskbar.py +0 -136
  343. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32netdemo.py +0 -272
  344. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32rcparser_demo.py +0 -86
  345. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32servicedemo.py +0 -23
  346. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32ts_logoff_disconnected.py +0 -25
  347. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/testwnet.py +0 -123
  348. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/win32wnet/winnetwk.py +0 -100
  349. py2docfx/venv/venv1/Lib/site-packages/win32/Demos/winprocess.py +0 -230
  350. py2docfx/venv/venv1/Lib/site-packages/win32/lib/_win32verstamp_pywin32ctypes.py +0 -164
  351. py2docfx/venv/venv1/Lib/site-packages/win32/lib/afxres.py +0 -8
  352. py2docfx/venv/venv1/Lib/site-packages/win32/lib/commctrl.py +0 -1551
  353. py2docfx/venv/venv1/Lib/site-packages/win32/lib/mmsystem.py +0 -956
  354. py2docfx/venv/venv1/Lib/site-packages/win32/lib/netbios.py +0 -293
  355. py2docfx/venv/venv1/Lib/site-packages/win32/lib/ntsecuritycon.py +0 -731
  356. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_bootstrap.py +0 -21
  357. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywin32_testutil.py +0 -291
  358. py2docfx/venv/venv1/Lib/site-packages/win32/lib/pywintypes.py +0 -124
  359. py2docfx/venv/venv1/Lib/site-packages/win32/lib/rasutil.py +0 -40
  360. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regcheck.py +0 -161
  361. py2docfx/venv/venv1/Lib/site-packages/win32/lib/regutil.py +0 -395
  362. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspi.py +0 -413
  363. py2docfx/venv/venv1/Lib/site-packages/win32/lib/sspicon.py +0 -477
  364. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win2kras.py +0 -14
  365. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32con.py +0 -5064
  366. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32cryptcon.py +0 -1922
  367. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32evtlogutil.py +0 -225
  368. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32gui_struct.py +0 -957
  369. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32inetcon.py +0 -1086
  370. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32netcon.py +0 -627
  371. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhquery.py +0 -570
  372. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32pdhutil.py +0 -212
  373. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32rcparser.py +0 -674
  374. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32serviceutil.py +0 -1073
  375. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32timezone.py +0 -1201
  376. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32traceutil.py +0 -59
  377. py2docfx/venv/venv1/Lib/site-packages/win32/lib/win32verstamp.py +0 -235
  378. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winerror.py +0 -7362
  379. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winioctlcon.py +0 -1079
  380. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winnt.py +0 -1347
  381. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winperf.py +0 -236
  382. py2docfx/venv/venv1/Lib/site-packages/win32/lib/winxptheme.py +0 -8
  383. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/ControlService.py +0 -594
  384. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/BrandProject.py +0 -97
  385. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/bulkstamp.py +0 -156
  386. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/VersionStamp/vssutil.py +0 -201
  387. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/backupEventLog.py +0 -46
  388. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/h2py.py +0 -194
  389. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/killProcName.py +0 -62
  390. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_postinstall.py +0 -733
  391. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/pywin32_testall.py +0 -120
  392. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/rasutil.py +0 -98
  393. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/regsetup.py +0 -607
  394. py2docfx/venv/venv1/Lib/site-packages/win32/scripts/setup_d.py +0 -111
  395. py2docfx/venv/venv1/Lib/site-packages/win32/test/handles.py +0 -175
  396. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_clipboard.py +0 -137
  397. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_exceptions.py +0 -213
  398. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_odbc.py +0 -264
  399. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_pywintypes.py +0 -111
  400. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_security.py +0 -166
  401. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_sspi.py +0 -229
  402. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32api.py +0 -273
  403. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32clipboard.py +0 -59
  404. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32cred.py +0 -91
  405. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32crypt.py +0 -144
  406. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32event.py +0 -119
  407. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32file.py +0 -1096
  408. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32gui.py +0 -227
  409. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32guistruct.py +0 -333
  410. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32inet.py +0 -108
  411. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32net.py +0 -23
  412. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32pipe.py +0 -148
  413. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32print.py +0 -24
  414. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32profile.py +0 -19
  415. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32rcparser.py +0 -70
  416. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32timezone.py +0 -16
  417. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32trace.py +0 -366
  418. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32ts.py +0 -19
  419. py2docfx/venv/venv1/Lib/site-packages/win32/test/test_win32wnet.py +0 -174
  420. py2docfx/venv/venv1/Lib/site-packages/win32/test/testall.py +0 -223
  421. py2docfx/venv/venv1/Lib/site-packages/win32/winxpgui.py +0 -13
  422. py2docfx/venv/venv1/Lib/site-packages/win32com/__init__.py +0 -134
  423. py2docfx/venv/venv1/Lib/site-packages/win32com/client/CLSIDToClass.py +0 -60
  424. py2docfx/venv/venv1/Lib/site-packages/win32com/client/__init__.py +0 -717
  425. py2docfx/venv/venv1/Lib/site-packages/win32com/client/build.py +0 -771
  426. py2docfx/venv/venv1/Lib/site-packages/win32com/client/combrowse.py +0 -604
  427. py2docfx/venv/venv1/Lib/site-packages/win32com/client/connect.py +0 -48
  428. py2docfx/venv/venv1/Lib/site-packages/win32com/client/dynamic.py +0 -699
  429. py2docfx/venv/venv1/Lib/site-packages/win32com/client/gencache.py +0 -825
  430. py2docfx/venv/venv1/Lib/site-packages/win32com/client/genpy.py +0 -1350
  431. py2docfx/venv/venv1/Lib/site-packages/win32com/client/makepy.py +0 -453
  432. py2docfx/venv/venv1/Lib/site-packages/win32com/client/selecttlb.py +0 -182
  433. py2docfx/venv/venv1/Lib/site-packages/win32com/client/tlbrowse.py +0 -277
  434. py2docfx/venv/venv1/Lib/site-packages/win32com/client/util.py +0 -103
  435. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/__init__.py +0 -0
  436. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/connect.py +0 -96
  437. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/dump_clipboard.py +0 -74
  438. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsApartmentThreaded.py +0 -98
  439. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/eventsFreeThreaded.py +0 -92
  440. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelAddin.py +0 -169
  441. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/excelRTDServer.py +0 -434
  442. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/iebutton.py +0 -214
  443. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/ietoolbar.py +0 -368
  444. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/outlookAddin.py +0 -135
  445. py2docfx/venv/venv1/Lib/site-packages/win32com/demos/trybag.py +0 -78
  446. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/__init__.py +0 -1
  447. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegw.py +0 -618
  448. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwenum.py +0 -331
  449. py2docfx/venv/venv1/Lib/site-packages/win32com/makegw/makegwparse.py +0 -1017
  450. py2docfx/venv/venv1/Lib/site-packages/win32com/olectl.py +0 -70
  451. py2docfx/venv/venv1/Lib/site-packages/win32com/server/__init__.py +0 -1
  452. py2docfx/venv/venv1/Lib/site-packages/win32com/server/connect.py +0 -85
  453. py2docfx/venv/venv1/Lib/site-packages/win32com/server/dispatcher.py +0 -239
  454. py2docfx/venv/venv1/Lib/site-packages/win32com/server/exception.py +0 -99
  455. py2docfx/venv/venv1/Lib/site-packages/win32com/server/factory.py +0 -26
  456. py2docfx/venv/venv1/Lib/site-packages/win32com/server/localserver.py +0 -53
  457. py2docfx/venv/venv1/Lib/site-packages/win32com/server/policy.py +0 -803
  458. py2docfx/venv/venv1/Lib/site-packages/win32com/server/register.py +0 -677
  459. py2docfx/venv/venv1/Lib/site-packages/win32com/server/util.py +0 -229
  460. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/PythonTools.py +0 -47
  461. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/__init__.py +0 -0
  462. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/dictionary.py +0 -133
  463. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/interp.py +0 -59
  464. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/perfmon.py +0 -36
  465. py2docfx/venv/venv1/Lib/site-packages/win32com/servers/test_pycomtest.py +0 -181
  466. py2docfx/venv/venv1/Lib/site-packages/win32com/storagecon.py +0 -142
  467. py2docfx/venv/venv1/Lib/site-packages/win32com/test/GenTestScripts.py +0 -95
  468. py2docfx/venv/venv1/Lib/site-packages/win32com/test/__init__.py +0 -1
  469. py2docfx/venv/venv1/Lib/site-packages/win32com/test/daodump.py +0 -88
  470. py2docfx/venv/venv1/Lib/site-packages/win32com/test/errorSemantics.py +0 -243
  471. py2docfx/venv/venv1/Lib/site-packages/win32com/test/pippo_server.py +0 -96
  472. py2docfx/venv/venv1/Lib/site-packages/win32com/test/policySemantics.py +0 -115
  473. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testADOEvents.py +0 -100
  474. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAXScript.py +0 -44
  475. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testAccess.py +0 -185
  476. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testArrays.py +0 -99
  477. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testClipboard.py +0 -169
  478. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testCollections.py +0 -159
  479. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testConversionErrors.py +0 -35
  480. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDCOM.py +0 -50
  481. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDates.py +0 -74
  482. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDictionary.py +0 -101
  483. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testDynamic.py +0 -83
  484. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExchange.py +0 -121
  485. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testExplorer.py +0 -139
  486. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGIT.py +0 -142
  487. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testGatewayAddresses.py +0 -149
  488. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testIterators.py +0 -140
  489. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOffice.py +0 -184
  490. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMSOfficeEvents.py +0 -138
  491. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testMarshal.py +0 -160
  492. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPersist.py +0 -227
  493. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPippo.py +0 -80
  494. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testPyComTest.py +0 -918
  495. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testROT.py +0 -29
  496. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testServers.py +0 -51
  497. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testShell.py +0 -272
  498. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStorage.py +0 -88
  499. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testStreams.py +0 -147
  500. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testWMI.py +0 -18
  501. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testall.py +0 -320
  502. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testmakepy.py +0 -54
  503. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvb.py +0 -583
  504. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testvbscript_regexp.py +0 -40
  505. py2docfx/venv/venv1/Lib/site-packages/win32com/test/testxslt.py +0 -34
  506. py2docfx/venv/venv1/Lib/site-packages/win32com/test/util.py +0 -262
  507. py2docfx/venv/venv1/Lib/site-packages/win32com/universal.py +0 -224
  508. py2docfx/venv/venv1/Lib/site-packages/win32com/util.py +0 -35
  509. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/__init__.py +0 -113
  510. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/adsicon.py +0 -340
  511. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/objectPicker.py +0 -68
  512. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/scp.py +0 -565
  513. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/search.py +0 -151
  514. py2docfx/venv/venv1/Lib/site-packages/win32comext/adsi/demos/test.py +0 -274
  515. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/__init__.py +0 -6
  516. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditSecurity.py +0 -229
  517. py2docfx/venv/venv1/Lib/site-packages/win32comext/authorization/demos/EditServiceSecurity.py +0 -219
  518. py2docfx/venv/venv1/Lib/site-packages/win32comext/axcontrol/__init__.py +0 -4
  519. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/__init__.py +0 -4
  520. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/adb.py +0 -467
  521. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/codecontainer.py +0 -279
  522. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/contexts.py +0 -58
  523. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/debugger.py +0 -238
  524. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/documents.py +0 -135
  525. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/dump.py +0 -57
  526. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/expressions.py +0 -212
  527. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/gateways.py +0 -583
  528. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/stackframe.py +0 -178
  529. py2docfx/venv/venv1/Lib/site-packages/win32comext/axdebug/util.py +0 -98
  530. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/__init__.py +0 -4
  531. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/asputil.py +0 -13
  532. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/__init__.py +0 -1
  533. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/debug.py +0 -223
  534. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/error.py +0 -262
  535. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/framework.py +0 -1291
  536. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pydumper.py +0 -78
  537. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript.py +0 -438
  538. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/pyscript_rexec.py +0 -54
  539. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/client/scriptdispatch.py +0 -103
  540. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/__init__.py +0 -0
  541. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/server/axsite.py +0 -145
  542. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/leakTest.py +0 -185
  543. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost.py +0 -240
  544. py2docfx/venv/venv1/Lib/site-packages/win32comext/axscript/test/testHost4Dbg.py +0 -83
  545. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/__init__.py +0 -6
  546. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/show_all_jobs.py +0 -48
  547. py2docfx/venv/venv1/Lib/site-packages/win32comext/bits/test/test_bits.py +0 -119
  548. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/__init__.py +0 -4
  549. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/__init__.py +0 -1
  550. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_record.py +0 -60
  551. py2docfx/venv/venv1/Lib/site-packages/win32comext/directsound/test/ds_test.py +0 -402
  552. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/__init__.py +0 -1
  553. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/demo/filterDemo.py +0 -300
  554. py2docfx/venv/venv1/Lib/site-packages/win32comext/ifilter/ifiltercon.py +0 -110
  555. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/__init__.py +0 -4
  556. py2docfx/venv/venv1/Lib/site-packages/win32comext/internet/inetcon.py +0 -261
  557. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/__init__.py +0 -21
  558. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/demos/mapisend.py +0 -98
  559. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/emsabtags.py +0 -875
  560. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapitags.py +0 -1023
  561. py2docfx/venv/venv1/Lib/site-packages/win32comext/mapi/mapiutil.py +0 -211
  562. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/__init__.py +0 -1
  563. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/pscon.py +0 -838
  564. py2docfx/venv/venv1/Lib/site-packages/win32comext/propsys/test/testpropsys.py +0 -5
  565. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/__init__.py +0 -4
  566. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IActiveDesktop.py +0 -83
  567. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IFileOperationProgressSink.py +0 -179
  568. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IShellLinkDataList.py +0 -67
  569. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/ITransferAdviseSink.py +0 -93
  570. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/IUniformResourceLocator.py +0 -56
  571. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/browse_for_folder.py +0 -45
  572. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/create_link.py +0 -73
  573. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/dump_link.py +0 -58
  574. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/explorer_browser.py +0 -143
  575. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/column_provider.py +0 -125
  576. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/context_menu.py +0 -122
  577. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/copy_hook.py +0 -84
  578. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/empty_volume_cache.py +0 -188
  579. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/folder_view.py +0 -866
  580. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/icon_handler.py +0 -81
  581. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/servers/shell_view.py +0 -971
  582. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/shellexecuteex.py +0 -19
  583. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/viewstate.py +0 -68
  584. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/demos/walk_shell_folders.py +0 -24
  585. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/shellcon.py +0 -1615
  586. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testSHFileOperation.py +0 -75
  587. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellFolder.py +0 -21
  588. py2docfx/venv/venv1/Lib/site-packages/win32comext/shell/test/testShellItem.py +0 -69
  589. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/__init__.py +0 -6
  590. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask.py +0 -66
  591. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_1.py +0 -68
  592. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_addtask_2.py +0 -49
  593. py2docfx/venv/venv1/Lib/site-packages/win32comext/taskscheduler/test/test_localsystem.py +0 -3
  594. py2docfx/venv/venv1/Scripts/pywin32_postinstall.py +0 -733
  595. py2docfx/venv/venv1/Scripts/pywin32_testall.py +0 -120
  596. {py2docfx-0.1.15.dev2025501.dist-info → py2docfx-0.1.15.dev2038808.dist-info}/WHEEL +0 -0
  597. {py2docfx-0.1.15.dev2025501.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.")