test module#
Unit test support#
The way the JITX python framework is designed makes testing a bit more
complicated than one would normally expect. The reason for this is how it
handles instantiation of class members. This package provides a base
TestCase class that sets up the JITX framework for testing by
enabling objects to be instantiated within a test case. The main issue to note
here is that JITX structural classes must be defined outside the test class’s
methods: defining one while instantiation is active raises TypeError.
- class TestCase(methodName='runTest')[source]#
Bases:
TestCaseBase test case class with JITX context setup.
This class sets up instantiation inside the test case, and registers a
TestContextwhich can be interrogated inside the design if desired. For the vast majority of cases, this class should be used as a base class instead ofunittest.TestCasewhen testing code that generates JITX design elements.The instantiation context is active from this class’s
setUpClassthroughtearDownClass, sosetUp,tearDownand the test methods all run inside it. Outside it, constructing a JITX structural object returns an uninstantiated placeholder, so reads of it do not return the declared values. Instantiation needs no JITX runtime. To construct an object that readsjitx.current.substrateoutside a design, such as a land-pattern generator, instantiate a substrate in the test first, for exampleSampleSubstrate().