Skip to content

Commit f5680cd

Browse files
gfyoungpcluo
authored andcommitted
MAINT: Remove assertNotIn from testing (pandas-dev#16096)
* MAINT: Refactor _AssertRaisesContextManager Rewrite _AssertRaisesContextManager with more documentation and remove vestigial assertRaises. Follow-up to pandas-devgh-16089. * MAINT: Remove assertNotIn from testing
1 parent ba6de64 commit f5680cd

23 files changed

+328
-294
lines changed

pandas/tests/frame/test_alter_axes.py

+8-7
Original file line numberDiff line numberDiff line change
@@ -500,16 +500,16 @@ def test_rename_nocopy(self):
500500

501501
def test_rename_inplace(self):
502502
self.frame.rename(columns={'C': 'foo'})
503-
self.assertIn('C', self.frame)
504-
self.assertNotIn('foo', self.frame)
503+
assert 'C' in self.frame
504+
assert 'foo' not in self.frame
505505

506506
c_id = id(self.frame['C'])
507507
frame = self.frame.copy()
508508
frame.rename(columns={'C': 'foo'}, inplace=True)
509509

510-
self.assertNotIn('C', frame)
511-
self.assertIn('foo', frame)
512-
self.assertNotEqual(id(frame['foo']), c_id)
510+
assert 'C' not in frame
511+
assert 'foo' in frame
512+
assert id(frame['foo']) != c_id
513513

514514
def test_rename_bug(self):
515515
# GH 5344
@@ -778,8 +778,9 @@ def test_set_index_names(self):
778778

779779
def test_rename_objects(self):
780780
renamed = self.mixed_frame.rename(columns=str.upper)
781-
self.assertIn('FOO', renamed)
782-
self.assertNotIn('foo', renamed)
781+
782+
assert 'FOO' in renamed
783+
assert 'foo' not in renamed
783784

784785
def test_assign_columns(self):
785786
self.frame['hi'] = 'there'

pandas/tests/frame/test_analytics.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -190,10 +190,10 @@ def test_corrwith(self):
190190

191191
dropped = a.corrwith(b, axis=0, drop=True)
192192
tm.assert_almost_equal(dropped['A'], a['A'].corr(b['A']))
193-
self.assertNotIn('B', dropped)
193+
assert 'B' not in dropped
194194

195195
dropped = a.corrwith(b, axis=1, drop=True)
196-
self.assertNotIn(a.index[-1], dropped.index)
196+
assert a.index[-1] not in dropped.index
197197

198198
# non time-series data
199199
index = ['a', 'b', 'c', 'd', 'e']

pandas/tests/frame/test_axis_select_reindex.py

+32-34
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@
1414
date_range, isnull)
1515
import pandas as pd
1616

17-
from pandas.util.testing import (assert_series_equal,
18-
assert_frame_equal,
19-
assertRaisesRegexp)
17+
from pandas.util.testing import assert_frame_equal
2018

2119
from pandas.errors import PerformanceWarning
2220
import pandas.util.testing as tm
@@ -287,15 +285,15 @@ def test_reindex_like(self):
287285
assert_frame_equal(other, self.frame.reindex_like(other))
288286

289287
def test_reindex_columns(self):
290-
newFrame = self.frame.reindex(columns=['A', 'B', 'E'])
288+
new_frame = self.frame.reindex(columns=['A', 'B', 'E'])
291289

292-
assert_series_equal(newFrame['B'], self.frame['B'])
293-
self.assertTrue(np.isnan(newFrame['E']).all())
294-
self.assertNotIn('C', newFrame)
290+
tm.assert_series_equal(new_frame['B'], self.frame['B'])
291+
assert np.isnan(new_frame['E']).all()
292+
assert 'C' not in new_frame
295293

296-
# length zero
297-
newFrame = self.frame.reindex(columns=[])
298-
self.assertTrue(newFrame.empty)
294+
# Length zero
295+
new_frame = self.frame.reindex(columns=[])
296+
assert new_frame.empty
299297

300298
def test_reindex_columns_method(self):
301299

@@ -659,75 +657,75 @@ def test_align_series_combinations(self):
659657
tm.assert_frame_equal(res2, exp1)
660658

661659
def test_filter(self):
662-
# items
660+
# Items
663661
filtered = self.frame.filter(['A', 'B', 'E'])
664-
self.assertEqual(len(filtered.columns), 2)
665-
self.assertNotIn('E', filtered)
662+
assert len(filtered.columns) == 2
663+
assert 'E' not in filtered
666664

