def test_get_value(): lst = [1, 2, 3] assert utils.get_value(lst, 1) == 2 class MyInt(int): pass assert utils.get_value(lst, MyInt(1)) == 2
def get_attribute(self, obj, attr, default): """Defines how to pull values from an object to serialize. .. versionadded:: 2.0.0 .. versionchanged:: 3.0.0a1 Changed position of ``obj`` and ``attr``. """ return get_value(obj, attr, default)
def test_get_value_from_dict(): d = dict(items=["foo", "bar"], keys=["baz", "quux"]) assert utils.get_value(d, "items") == ["foo", "bar"] assert utils.get_value(d, "keys") == ["baz", "quux"]
def test_get_value_for_nested_object(): tri = Triangle(p1=PointClass(1, 2), p2=PointNT(3, 4), p3={"x": 5, "y": 6}) assert utils.get_value(tri, "p1.x") == 1 assert utils.get_value(tri, "p2.x") == 3 assert utils.get_value(tri, "p3.x") == 5
def test_get_value_from_namedtuple_with_default(): p = PointNT(x=42, y=None) # Default is only returned if key is not found assert utils.get_value(p, "z", default=123) == 123 # since 'y' is an attribute, None is returned instead of the default assert utils.get_value(p, "y", default=123) is None
def test_get_value_from_object(obj): assert utils.get_value(obj, "x") == 24 assert utils.get_value(obj, "y") == 42