import pytest import pandas as pd class TestFlags: def test_equality(self): a = pd.DataFrame().set_flags(allows_duplicate_labels=True).flags b = pd.DataFrame().set_flags(allows_duplicate_labels=False).flags assert a == a assert b == b assert a != b assert a != 2 def test_set(self): df = pd.DataFrame().set_flags(allows_duplicate_labels=True) a = df.flags a.allows_duplicate_labels = False assert a.allows_duplicate_labels is False a["allows_duplicate_labels"] = True assert a.allows_duplicate_labels is True def test_repr(self): a = repr(pd.DataFrame({"A"}).set_flags(allows_duplicate_labels=True).flags) assert a == "" a = repr(pd.DataFrame({"A"}).set_flags(allows_duplicate_labels=False).flags) assert a == "" def test_obj_ref(self): df = pd.DataFrame() flags = df.flags del df with pytest.raises(ValueError, match="object has been deleted"): flags.allows_duplicate_labels = True def test_getitem(self): df = pd.DataFrame() flags = df.flags assert flags["allows_duplicate_labels"] is True flags["allows_duplicate_labels"] = False assert flags["allows_duplicate_labels"] is False with pytest.raises(KeyError, match="a"): flags["a"] with pytest.raises(ValueError, match="a"): flags["a"] = 10