667665
filtered = self.frame.filter(['A', 'B', 'E'], axis='columns')
668-
self.assertEqual(len(filtered.columns), 2)
669-
self.assertNotIn('E', filtered)
666+
assert len(filtered.columns) == 2
667+
assert 'E' not in filtered
670668

671-
# other axis
669+
# Other axis
672670
idx = self.frame.index[0:4]
673671
filtered = self.frame.filter(idx, axis='index')
674672
expected = self.frame.reindex(index=idx)
675-
assert_frame_equal(filtered, expected)
673+
tm.assert_frame_equal(filtered, expected)
676674

677675
# like
678676
fcopy = self.frame.copy()
679677
fcopy['AA'] = 1
680678

681679
filtered = fcopy.filter(like='A')
682-
self.assertEqual(len(filtered.columns), 2)
683-
self.assertIn('AA', filtered)
680+
assert len(filtered.columns) == 2
681+
assert 'AA' in filtered
684682

685683
# like with ints in column names
686684
df = DataFrame(0., index=[0, 1, 2], columns=[0, 1, '_A', '_B'])
687685
filtered = df.filter(like='_')
688-
self.assertEqual(len(filtered.columns), 2)
686+
assert len(filtered.columns) == 2
689687

690688
# regex with ints in column names
691689
# from PR #10384
692690
df = DataFrame(0., index=[0, 1, 2], columns=['A1', 1, 'B', 2, 'C'])
693691
expected = DataFrame(
694692
0., index=[0, 1, 2], columns=pd.Index([1, 2], dtype=object))
695693
filtered = df.filter(regex='^[0-9]+$')
696-
assert_frame_equal(filtered, expected)
694+
tm.assert_frame_equal(filtered, expected)
697695

698696
expected = DataFrame(0., index=[0, 1, 2], columns=[0, '0', 1, '1'])
699697
# shouldn't remove anything
700698
filtered = expected.filter(regex='^[0-9]+$')
701-
assert_frame_equal(filtered, expected)
699+
tm.assert_frame_equal(filtered, expected)
702700

703701
# pass in None
704-
with assertRaisesRegexp(TypeError, 'Must pass'):
702+
with tm.assertRaisesRegexp(TypeError, 'Must pass'):
705703
self.frame.filter()
706-
with assertRaisesRegexp(TypeError, 'Must pass'):
704+
with tm.assertRaisesRegexp(TypeError, 'Must pass'):
707705
self.frame.filter(items=None)
708-
with assertRaisesRegexp(TypeError, 'Must pass'):
706+
with tm.assertRaisesRegexp(TypeError, 'Must pass'):
709707
self.frame.filter(axis=1)
710708

711709
# test mutually exclusive arguments
712-
with assertRaisesRegexp(TypeError, 'mutually exclusive'):
710+
with tm.assertRaisesRegexp(TypeError, 'mutually exclusive'):
713711
self.frame.filter(items=['one', 'three'], regex='e$', like='bbi')
714-
with assertRaisesRegexp(TypeError, 'mutually exclusive'):
712+
with tm.assertRaisesRegexp(TypeError, 'mutually exclusive'):
715713
self.frame.filter(items=['one', 'three'], regex='e$', axis=1)
716-
with assertRaisesRegexp(TypeError, 'mutually exclusive'):
714+
with tm.assertRaisesRegexp(TypeError, 'mutually exclusive'):
717715
self.frame.filter(items=['one', 'three'], regex='e$')
718-
with assertRaisesRegexp(TypeError, 'mutually exclusive'):
716+
with tm.assertRaisesRegexp(TypeError, 'mutually exclusive'):
719717
self.frame.filter(items=['one', 'three'], like='bbi', axis=0)
720-
with assertRaisesRegexp(TypeError, 'mutually exclusive'):
718+
with tm.assertRaisesRegexp(TypeError, 'mutually exclusive'):
721719
self.frame.filter(items=['one', 'three'], like='bbi')
722720

723721
# objects
724722
filtered = self.mixed_frame.filter(like='foo')
725-
self.assertIn('foo', filtered)
723+
assert 'foo' in filtered
726724

727725
# unicode columns, won't ascii-encode
728726
df = self.frame.rename(columns={'B': u('\u2202')})
729727
filtered = df.filter(like='C')
730-
self.assertTrue('C' in filtered)
728+
assert 'C' in filtered
731729

