wrapt 2.3.0.dev1__tar.gz → 2.3.0rc2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. {wrapt-2.3.0.dev1/src/wrapt.egg-info → wrapt-2.3.0rc2}/PKG-INFO +1 -1
  2. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt/__init__.py +1 -1
  3. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt/_wrappers.c +2 -1
  4. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2/src/wrapt.egg-info}/PKG-INFO +1 -1
  5. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_object_proxy.py +49 -0
  6. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/LICENSE +0 -0
  7. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/MANIFEST.in +0 -0
  8. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/README.md +0 -0
  9. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/RELEASE.rst +0 -0
  10. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/pyproject.toml +0 -0
  11. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/setup.cfg +0 -0
  12. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/setup.py +0 -0
  13. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt/__wrapt__.py +0 -0
  14. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt/arguments.py +0 -0
  15. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt/caching.py +0 -0
  16. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt/decorators.py +0 -0
  17. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt/importer.py +0 -0
  18. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt/patches.py +0 -0
  19. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt/proxies.py +0 -0
  20. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt/signature.py +0 -0
  21. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt/synchronization.py +0 -0
  22. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt/weakrefs.py +0 -0
  23. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt/wrappers.py +0 -0
  24. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt-stubs/__init__.pyi +0 -0
  25. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt.egg-info/SOURCES.txt +0 -0
  26. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt.egg-info/dependency_links.txt +0 -0
  27. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt.egg-info/not-zip-safe +0 -0
  28. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt.egg-info/requires.txt +0 -0
  29. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/src/wrapt.egg-info/top_level.txt +0 -0
  30. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/conftest.py +0 -0
  31. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/compat.py +0 -0
  32. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/module1.py +0 -0
  33. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/module2.py +0 -0
  34. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_adapter.py +0 -0
  35. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_adapter_annotations.py +0 -0
  36. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_adapter_kwonly.py +0 -0
  37. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_annotations.py +0 -0
  38. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_attribute_wrapper.py +0 -0
  39. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_auto_object_proxy.py +0 -0
  40. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_callable_binding_no_args.py +0 -0
  41. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_callable_object_proxy.py +0 -0
  42. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_class.py +0 -0
  43. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_class_mro_entries.py +0 -0
  44. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_copy.py +0 -0
  45. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_decorator_state.py +0 -0
  46. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_decorators.py +0 -0
  47. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_deferred_patching.py +0 -0
  48. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_descriptor_get_class_access.py +0 -0
  49. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_descriptors.py +0 -0
  50. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_enabled_bool_error.py +0 -0
  51. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_entry_points.py +0 -0
  52. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_formatargspec.py +0 -0
  53. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_function.py +0 -0
  54. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_function_wrapper.py +0 -0
  55. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_inheritance.py +0 -0
  56. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_inner_classmethod.py +0 -0
  57. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_inner_staticmethod.py +0 -0
  58. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_inplace_operators.py +0 -0
  59. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_instancemethod.py +0 -0
  60. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_lazy_object_proxy.py +0 -0
  61. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_lru_cache.py +0 -0
  62. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_memoize.py +0 -0
  63. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_monkey_patching.py +0 -0
  64. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_nested_function.py +0 -0
  65. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_object_proxy_hook.py +0 -0
  66. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_object_proxy_self_dict.py +0 -0
  67. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_object_proxy_type_checks.py +0 -0
  68. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_outer_classmethod.py +0 -0
  69. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_outer_staticmethod.py +0 -0
  70. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_pickle.py +0 -0
  71. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_post_import_hooks.py +0 -0
  72. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_pyerr_clear_propagation.py +0 -0
  73. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_resolve_path.py +0 -0
  74. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_runtime_type_hints.py +0 -0
  75. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_synchronized_async.py +0 -0
  76. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_synchronized_lock.py +0 -0
  77. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_synchronized_markers.py +0 -0
  78. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_type_module_attribute.py +0 -0
  79. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_update_attributes.py +0 -0
  80. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_weak_function_proxy.py +0 -0
  81. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/core/test_with_signature.py +0 -0
  82. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_auto_object_proxy_t1.out +0 -0
  83. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_auto_object_proxy_t1.py +0 -0
  84. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_decorator_t1.out +0 -0
  85. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_decorator_t1.py +0 -0
  86. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t1.out +0 -0
  87. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t1.py +0 -0
  88. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t2.out +0 -0
  89. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t2.py +0 -0
  90. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t3.out +0 -0
  91. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t3.py +0 -0
  92. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t4.out +0 -0
  93. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t4.py +0 -0
  94. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t5.out +0 -0
  95. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t5.py +0 -0
  96. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t6.out +0 -0
  97. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t6.py +0 -0
  98. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t7.out +0 -0
  99. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t7.py +0 -0
  100. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t8.out +0 -0
  101. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_cls_t8.py +0 -0
  102. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_fn_t1.out +0 -0
  103. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_fn_t1.py +0 -0
  104. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_fn_t2.out +0 -0
  105. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_fn_t2.py +0 -0
  106. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_fn_t3.out +0 -0
  107. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_fn_t3.py +0 -0
  108. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_fn_t4.out +0 -0
  109. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_fn_t4.py +0 -0
  110. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_fn_t5.out +0 -0
  111. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_fn_t5.py +0 -0
  112. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_fn_t6.out +0 -0
  113. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_fn_t6.py +0 -0
  114. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_fn_t7.out +0 -0
  115. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_function_wrapper_fn_t7.py +0 -0
  116. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_object_proxy_arithmetic_t1.out +0 -0
  117. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_object_proxy_arithmetic_t1.py +0 -0
  118. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_object_proxy_container_t1.out +0 -0
  119. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_object_proxy_container_t1.py +0 -0
  120. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_object_proxy_context_t1.out +0 -0
  121. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_object_proxy_context_t1.py +0 -0
  122. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_partial_callable_t1.out +0 -0
  123. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_partial_callable_t1.py +0 -0
  124. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_patch_function_wrapper_t1.out +0 -0
  125. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_patch_function_wrapper_t1.py +0 -0
  126. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_patching_primitives_t1.out +0 -0
  127. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_patching_primitives_t1.py +0 -0
  128. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_post_import_hooks_t1.out +0 -0
  129. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_post_import_hooks_t1.py +0 -0
  130. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_synchronized_lock_t1.out +0 -0
  131. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_synchronized_lock_t1.py +0 -0
  132. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_transient_function_wrapper_t1.out +0 -0
  133. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_transient_function_wrapper_t1.py +0 -0
  134. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_weak_function_proxy_t1.out +0 -0
  135. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_weak_function_proxy_t1.py +0 -0
  136. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t1.out +0 -0
  137. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t1.py +0 -0
  138. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t2.out +0 -0
  139. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t2.py +0 -0
  140. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t3.out +0 -0
  141. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t3.py +0 -0
  142. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t4.out +0 -0
  143. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t4.py +0 -0
  144. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t5.out +0 -0
  145. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t5.py +0 -0
  146. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t6.out +0 -0
  147. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t6.py +0 -0
  148. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t7.out +0 -0
  149. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t7.py +0 -0
  150. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t8.out +0 -0
  151. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tests/mypy/mypy_wrap_function_wrapper_t8.py +0 -0
  152. {wrapt-2.3.0.dev1 → wrapt-2.3.0rc2}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wrapt
