Beispiel #1
0
    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)
Beispiel #2
0
    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
Beispiel #3
0
    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"]
Beispiel #4
0
    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
Beispiel #5
0
    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"]
Beispiel #6
0
    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)})"