{
"info": {
"author": "Dolph Mathews",
"author_email": "dolph.mathews@gmail.com",
"bugtrack_url": null,
"classifiers": [],
"description": ".. image:: https://travis-ci.org/pycontribs/rtox.svg?branch=master\n :target: https://travis-ci.org/pycontribs/rtox\n\n``rtox``\n========\n\nThis project represents an experimental development workflow with the following\nconsiderations in mind:\n\n- `tox `_ is an excellent tool for\n managing test activities in a `virtualenv\n `_.\n\n- Servers in the cloud are faster and far more powerful than my local\n development environment (usually a laptop).\n\n- Latency introduced to the command line by a remote connection, especially on\n bad WiFi, is painful.\n\n- Running huge test suites on a cloud server doesn't drain my laptop's battery\n (or spin up my desktop's fans) like running them locally would.\n\n- Your local development platform might not actually have the binary\n dependencies available that your project requires from your target platform\n (developing a Linux application on OS X, for example).\n\n- Running tests with tox is easy. Running tests with ``rtox`` on a remote\n host against the local codebase should be just as easy.\n\nThis project currently makes a few assumptions that you'd have to meet for it\nto be useful to you:\n\n- You're a Python developer (that's why you're interested in tox, right?).\n\n- You're using ``git``.\n\n- You're working on a publicly available repository (I'd like to break this\n assumption).\n\nUsage\n-----\n\nConfigure ``rtox`` with an ``.rtox.cfg`` file like the following::\n\n [ssh]\n user = root\n hostname = localhost\n port = 22\n\nrtox will look for config file in current folder or its parents and use\n``~/.rtox.cfg`` as fallback. This allows user to have different configs\nfor different projects or groups of projects.\n\n``rtox`` simply needs to be pointed at an SSH host with ``git``, ``tox`` and\n``virtualenv`` installed.\n\nOnce it's configured, just use ``rtox`` in place of ``tox``. For example::\n\n $ rtox -e py27 -e pep8\n\nThe state of your local codebase will be mirrored to the remote host, and tox\nwill be executed there.\n\nuntox\n=====\n\nUntox is a small script that obliterates any tox.ini commands that are\ninstalling python packages inside the virtualenv, removing sepctions\nlike ``deps``, ``pip install ...``, truncating ``requirements.txt`` files\nand enabling ``sitepackages = True`` on all tox environments.\n\nIts purpose is to enable testing of python code with only system packages,\nsomething that may be desired by those that are planning to ship these\nmodules as RPMs, DEBs.\n\n``untox`` script is installed as a command alongside ``rtox`` and once\ncalled it expectes to find a tox.ini in current folder. Be warned that changes\nare made in-place without any backup.\n\nYou also have the option to call ``rtox --untox ...`` which will run untox\non the remote system after doing the rsync and before running tox. This\noption is handy as it keeps the local repository untoched.\n\n\n\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://github.com/pycontribs/rtox",
"keywords": "tox",
"license": "Apache-2",
"maintainer": "",
"maintainer_email": "",
"name": "rtox",
"package_url": "https://pypi.org/project/rtox/",
"platform": "",
"project_url": "https://pypi.org/project/rtox/",
"project_urls": {
"Bug Tracker": "https://github.com/pycontribs/rtox/issues",
"Documentation": "https://github.com/pycontribs/rtox/blob/master/README.rst",
"Homepage": "http://github.com/pycontribs/rtox",
"Source Code": "https://github.com/pycontribs/rtox.git"
},
"release_url": "https://pypi.org/project/rtox/1.0.2/",
"requires_dist": [
"pbr",
"python-gssapi",
"paramiko"
],
"requires_python": "",
"summary": "Remote tox test runner",
"version": "1.0.2"
},
"last_serial": 4731064,
"releases": {
"0.0.0": [
{
"comment_text": "",
"digests": {
"md5": "05aa07c2165840664ba36f38731f79c8",
"sha256": "c1cb9cb58e04d4546e2b9262c22072484a53df82fd928d7b6af881f7bc68d27c"
},
"downloads": -1,
"filename": "rtox-0.0.0-py2-none-any.whl",
"has_sig": false,
"md5_digest": "05aa07c2165840664ba36f38731f79c8",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 5931,
"upload_time": "2018-02-08T20:13:16",
"url": "https://files.pythonhosted.org/packages/1a/6e/d76fdfc37f258c105ecaebf5b14b9087dd83cfb899d09dab99af005a7722/rtox-0.0.0-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7fb876c5bcefa296b1d2fd432f912513",
"sha256": "42ef8fb65a2f6d1a6e7a4ca22ec24d4f232312b8fe4ead040b319cd7a169d64f"
},
"downloads": -1,
"filename": "rtox-0.0.0.tar.gz",
"has_sig": false,
"md5_digest": "7fb876c5bcefa296b1d2fd432f912513",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3506,
"upload_time": "2018-02-08T20:13:18",
"url": "https://files.pythonhosted.org/packages/90/79/16a6dacf603c91fa40318bdb5c68da910d1f53ab6151f7071c8c436347b5/rtox-0.0.0.tar.gz"
}
],
"0.0.1": [
{
"comment_text": "",
"digests": {
"md5": "4d1ebb40cfe253f3b56f97d8ddb85919",
"sha256": "70fdf62c5a8bbde05b12d59239483156620b7068fc18d8195f3151acb0b94cba"
},
"downloads": -1,
"filename": "rtox-0.0.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "4d1ebb40cfe253f3b56f97d8ddb85919",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 8230,
"upload_time": "2018-02-17T12:12:17",
"url": "https://files.pythonhosted.org/packages/7b/c7/7d217e9a5be3298b7a862edc4f4a44ba4268c0ea947ce78b6a8f32433c87/rtox-0.0.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f2d6374e220e1826dde18ec550d8475e",
"sha256": "3d828d5052bbd6a8d1a9e56debb40aa8554f35741de86fe729a6b324af07d515"
},
"downloads": -1,
"filename": "rtox-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "f2d6374e220e1826dde18ec550d8475e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8245,
"upload_time": "2018-02-17T12:12:23",
"url": "https://files.pythonhosted.org/packages/36/31/4706663d9b2700d056f0ebc6ba58dc3f485a53dbe631797d83264760b179/rtox-0.0.1.tar.gz"
}
],
"0.0.1.dev17": [
{
"comment_text": "",
"digests": {
"md5": "50d1714aad003fe72df555a8e643759f",
"sha256": "3aa9f3acf66b556ca9cf34f9e582f7a8348ea49da48f4ef14387a25bf34c88a0"
},
"downloads": -1,
"filename": "rtox-0.0.1.dev17-py2-none-any.whl",
"has_sig": false,
"md5_digest": "50d1714aad003fe72df555a8e643759f",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 8335,
"upload_time": "2018-02-17T12:05:26",
"url": "https://files.pythonhosted.org/packages/74/94/8cfa15c3f7b871fe6ff0a1ae30004b779320850f683b3fb318bfe4ffeaaf/rtox-0.0.1.dev17-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "8ca4bf66d10be29616390a3bd7709736",
"sha256": "9cec2d95083a4716a7a4772b6c5d2c79357e6de88448f9054ee4e07fba414fa4"
},
"downloads": -1,
"filename": "rtox-0.0.1.dev17.tar.gz",
"has_sig": false,
"md5_digest": "8ca4bf66d10be29616390a3bd7709736",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8222,
"upload_time": "2018-02-17T12:05:29",
"url": "https://files.pythonhosted.org/packages/fc/d2/cc019370d7964f218a37b97770bd97392ecb2f99b13ecccfa0029e0abc97/rtox-0.0.1.dev17.tar.gz"
}
],
"0.0.2": [
{
"comment_text": "",
"digests": {
"md5": "0aace97b538672f107e6e96a5f16389d",
"sha256": "625d8af50a7fb896067a6a5c4b028090dbcc31f7334e7c2b6f9d50cf06ae836a"
},
"downloads": -1,
"filename": "rtox-0.0.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "0aace97b538672f107e6e96a5f16389d",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 9156,
"upload_time": "2018-02-18T20:39:31",
"url": "https://files.pythonhosted.org/packages/44/22/4773e93bfb70d00c417df6c5029ddebbbfbc56af752517b8f8bcbe34d932/rtox-0.0.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "48b30ba3513a8383813855ee67dbf002",
"sha256": "e93277806e1ddad5a46b0cfd7a30be9c12f78888afab823a2c138e4db76ff14b"
},
"downloads": -1,
"filename": "rtox-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "48b30ba3513a8383813855ee67dbf002",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10140,
"upload_time": "2018-02-18T20:39:33",
"url": "https://files.pythonhosted.org/packages/50/5d/57750e0ae34e0867cdd724fd3fd4993f05b309dbf48c92c350a9ca86eb9c/rtox-0.0.2.tar.gz"
}
],
"0.0.3": [
{
"comment_text": "",
"digests": {
"md5": "31ad1a9e7477014b686e34606ba4edf0",
"sha256": "df743f8f980bf4954dd862c8b721b9a54e31f6f5e4f26c71f0d1569be32a9491"
},
"downloads": -1,
"filename": "rtox-0.0.3-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "31ad1a9e7477014b686e34606ba4edf0",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 10783,
"upload_time": "2018-02-19T19:24:14",
"url": "https://files.pythonhosted.org/packages/3f/24/02a56ecb6a7a40665b04b7a37cb4a7a5c3644a452cd2b338035ca1fd26cf/rtox-0.0.3-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "369bab9b31785bb908858d416286a4f0",
"sha256": "5e84924512aa989731ba2101e0ea2e25970a9d5fb0e0f45d9e00e35ff005c8fb"
},
"downloads": -1,
"filename": "rtox-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "369bab9b31785bb908858d416286a4f0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11649,
"upload_time": "2018-02-19T19:24:22",
"url": "https://files.pythonhosted.org/packages/ea/cc/eb9414b2b6ad430433bbf16eddd0cbdfac99ebf0e25efbbffd2789acbcaf/rtox-0.0.3.tar.gz"
}
],
"0.0.7": [
{
"comment_text": "",
"digests": {
"md5": "48f0e9da122fbdd316accb5a555e1170",
"sha256": "dd4a24c51d551a4a3ccd4d641c7d8ccd8b62373fe8b3a31e53316cd8c084f47a"
},
"downloads": -1,
"filename": "rtox-0.0.7-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "48f0e9da122fbdd316accb5a555e1170",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 8244,
"upload_time": "2018-04-03T10:27:34",
"url": "https://files.pythonhosted.org/packages/f1/af/2aec0f24c38629d0563ae859aa66861e003e09e13f3eea2d4c7c9ca3e26e/rtox-0.0.7-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "8e2e5a8944763fcf5b80c495be15e2f3",
"sha256": "31dce69ed3c4791c3b8d0c1ca8d44b7f08266c44d43c6fbf9d60e4448e9a061c"
},
"downloads": -1,
"filename": "rtox-0.0.7.tar.gz",
"has_sig": false,
"md5_digest": "8e2e5a8944763fcf5b80c495be15e2f3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16416,
"upload_time": "2018-04-03T10:27:34",
"url": "https://files.pythonhosted.org/packages/3c/c5/9fa5aa0dafb59294849934043ff854c24b0a6fb5c59a2b7dc31f9603753d/rtox-0.0.7.tar.gz"
}
],
"0.0.8": [
{
"comment_text": "",
"digests": {
"md5": "86ab234bba6a14809906d132be716d55",
"sha256": "e4ee67ce161ffd7862939c31d33dcae257f1726e7569238b8a9e8b324825ce13"
},
"downloads": -1,
"filename": "rtox-0.0.8-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "86ab234bba6a14809906d132be716d55",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 8487,
"upload_time": "2018-04-03T14:08:06",
"url": "https://files.pythonhosted.org/packages/ea/cb/747cf17e596d8fda4c065d06770977f83560aec13cc18665f09de097e0a2/rtox-0.0.8-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "66aa0b206147a6e51d5ed45b54bf2a21",
"sha256": "12e10d0402b32551137a2a22bb5194f8522e5943b5f6d578e624be9813f377b1"
},
"downloads": -1,
"filename": "rtox-0.0.8.tar.gz",
"has_sig": false,
"md5_digest": "66aa0b206147a6e51d5ed45b54bf2a21",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16706,
"upload_time": "2018-04-03T14:08:06",
"url": "https://files.pythonhosted.org/packages/c0/09/3186f9d98ff742bad2375540e2d209fdcd401ab0b2b66d0fe873241d96ba/rtox-0.0.8.tar.gz"
}
],
"0.0.9": [
{
"comment_text": "",
"digests": {
"md5": "851a339b034f8efa97b431685452cf77",
"sha256": "568d45801ff9010e276246dd8916e5581dbdb260e2e2afcb20fe1e9773de9056"
},
"downloads": -1,
"filename": "rtox-0.0.9-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "851a339b034f8efa97b431685452cf77",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 8490,
"upload_time": "2018-04-17T11:54:07",
"url": "https://files.pythonhosted.org/packages/b8/15/c692dd58fbe679fbc43fbc822715feae51932fa5b8b6e551784946a77218/rtox-0.0.9-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fc6419bc5d0b2cb450077dc425311140",
"sha256": "ba52132949cf94a8a9ae7769ae2be60f96b488a14ea98c7c1d6a86fed39a8d75"
},
"downloads": -1,
"filename": "rtox-0.0.9.tar.gz",
"has_sig": false,
"md5_digest": "fc6419bc5d0b2cb450077dc425311140",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16727,
"upload_time": "2018-04-17T11:54:08",
"url": "https://files.pythonhosted.org/packages/9e/41/d8f52a28337155fbf3031f915c6bece029c5e1208baa3848e2343c5f287e/rtox-0.0.9.tar.gz"
}
],
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "9a8bf3788300e16770d43fef95c71e32",
"sha256": "e3c658f9a67ac541c7dddceaeb7f631913fad292d67ac58a6e3dd9ba50e80102"
},
"downloads": -1,
"filename": "rtox-1.0.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "9a8bf3788300e16770d43fef95c71e32",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 8906,
"upload_time": "2018-04-27T09:38:45",
"url": "https://files.pythonhosted.org/packages/b6/e4/714988473ca541dd9ef0da67103dd9d68642b48c4daa165321f23cae1991/rtox-1.0.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "02c0f040a1f2d18fe237948e6267617c",
"sha256": "fba6a817adb5fbfb230ff468ab4a49221f2cd9a0ef407d20cb08e2f2b758bc97"
},
"downloads": -1,
"filename": "rtox-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "02c0f040a1f2d18fe237948e6267617c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17049,
"upload_time": "2018-04-27T09:38:45",
"url": "https://files.pythonhosted.org/packages/b9/d9/17a49dda9b473bf5fe114c816ec95ce9b0354c26dbc3070bb963421dc156/rtox-1.0.0.tar.gz"
}
],
"1.0.1": [
{
"comment_text": "",
"digests": {
"md5": "0360acdf686756ee237fea2e018d6c7b",
"sha256": "a069aeae2016df0b67aabcca474eb76d41337b6afbb083438a31965c858c97d9"
},
"downloads": -1,
"filename": "rtox-1.0.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "0360acdf686756ee237fea2e018d6c7b",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 8910,
"upload_time": "2018-05-31T08:56:57",
"url": "https://files.pythonhosted.org/packages/41/d6/a776db3c0f22341020e50d27f47e1d118e7406663fc374ae7c83d3d5f4a9/rtox-1.0.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "c0210957192501b9a4fd3a19922b8714",
"sha256": "22ea7530d973e1ed1b9a46da112228b9fcfa1fcb23b9dcd73604b1c6270300fa"
},
"downloads": -1,
"filename": "rtox-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "c0210957192501b9a4fd3a19922b8714",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 17099,
"upload_time": "2018-05-31T08:56:59",
"url": "https://files.pythonhosted.org/packages/be/6d/8c36cb4640f57e9c9b897040000e61f199a4051d2407d7becc4c6fcb5422/rtox-1.0.1.tar.gz"
}
],
"1.0.2": [
{
"comment_text": "",
"digests": {
"md5": "4c0a2730c03101c7b6603390d9435a72",
"sha256": "81b673d58e4e7784f01ab4ca40a899c5fcbdede0ebab0a11bc4b4dc1739fa6f6"
},
"downloads": -1,
"filename": "rtox-1.0.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "4c0a2730c03101c7b6603390d9435a72",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 98003,
"upload_time": "2018-06-28T16:57:27",
"url": "https://files.pythonhosted.org/packages/65/eb/3a1713a39238b58d05e997a503f7c062b8751f5e99455d1e7083748a3d2d/rtox-1.0.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "4179b81e4193bab8423389857ec8b041",
"sha256": "8d14e0070f3977a74ffc26ddbeacb0064c144faeda4bc35ed17d2bdcce9fe8dd"
},
"downloads": -1,
"filename": "rtox-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "4179b81e4193bab8423389857ec8b041",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 94686,
"upload_time": "2018-06-28T16:57:28",
"url": "https://files.pythonhosted.org/packages/c5/a7/cd3fbaab9682e26b8e2bab623435aa1188f5dbea567a612977bb02e25796/rtox-1.0.2.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "4c0a2730c03101c7b6603390d9435a72",
"sha256": "81b673d58e4e7784f01ab4ca40a899c5fcbdede0ebab0a11bc4b4dc1739fa6f6"
},
"downloads": -1,
"filename": "rtox-1.0.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "4c0a2730c03101c7b6603390d9435a72",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 98003,
"upload_time": "2018-06-28T16:57:27",
"url": "https://files.pythonhosted.org/packages/65/eb/3a1713a39238b58d05e997a503f7c062b8751f5e99455d1e7083748a3d2d/rtox-1.0.2-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "4179b81e4193bab8423389857ec8b041",
"sha256": "8d14e0070f3977a74ffc26ddbeacb0064c144faeda4bc35ed17d2bdcce9fe8dd"
},
"downloads": -1,
"filename": "rtox-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "4179b81e4193bab8423389857ec8b041",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 94686,
"upload_time": "2018-06-28T16:57:28",
"url": "https://files.pythonhosted.org/packages/c5/a7/cd3fbaab9682e26b8e2bab623435aa1188f5dbea567a612977bb02e25796/rtox-1.0.2.tar.gz"
}
]
}