732730
def test_filter_regex_search(self):
733731
fcopy = self.frame.copy()
@@ -857,10 +855,10 @@ def test_reindex_boolean(self):
857855

858856
def test_reindex_objects(self):
859857
reindexed = self.mixed_frame.reindex(columns=['foo', 'A', 'B'])
860-
self.assertIn('foo', reindexed)
858+
assert 'foo' in reindexed
861859

862860
reindexed = self.mixed_frame.reindex(columns=['A', 'B'])
863-
self.assertNotIn('foo', reindexed)
861+
assert 'foo' not in reindexed
864862

865863
def test_reindex_corner(self):
866864
index = Index(['a', 'b', 'c'])

pandas/tests/frame/test_constructors.py

+13-13
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,8 @@ def test_constructor_dict(self):
210210
'col2': self.ts2})
211211

212212
# col2 is padded with NaN
213-
self.assertEqual(len(self.ts1), 30)
214-
self.assertEqual(len(self.ts2), 25)
213+
assert len(self.ts1) == 30
214+
assert len(self.ts2) == 25
215215

216216
tm.assert_series_equal(self.ts1, frame['col1'], check_names=False)
217217

@@ -223,12 +223,12 @@ def test_constructor_dict(self):
223223
'col2': self.ts2},
224224
columns=['col2', 'col3', 'col4'])
225225

226-
self.assertEqual(len(frame), len(self.ts2))
227-
self.assertNotIn('col1', frame)
228-
self.assertTrue(isnull(frame['col3']).all())
226+
assert len(frame) == len(self.ts2)
227+
assert 'col1' not in frame
228+
assert isnull(frame['col3']).all()
229229

230230
# Corner cases
231-
self.assertEqual(len(DataFrame({})), 0)
231+
assert len(DataFrame({})) == 0
232232

233233
# mix dict and array, wrong size - no spec for which error should raise
234234
# first
@@ -242,14 +242,14 @@ def test_constructor_dict(self):
242242
# empty dict plus index
243243
idx = Index([0, 1, 2])
244244
frame = DataFrame({}, index=idx)
245-
self.assertIs(frame.index, idx)
245+
assert frame.index is idx
246246

247247
# empty with index and columns
248248
idx = Index([0, 1, 2])
249249
frame = DataFrame({}, index=idx, columns=idx)
250-
self.assertIs(frame.index, idx)
251-
self.assertIs(frame.columns, idx)
252-
self.assertEqual(len(frame._series), 3)
250+
assert frame.index is idx
251+
assert frame.columns is idx
252+
assert len(frame._series) == 3
253253

254254
# with dict of empty list and Series
255255
frame = DataFrame({'A': [], 'B': []}, columns=['A', 'B'])
@@ -1533,11 +1533,11 @@ def test_from_records_to_records(self):
15331533

15341534
# what to do?
15351535
records = indexed_frame.to_records()
1536-
self.assertEqual(len(records.dtype.names), 3)
1536+
assert len(records.dtype.names) == 3
15371537

15381538
records = indexed_frame.to_records(index=False)
1539-
self.assertEqual(len(records.dtype.names), 2)
1540-
self.assertNotIn('index', records.dtype.names)
1539+
assert len(records.dtype.names) == 2
1540+
assert 'index' not in records.dtype.names
15411541

