Sub-library which contains the code necessary to run an instance of the master server. The primary purposes of the master including serving a REST API, running the scheduler and serving the web interface.
Python Version Support
This library supports Python 2.7 and Python 3.3+ in one code base. Python 2.6 and lower is not supported due to syntax differences and support for 2.6 in external libraries.
The documentation for this this library is hosted on Read The Docs. It's generated directly from this library using sphinx (setup may vary depending on platform):
virtualenv env . env/bin/activate pip install sphinx sphinxcontrib-httpdomain pip install -e . --egg make -C docs html
A broker is required for most of the tests due to pyfarm.master's dependency on celery. Redis is recommended because it's the default, least persistent and easiest to setup.
Tests are run on Travis for every commit. They can also be run locally too (setup may vary depending on platform):
virtualenv env . env/bin/activate pip install nose pip install -e . --egg nosetests tests/
Testing Specific Databases
By default tests are run against sqlite. While this is sufficient in many
cases it's generally best to test against the database type you wish to use.
Setup wise the only difference will be in the call to
PYFARM_DATABASE_URI="dialect+driver://username:password@host:port/database" nosetests tests/