.._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

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 docs

will skip the tests and just build the docs.

>>> bin/package skip-tests

will skip the tests and build docs and package.

>>> bin/package 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 in several ways, including

>>> bin/package Tool

or

>>> bin/package tools

or

>>> bin/package 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
>>> bin/package only testname ...

will run only the testname test suite(s).

>>> bin/package ignore testname ...

will skip the testname test suite(s) and run everything else.