15421542
def test_from_records_nones(self):
15431543
tuples = [(1, 2, None, 3),

pandas/tests/frame/test_mutate_columns.py

+7-10
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@
77

88
from pandas import DataFrame, Series, Index, MultiIndex
99

10-
from pandas.util.testing import (assert_series_equal,
11-
assert_frame_equal,
12-
assertRaisesRegexp)
10+
from pandas.util.testing import assert_frame_equal, assertRaisesRegexp
1311

1412
import pandas.util.testing as tm
1513

@@ -163,7 +161,7 @@ def test_insert(self):
163161

164162
def test_delitem(self):
165163
del self.frame['A']
166-
self.assertNotIn('A', self.frame)
164+
assert 'A' not in self.frame
167165

168166
def test_delitem_multiindex(self):
169167
midx = MultiIndex.from_product([['A', 'B'], [1, 2]])
@@ -194,15 +192,14 @@ def test_pop(self):
194192
self.frame.columns.name = 'baz'
195193

196194
self.frame.pop('A')
197-
self.assertNotIn('A', self.frame)
195+
assert 'A' not in self.frame
198196

199197
self.frame['foo'] = 'bar'
200198
self.frame.pop('foo')
201-
self.assertNotIn('foo', self.frame)
199+
assert 'foo' not in self.frame
202200
# TODO self.assertEqual(self.frame.columns.name, 'baz')
203201

204-
# 10912
205-
# inplace ops cause caching issue
202+
# gh-10912: inplace ops cause caching issue
206203
a = DataFrame([[1, 2, 3], [4, 5, 6]], columns=[
207204
'A', 'B', 'C'], index=['X', 'Y'])
208205
b = a.pop('B')
@@ -211,11 +208,11 @@ def test_pop(self):
211208
# original frame
212209
expected = DataFrame([[1, 3], [4, 6]], columns=[
213210
'A', 'C'], index=['X', 'Y'])
214-
assert_frame_equal(a, expected)
211+
tm.assert_frame_equal(a, expected)
215212

216213
# result
217214
expected = Series([2, 5], index=['X', 'Y'], name='B') + 1
218-
assert_series_equal(b, expected)
215+
tm.assert_series_equal(b, expected)
219216

220217
def test_pop_non_unique_cols(self):
221218
df = DataFrame({0: [0, 1], 1: [0, 1], 2: [4, 5]})

pandas/tests/indexes/test_base.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -851,8 +851,8 @@ def test_add_string(self):
851851
index = Index(['a', 'b', 'c'])
852852
index2 = index + 'foo'
853853

854-
self.assertNotIn('a', index2)
855-
self.assertIn('afoo', index2)
854+
assert 'a' not in index2
855+
assert 'afoo' in index2
856856

857857
def test_iadd_string(self):
858858
index = pd.Index(['a', 'b', 'c'])

pandas/tests/indexes/test_interval.py

+15-14
Original file line numberDiff line numberDiff line change
@@ -458,20 +458,20 @@ def test_get_indexer_subintervals(self):
458458
tm.assert_numpy_array_equal(actual, expected)
459459

460460
def test_contains(self):
461-
# only endpoints are valid
461+
# Only endpoints are valid.
462462
i = IntervalIndex.from_arrays([0, 1], [1, 2])
463463

464-
# invalid
465-
self.assertNotIn(0, i)
466-
self.assertNotIn(1, i)
467-
self.assertNotIn(2, i)
464+
# Invalid
465+
assert 0 not in i
466+
assert 1 not in i
467+
assert 2 not in i
468468

469-
# valid
470-
self.assertIn(Interval(0, 1), i)
471-
self.assertIn(Interval(0, 2), i)
472-
self.assertIn(Interval(0, 0.5), i)
473-
self.assertNotIn(Interval(3, 5), i)
474-
self.assertNotIn(Interval(-1, 0, closed='left'), i)
469+
# Valid
470+
assert Interval(0, 1) in i
471+
assert Interval(0, 2) in i
472+
assert Interval(0, 0.5) in i
473+
assert Interval(3, 5) not in i
474+
assert Interval(-1, 0, closed='left') not in i
475475

476476
def testcontains(self):
477477
# can select values that are IN the range of a value
@@ -509,7 +509,7 @@ def test_non_contiguous(self):
509509
expected = np.array([0, -1, 1], dtype='intp')
510510
tm.assert_numpy_array_equal(actual, expected)
511511

512-
self.assertNotIn(1.5, index)
512+
assert 1.5 not in index
513513

514514
def test_union(self):
515515
other = IntervalIndex.from_arrays([2], [3])
@@ -651,11 +651,12 @@ def test_datetime(self):
651651
expected = pd.date_range('2000-01-01T12:00', periods=2)
652652
tm.assert_index_equal(idx.mid, expected)
653653

654-
self.assertNotIn(pd.Timestamp('2000-01-01T12'), idx)
655-
self.assertNotIn(pd.Timestamp('2000-01-01T12'), idx)
654+
assert pd.Timestamp('2000-01-01T12') not in idx
655+
assert pd.Timestamp('2000-01-01T12') not in idx
656656

657657
target = pd.date_range('1999-12-31T12:00', periods=7, freq='12H')
658658
actual = idx.get_indexer(target)
659+
659660
expected = np.array([-1, -1, 0, 0, 1, 1, -1], dtype='intp')
660661
tm.assert_numpy_array_equal(actual, expected)
661662

0 commit comments

Comments
 (0)