3
- Version: 2.3.0.dev1
3
+ Version: 2.3.0rc2
4
4
  Summary: Module for decorators, wrappers and monkey patching.
5
5
  Author-email: Graham Dumpleton <Graham.Dumpleton@gmail.com>
6
6
  License-Expression: BSD-2-Clause
@@ -13,7 +13,7 @@ def _format_version(parts):
13
13
  )
14
14
 
15
15
 
16
- __version_info__ = ("2", "3", "0", "dev1")
16
+ __version_info__ = ("2", "3", "0", "rc2")
17
17
  __version__ = _format_version(__version_info__)
18
18
 
19
19
  from .__wrapt__ import (
@@ -2450,7 +2450,8 @@ static PyObject *WraptObjectProxy_bytes(WraptObjectProxyObject *self,
2450
2450
  return NULL;
2451
2451
  }
2452
2452
 
2453
- return PyObject_Bytes(self->wrapped);
2453
+ return PyObject_CallFunctionObjArgs((PyObject *)&PyBytes_Type,
2454
+ self->wrapped, NULL);
2454
2455
  }
2455
2456
 
2456
2457
  /* ------------------------------------------------------------------------- */
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wrapt
3
- Version: 2.3.0.dev1
3
+ Version: 2.3.0rc2
4
4
  Summary: Module for decorators, wrappers and monkey patching.
5
5
  Author-email: Graham Dumpleton <Graham.Dumpleton@gmail.com>
6
6
  License-Expression: BSD-2-Clause
@@ -1932,6 +1932,55 @@ class SpecialMethods(unittest.TestCase):
1932
1932
 
1933
1933
  self.assertEqual(bytes(instance), bytes(proxy))
1934
1934
 
1935
+ def test_int_bytes(self):
1936
+ # bytes(proxy) should behave like bytes() on the wrapped object even
1937
+ # when it has no __bytes__ (e.g. an int, where bytes(n) yields a
1938
+ # zero-filled buffer of length n).
1939
+ instance = 3
1940
+
1941
+ proxy = wrapt.ObjectProxy(instance)
1942
+
1943
+ self.assertEqual(bytes(instance), bytes(proxy))
1944
+
1945
+ def test_index_bytes(self):
1946
+ # An object with __index__() but no __bytes__ converts like an int,
1947
+ # yielding a zero-filled buffer.
1948
+ class Class:
1949
+ def __index__(self):
1950
+ return 2
1951
+
1952
+ instance = Class()
1953
+
1954
+ proxy = wrapt.ObjectProxy(instance)
1955
+
1956
+ self.assertEqual(bytes(instance), bytes(proxy))
1957
+
1958
+ def test_buffer_bytes(self):
1959
+ # An object supporting the buffer protocol but no __bytes__.
1960
+ instance = bytearray(b"abcd")
1961
+
1962
+ proxy = wrapt.ObjectProxy(instance)
1963
+
1964
+ self.assertEqual(bytes(instance), bytes(proxy))
1965
+
1966
+ def test_iterable_bytes(self):
1967
+ # An iterable of ints, converted element by element.
1968
+ instance = [1, 2, 3]
1969
+
1970
+ proxy = wrapt.ObjectProxy(instance)
1971
+
1972
+ self.assertEqual(bytes(instance), bytes(proxy))
1973
+
1974
+ def test_str_bytes(self):
1975
+ # bytes() on a str without an encoding raises TypeError, and the
1976
+ # proxy should match rather than fall back to some other conversion.
1977
+ instance = "abcd"
1978
+
1979
+ proxy = wrapt.ObjectProxy(instance)
1980
+
1981
+ with self.assertRaises(TypeError):
1982
+ bytes(proxy)
1983
+
1935
1984
  def test_str_format(self):
1936
1985
  instance = "abcd"
1937
1986
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes