You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
49 lines
1.5 KiB
1 year ago
|
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 == "<Flags(allows_duplicate_labels=True)>"
|
||
|
a = repr(pd.DataFrame({"A"}).set_flags(allows_duplicate_labels=False).flags)
|
||
|
assert a == "<Flags(allows_duplicate_labels=False)>"
|
||
|
|
||
|
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
|