.._Development:
For_Development¶
Background Reading¶
The syqada executable is constructed by bin/package from bin/syqada-template, which wraps bin/syqada.py. bin/syqada.py is a dispatcher that runs one of Automator.py, Tool.py, BatchRunner.py, or batch_tool.py depending on its first argument.
You’ll want to read Architecture and System Internals to get some clue to the mysteries of SyQADA’s organic development and consequently sometimes twisted structure. Thereafter, the test suite might be a useful guide.
The test suite is pretty comprehensive, although some of the behaviors that only affect reporting were mostly tested at the command line. if you grep around the test suite for the key concepts you’re interested in, you will probably find a test that shows you how it is put together and invoked.
Testing¶
The test suite is governed by test/unit_test.py, and can be run by invoking that file. However, my standard approach is instead to invoke:
bin/package queue
which runs the test suite, and if the whole suite succeeds, builds docs, builds and brands a distribution package, and then runs a couple of final integration tests on the package itself before zipping it all up.
>>> bin/package queue docs
will skip the tests and just build the docs.
>>> bin/package queue skip-tests
will skip the tests and build docs and package.
>>> bin/package queue help
will list individual unit test files and list for each one all the ways it can be invoked. For example, the Tool test suite can be invoked either
>>> bin/package queue Tool
or
>>> bin/package queue tailend
There are three global tags:
basic
runs the infrastructure tests
middle
runs the JobGeneration, JobBatch, and BatchRunner tests
tailend
runs the Automator, Replication, and integration tests