lib.wiring: add __repr__
to Interface
.
This commit is contained in:
parent
28139f5f4b
commit
ab6503e352
|
@ -607,6 +607,12 @@ class Interface:
|
||||||
**signature.members.create(path=path)
|
**signature.members.create(path=path)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
attrs = ''.join(f", {name}={value!r}"
|
||||||
|
for name, value in self.__dict__.items()
|
||||||
|
if name != "signature")
|
||||||
|
return f'<Interface: {self.signature}{attrs}>'
|
||||||
|
|
||||||
|
|
||||||
# To reduce API surface area `FlippedInterface` is made final. This restriction could be lifted
|
# To reduce API surface area `FlippedInterface` is made final. This restriction could be lifted
|
||||||
# if there is a compelling use case.
|
# if there is a compelling use case.
|
||||||
|
|
|
@ -653,7 +653,23 @@ class FlippedSignatureTestCase(unittest.TestCase):
|
||||||
|
|
||||||
|
|
||||||
class InterfaceTestCase(unittest.TestCase):
|
class InterfaceTestCase(unittest.TestCase):
|
||||||
pass
|
def test_construct(self):
|
||||||
|
sig = Signature({
|
||||||
|
"a": In(4),
|
||||||
|
"b": Out(signed(2)),
|
||||||
|
})
|
||||||
|
intf = Interface(sig, path=("test",))
|
||||||
|
self.assertIs(intf.signature, sig)
|
||||||
|
self.assertIsInstance(intf.a, Signal)
|
||||||
|
self.assertIsInstance(intf.b, Signal)
|
||||||
|
|
||||||
|
def test_repr(self):
|
||||||
|
sig = Signature({
|
||||||
|
"a": In(4),
|
||||||
|
"b": Out(signed(2)),
|
||||||
|
})
|
||||||
|
intf = Interface(sig, path=("test",))
|
||||||
|
self.assertEqual(repr(intf), "<Interface: Signature({'a': In(4), 'b': Out(signed(2))}), a=(sig test__a), b=(sig test__b)>")
|
||||||
|
|
||||||
|
|
||||||
class FlippedInterfaceTestCase(unittest.TestCase):
|
class FlippedInterfaceTestCase(unittest.TestCase):
|
||||||
|
@ -666,7 +682,7 @@ class FlippedInterfaceTestCase(unittest.TestCase):
|
||||||
self.assertEqual(tintf.signature, intf.signature.flip())
|
self.assertEqual(tintf.signature, intf.signature.flip())
|
||||||
self.assertEqual(tintf, flipped(intf))
|
self.assertEqual(tintf, flipped(intf))
|
||||||
self.assertRegex(repr(tintf),
|
self.assertRegex(repr(tintf),
|
||||||
r"^flipped\(<.+?\.Interface object at .+>\)$")
|
r"^flipped\(<Interface: .+>\)$")
|
||||||
self.assertIs(flipped(tintf), intf)
|
self.assertIs(flipped(tintf), intf)
|
||||||
|
|
||||||
def test_getsetdelattr(self):
|
def test_getsetdelattr(self):
|
||||||
|
|
Loading…
Reference in a new issue