Skip to main content

Remote tox test runner

Project description

https://travis-ci.org/pycontribs/rtox.svg?branch=master

rtox

This project represents an experimental development workflow with the following considerations in mind:

  • tox is an excellent tool for managing test activities in a virtualenv.

  • Servers in the cloud are faster and far more powerful than my local development environment (usually a laptop).

  • Latency introduced to the command line by a remote connection, especially on bad WiFi, is painful.

  • Running huge test suites on a cloud server doesn’t drain my laptop’s battery (or spin up my desktop’s fans) like running them locally would.

  • Your local development platform might not actually have the binary dependencies available that your project requires from your target platform (developing a Linux application on OS X, for example).

  • Running tests with tox is easy. Running tests with rtox on a remote host against the local codebase should be just as easy.

This project currently makes a few assumptions that you’d have to meet for it to be useful to you:

  • You’re a Python developer (that’s why you’re interested in tox, right?).

  • You’re using git.

  • You’re working on a publicly available repository (I’d like to break this assumption).

Usage

Configure rtox with an .rtox.cfg file like the following:

[ssh]
user = root
hostname = localhost
port = 22

rtox will look for config file in current folder or its parents and use ~/.rtox.cfg as fallback. This allows user to have different configs for different projects or groups of projects.

rtox simply needs to be pointed at an SSH host with git, tox and virtualenv installed.

Once it’s configured, just use rtox in place of tox. For example:

$ rtox -e py27 -e pep8

The state of your local codebase will be mirrored to the remote host, and tox will be executed there.

untox

Untox is a small script that obliterates any tox.ini commands that are installing python packages inside the virtualenv, removing sepctions like deps, pip install ..., truncating requirements.txt files and enabling sitepackages = True on all tox environments.

Its purpose is to enable testing of python code with only system packages, something that may be desired by those that are planning to ship these modules as RPMs, DEBs.

untox script is installed as a command alongside rtox and once called it expectes to find a tox.ini in current folder. Be warned that changes are made in-place without any backup.

You also have the option to call rtox --untox ... which will run untox on the remote system after doing the rsync and before running tox. This option is handy as it keeps the local repository untoched.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rtox-0.0.7.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

rtox-0.0.7-py2.py3-none-any.whl (8.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file rtox-0.0.7.tar.gz.

File metadata

  • Download URL: rtox-0.0.7.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for rtox-0.0.7.tar.gz
Algorithm Hash digest
SHA256 31dce69ed3c4791c3b8d0c1ca8d44b7f08266c44d43c6fbf9d60e4448e9a061c
MD5 8e2e5a8944763fcf5b80c495be15e2f3
BLAKE2b-256 3cc59fa5aa0dafb59294849934043ff854c24b0a6fb5c59a2b7dc31f9603753d

See more details on using hashes here.

File details

Details for the file rtox-0.0.7-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for rtox-0.0.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 dd4a24c51d551a4a3ccd4d641c7d8ccd8b62373fe8b3a31e53316cd8c084f47a
MD5 48f0e9da122fbdd316accb5a555e1170
BLAKE2b-256 f1af2aec0f24c38629d0563ae859aa66861e003e09e13f3eea2d4c7c9ca3e26e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page