ARROW-1060: [Python] Add unit tests for reference counts in memoryview interface

Add missing test case for ARROW-1053.

Author: Wes McKinney <wes.mckin...@twosigma.com>

Closes #710 from wesm/ARROW-1060 and squashes the following commits:

013fc248 [Wes McKinney] Add unit tests to check that reference counts stay 
constant via memoryview interface


Project: http://git-wip-us.apache.org/repos/asf/arrow/repo
Commit: http://git-wip-us.apache.org/repos/asf/arrow/commit/aa652cb3
Tree: http://git-wip-us.apache.org/repos/asf/arrow/tree/aa652cb3
Diff: http://git-wip-us.apache.org/repos/asf/arrow/diff/aa652cb3

Branch: refs/heads/master
Commit: aa652cb3f5ea4b1f845ea2ef3e10344b050f45b3
Parents: 84b7ee1
Author: Wes McKinney <wes.mckin...@twosigma.com>
Authored: Tue May 23 14:08:39 2017 -0400
Committer: Wes McKinney <wes.mckin...@twosigma.com>
Committed: Wed May 31 13:45:48 2017 -0400

----------------------------------------------------------------------
 python/pyarrow/tests/test_io.py | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/arrow/blob/aa652cb3/python/pyarrow/tests/test_io.py
----------------------------------------------------------------------
diff --git a/python/pyarrow/tests/test_io.py b/python/pyarrow/tests/test_io.py
index f91dc6f..397b7a8 100644
--- a/python/pyarrow/tests/test_io.py
+++ b/python/pyarrow/tests/test_io.py
@@ -19,6 +19,7 @@ from io import BytesIO
 import gc
 import os
 import pytest
+import sys
 
 import numpy as np
 
@@ -201,8 +202,6 @@ def test_inmemory_write_after_closed():
 
 
 def test_buffer_protocol_ref_counting():
-    import gc
-
     def make_buffer(bytes_obj):
         return bytearray(pa.frombuffer(bytes_obj))
 
@@ -210,6 +209,14 @@ def test_buffer_protocol_ref_counting():
     gc.collect()
     assert buf == b'foo'
 
+    # ARROW-1053
+    val = b'foo'
+    refcount_before = sys.getrefcount(val)
+    for i in range(10):
+        make_buffer(val)
+    gc.collect()
+    assert refcount_before == sys.getrefcount(val)
+
 
 def test_nativefile_write_memoryview():
     f = pa.BufferOutputStream()

Reply via email to