def test_getitem(target):
class AProtocol(abc.ABC):
pass
class A(Driver, AProtocol):
pass
class B(Driver):
pass
a = A(target, "adriver")
target.activate(a)
assert isinstance(target[A], A)
assert target[A] is a
assert target[AProtocol] is a
assert target[A, "adriver"] is a
assert target[AProtocol, "adriver"] is a
with pytest.raises(NoDriverFoundError) as excinfo:
target[A, "bdriver"]
assert "have other names" in excinfo.value.msg
with pytest.raises(NoDriverFoundError) as excinfo:
target[B, "adriver"]
assert "no active driver" in excinfo.value.msg
a2 = A(target, None)
target.activate(a2)
with pytest.raises(NoDriverFoundError) as excinfo:
target[A]
assert "multiple active drivers" in excinfo.value.msg
评论列表
文章目录