def test_dir(self, make_cls): Cls = make_cls(foo=uttr.ib(unit=u.kg)) instance = Cls(foo=1 * u.kg) arr_ = uttr.ArrayAccessor(instance) dir_arr = dir(arr_) expected = super(uttr.ArrayAccessor, arr_).__dir__() + ["foo"] assert set(dir_arr) == set(expected)
def test_same_unit_access(self, make_cls): Cls = make_cls(foo=uttr.ib(unit=u.kg)) instance = Cls(foo=1 * u.kg) arr_ = uttr.ArrayAccessor(instance) assert instance.foo == 1 * u.kg assert arr_.foo == 1 assert arr_["foo"] == 1
def test_no_uttr_access(self, make_cls): Cls = make_cls(foo=attr.ib()) instance = Cls(foo="foo") arr_ = uttr.ArrayAccessor(instance) assert instance.foo == "foo" with pytest.raises(AttributeError): arr_.foo with pytest.raises(KeyError): arr_["foo"]
def test_attrs_quantity(self, make_cls): Cls = make_cls(foo=uttr.ib(unit=u.kg), faa=attr.ib()) instance = Cls(foo=1 * u.kg, faa=1 * u.kg) arr_ = uttr.ArrayAccessor(instance) assert instance.foo == 1 * u.kg assert arr_.foo == 1 assert instance.faa == 1 * u.kg with pytest.raises(AttributeError): arr_.faa
def test_no_uttr_quantity(self, make_cls): Cls = make_cls(foo=uttr.ib(unit=u.kg)) instance = Cls(foo=1 * u.kg) instance.faa = 1 * u.kpc arr_ = uttr.ArrayAccessor(instance) assert instance.faa == 1 * u.kpc with pytest.raises(AttributeError): assert arr_.faa with pytest.raises(KeyError): assert arr_["faa"]
def test_repr(self, make_cls): Cls = make_cls(foo=uttr.ib(unit=u.kg)) instance = Cls(foo=1 * u.kg) arr_ = uttr.ArrayAccessor(instance) assert repr(arr_) == f"ArrayAccessor({repr(instance)})"