Skip to content

Commit 4cd2f48

Browse files
committed
TST: add tests for new com functions
1 parent 2f63055 commit 4cd2f48

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

pandas/core/common.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1591,7 +1591,12 @@ def is_re(obj):
15911591

15921592

15931593
def is_re_compilable(obj):
1594-
return is_re(obj) or isinstance(obj, basestring)
1594+
try:
1595+
re.compile(obj)
1596+
except TypeError:
1597+
return False
1598+
else:
1599+
return True
15951600

15961601

15971602
def is_list_like(arg):

pandas/tests/test_common.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from datetime import datetime
22
import sys
3+
import re
34

45
import nose
56
import unittest
@@ -244,6 +245,18 @@ def test_groupby():
244245
assert v == expected[k]
245246

246247

248+
def test_is_list_like():
249+
passes = ([], [1], (1,), (1, 2), {'a': 1}, set([1, 'a']), Series([1]),
250+
Series([]), Series(['a']).str)
251+
fails = (1, '2', object())
252+
253+
for p in passes:
254+
assert com.is_list_like(p)
255+
256+
for f in fails:
257+
assert not com.is_list_like(f)
258+
259+
247260
def test_ensure_int32():
248261
values = np.arange(10, dtype=np.int32)
249262
result = com._ensure_int32(values)
@@ -288,6 +301,30 @@ def test_ensure_platform_int():
288301
# expected = u"\u05d0".encode('utf-8')
289302
# assert (result == expected)
290303

304+
305+
def test_is_re():
306+
passes = re.compile('ad'),
307+
fails = 'x', 2, 3, object()
308+
309+
for p in passes:
310+
assert com.is_re(p)
311+
312+
for f in fails:
313+
assert not com.is_re(f)
314+
315+
316+
def test_is_recompilable():
317+
passes = (r'a', u'x', r'asdf', re.compile('adsf'), ur'\u2233\s*',
318+
re.compile(r''))
319+
fails = 1, [], object()
320+
321+
for p in passes:
322+
assert com.is_re_compilable(p)
323+
324+
for f in fails:
325+
assert not com.is_re_compilable(f)
326+
327+
291328
class TestTake(unittest.TestCase):
292329

293330
_multiprocess_can_split_ = True

0 commit comments

Comments
 (0)