.. module:: tmuxp
.. todo:: link to sliderepl or ipython notebook slides
Our tests are inside tests/
. Tests are implemented using
pytest.
make test
will create a tmux server on a separate socket_name
using $ tmux -L test_case
.
To begin developing, check out the code from github:
$ git clone [email protected]:tony/tmuxp.git
$ cd tmuxp
Now create a virtualenv, if you don't know how to, you can create a virtualenv with:
$ virtualenv .venv
Then activate it to your current tty / terminal session with:
$ source .venv/bin/activate
Good! Now let's run this:
$ pip install -e .
This has pip
, a python package manager install the python package
in the current directory. -e
means --editable
, which means you can
adjust the code and the installed software will reflect the changes.
$ tmuxp
As you seen above, the tmuxp
command will now be available to you,
since you are in the virtual environment, your PATH environment was
updated to include a special version of python
inside your .venv
folder with its own packages.
$ make test
You probably didn't see anything but tests scroll by.
If you found a problem or are trying to write a test, you can file an issue on github.
Test only a file:
$ py.test tests/test_config.py
will test the tests/test_config.py
tests.
$ py.test tests/test_config.py::test_export_json
tests test_export_json
inside of tests/test_config.py
.
Multiple can be separated by spaces:
$ py.test tests/test_{window,pane}.py tests/test_config.py::test_export_json
You can watch tmux testsuite build sessions visually by keeping a client open in a separate terminal.
Create two terminals:
Terminal 1:
$ tmux -L test_case
Terminal 2:
$ cd
into the tmuxp project and into thevirtualenv
if you are using one, see details on installing the dev version of tmuxp above. Then:$ py.test tests/test_workspacebuilder.py
Terminal 1 should have flickered and built the session before your eyes. tmuxp hides this building from normal users.
You can re-run tests automatically on file edit.
Note
This requires entr(1)
.
Install entr. Packages are available available on most Linux and BSD variants, including Debian, Ubuntu, FreeBSD, OS X.
To run all tests upon editing any .py
file:
$ make watch_test
You can also re-run a specific test file or any other py.test usage argument:
$ make watch_test test=tests/test_config.py
$ make watch_test test='-x tests/test_config.py tests/test_util.py'
Rebuild the documentation when an .rst
file is edited:
$ cd doc
$ make watch
After you :ref:`install_dev_env`, when inside the tmuxp checkout:
$ tmuxp load .
this will load the .tmuxp.yaml
in the root of the project.
.. literalinclude:: ../.tmuxp.yaml :language: yaml
tmuxp uses travis-ci for continuous integration / automatic unit testing.
tmuxp is tested against tmux 1.8 and the latest git source. Interpretters tested are 2.6, 2.7 and 3.3. The travis build site uses this .travis.yml configuration:
RETRY_TIMEOUT_SECONDS
can be toggled if certain workspace builder
tests are being stubborn.
e.g. ``RETRY_TIMEOUT_SECONDS=10 py.test ``
.. literalinclude:: ../.travis.yml :language: yaml