def test_getattr_path(): assert getattr_path(Struct(a=1), 'a') == 1 assert getattr_path(Struct(a=Struct(b=2)), 'a__b') == 2 with pytest.raises(AttributeError): getattr_path(Struct(a=2), 'b') assert getattr_path(Struct(a=None), 'a__b__c__d') is None
def test_setattr_path(): assert getattr_path(setattr_path(Struct(a=0), 'a', 1), 'a') == 1 assert getattr_path(setattr_path(Struct(a=Struct(b=0)), 'a__b', 2), 'a__b') == 2 with pytest.raises(AttributeError): setattr_path(Struct(a=1), 'a__b', 1)