Removing mxpic_forge from dependency
This commit is contained in:
Binary file not shown.
@@ -221,6 +221,62 @@ class EdaRouterPinsContractTest(unittest.TestCase):
|
||||
)
|
||||
self.assertEqual(_metadata_pins(metadata, r"D:\mxpic\some_project_layout"), {})
|
||||
|
||||
def test_route_backend_falls_back_to_nazca_interconnect_when_forge_is_absent(self):
|
||||
import mxpic_router.builder as builder
|
||||
|
||||
class FakeInterconnect:
|
||||
calls = []
|
||||
|
||||
def __init__(self, radius=None, width=None, xs=None, PCB=False):
|
||||
self.radius = radius
|
||||
self.width = width
|
||||
self.xs = xs
|
||||
self.PCB = PCB
|
||||
|
||||
def strt_p2p(self, **kwargs):
|
||||
self.calls.append(("strt_p2p", kwargs))
|
||||
return "straight"
|
||||
|
||||
def sbend_p2p(self, **kwargs):
|
||||
self.calls.append(("sbend_p2p", kwargs))
|
||||
return "sbend"
|
||||
|
||||
def ubend_p2p(self, **kwargs):
|
||||
self.calls.append(("ubend_p2p", kwargs))
|
||||
return "ubend"
|
||||
|
||||
def bend_strt_bend_p2p(self, **kwargs):
|
||||
self.calls.append(("bend_strt_bend_p2p", kwargs))
|
||||
return "bend"
|
||||
|
||||
class FakeInterconnects:
|
||||
Interconnect = FakeInterconnect
|
||||
|
||||
class FakeNazca:
|
||||
interconnects = FakeInterconnects
|
||||
|
||||
original_import = builder._import_mxpic_forge_route
|
||||
original_create = builder._NazcaInterconnectRoute._create_interconnect
|
||||
try:
|
||||
builder._import_mxpic_forge_route = lambda: (_ for _ in ()).throw(ImportError("no forge"))
|
||||
builder._NazcaInterconnectRoute._create_interconnect = staticmethod(
|
||||
lambda **kwargs: FakeInterconnect(**kwargs)
|
||||
)
|
||||
|
||||
route_backend = builder._import_route_backend(FakeNazca)
|
||||
route = route_backend(radius=20, width=0.7, xs="strip", PCB=False)
|
||||
|
||||
self.assertEqual(route.backend_name, "nazca Interconnect")
|
||||
self.assertEqual(route.strt_p2p(pin1="a", pin2="b", arrow=False), "straight")
|
||||
self.assertEqual(route.bend_p2p(pin1="a", pin2="b", radius=10, arrow=False), "bend")
|
||||
self.assertEqual(FakeInterconnect.calls[0][0], "strt_p2p")
|
||||
self.assertEqual(FakeInterconnect.calls[0][1]["width"], 0.7)
|
||||
self.assertEqual(FakeInterconnect.calls[1][0], "bend_strt_bend_p2p")
|
||||
self.assertEqual(FakeInterconnect.calls[1][1]["radius"], 10)
|
||||
finally:
|
||||
builder._import_mxpic_forge_route = original_import
|
||||
builder._NazcaInterconnectRoute._create_interconnect = original_create
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user