{ "info": { "author": "OpenStack", "author_email": "openstack-dev@lists.openstack.org", "bugtrack_url": null, "classifiers": [ "Environment :: OpenStack", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3" ], "description": "===\ndox\n===\n\ndox is a tool for using docker containers to run local tests, inspired by\ntox and virtualenv for python. There are two elements to its configuration:\n\n* What commands should be run?\n\n* In what image should they be run?\n\nIf there is a dox.yml file, you're set. You want to specify what image to\nuse and what commands to run. You win::\n\n image: ubuntu:trusty\n commands: |\n pip install . -r test-requirements.txt\n python setup.py test\n\nYou might either not be willing to commit to dox as a way of life yet, or you\nmay want to use dox in a project that similarly has not done so.\n\nWhat commands should be run\n---------------------------\n\ndox.yml wins.\n\nIf there is a tox.ini file, the commands specified in the base [testenv]\nwill be used.\n\nIf there is a .travis.yml file, the script section will be used.\n\nIf there are none of those things, dox will do its best to infer what\nshould be done. Examining the directory can often provide hints if you\nhaven't been too clever. For instance, if you have a Gruntfile, you probably\nwant to run grunt. If you have a Makefile, then make && make test is probably\nyour bag. If you have a Makefile.am, you probably want to run autotools first.\nIf you have a setup.py file, python setup.py test is a likely choice (although\nin that case, you probably haven't done it right because setuptools support\nfor this is quite awful.)\n\nAfter all of that, if we still can't figure out what you want - it's probably\neasiest to just edit a file called dox.yml and put in a section telling us\nwhat to do.\n\nIn what image should they be run\n--------------------------------\n\nAgain, dox.yml wins, and thanks for making things easy!\n\nIf there is a tox.ini file, and it contains a [docker] section, the value in\n\"image\" will be used::\n\n [docker]\n image=ubuntu:trusty\n\nIf there is not an image key in the docker section or an image key in the\ndox.yml but there is a Dockerfile in the repo, an new image will be built\nusing the Dockerfile and the test commands will be run inside of the image.\n\nIf all of that fails, tests are going to run in a bare ubuntu image. Good luck!\n\nImage Caching\n-------------\n\nEvery run actually has two images associated with it: The `base` image and\nthe `test` image.\n\nThe image referenced above is the `base` image. When you execute `dox`,\nit will search docker for the named image. If it exists, it will do nothing.\nIf it does not, it will either pull it, or, it will build it from the\nDockerfile. In the case of building from a Dockerfile, dox will make an image\nnamed for the source directory. So if you're in ~/src/openstack/nova, it'll\nmake an image called \"dox/nova/base\".\n\nThe `test` image is an image made by dox for the test run. Similar to the\nbase run, it'll have a generated name, such as \"dox/nova/test\", and similar\nto the base image, it will get generated once and then left alone.\n\nIf you want to regenerate the `test` image, you can run dox with the `-r`\noption. If you want to regenerate/repull everything, you can run it with the\n`--rebuild-all` option.\n\nThe reasoning behind this is that the base image should really be the\nsubstrata which doesn't have a lot to do with the repo itself ... it shouldn't\nreally expect to change much based on day to day changes in the repo. The\ntest image on the other hand is built a bit more based on the repo itself.\nSo, for instance, in the base image you might want to do things like::\n\n apt-get install libxml-dev\n\nand in the test image, you'd want things like::\n\n pip install -U requirements.txt\n\nNeither change frequently, but the second it more likely to change day to day\nthan the first.\n\nAdditional information\n----------------------\n\nRegardless, dox will mount the current source dir as a volume at `/src` in\nthe container and will run commands in that context.\n\ndox will attempt to reuse containers. Since the source is bind-mounted into\nthe container, things that might be expensive like copying source dirs or\nre-installing the source into the system can be minimized.\n\nBoot2Docker support\n-------------------\n\nTo get support for non Linux OSes that doesn't support natively docker\nthere is a tool called `boot2docker `_ which\nallows you to run a remote docker server in a VirtualBox VM and the\nclient running on the non Linux desktop.\n\nVolume support started to be supported by `boot2docker` since docker version\n1.3. You will need to be at least on that version to have volume mount support.\n\nIf you username id is different from the docker username on the `boot2docker` vm,\nyou will need to specify it on the command line, like this::\n\n dox --user-map=docker:1000:10\n\nIf you use VirtualBox guest additions to mount your osx onto the `boot2docker` vm,\nexample /Users/your_name/openstack/oslo-incubator as /home/your_name/openstack/oslo-incubator,\nthen you can add the following mapping::\n\n dos --path-map=/Users/your_name:/home/your_name\n\n\nAdvanced\n--------\nIt is possible to specify multiple images to be used in a dox run.\nImages can be provided on the command line, via the dox.yml file, or the\ntox.ini file.\n\nFor the command line, images should be provided via the --images option,\nin a comma-separated list.\n\nThe tox.ini file should also use a comma-separated list.\n\nThe dox.yml file should list images in an array.\n\nThe same prep and command instructions will be executed on each image sequentially.\n\ndox does not currently allow for multiple images executing different tasks\nat this time. However, it is a goal to allow for such test scenarios in \nthe future.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.openstack.org/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "dox", "package_url": "https://pypi.org/project/dox/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/dox/", "project_urls": { "Homepage": "http://www.openstack.org/" }, "release_url": "https://pypi.org/project/dox/0.2.0/", "requires_dist": [ "six", "pbr (>=0.5.21,<1.0)", "argparse", "PyYAML" ], "requires_python": "", "summary": "dox runs tox descriptions in docker containers", "version": "0.2.0" }, "last_serial": 1728143, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "4a2ec9ffea51501beece3da4d5ebf830", "sha256": "5fdee69e3ed6ccb84c82b65a02baaabc84afb17af65bd40d833e0adae3db5023" }, "downloads": -1, "filename": "dox-0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "4a2ec9ffea51501beece3da4d5ebf830", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 31409, "upload_time": "2014-12-08T21:05:16", "url": "https://files.pythonhosted.org/packages/1b/ad/1750d8147cc3ef9d6e2040d5a9aff17dd77e4818365a6973ec293391e508/dox-0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a4916b005617abc1c1d572b795af5cb9", "sha256": "ca5bc199b5d0d41a2bc8eaf0e9701199802f3be7b9e3c9bb5c0971df78018ecf" }, "downloads": -1, "filename": "dox-0.1.tar.gz", "has_sig": false, "md5_digest": "a4916b005617abc1c1d572b795af5cb9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25431, "upload_time": "2014-12-08T21:05:20", "url": "https://files.pythonhosted.org/packages/1c/36/7131dee0c63a0983742deef33a295869fe8d422bb92b79f91b7ed8bf9ead/dox-0.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "8d79a1b0353e1c6592629330a09fa611", "sha256": "d5055b78c1246997e88735931a9d154dcaf7229408cd39f23f5ec0fdb14510cb" }, "downloads": -1, "filename": "dox-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "8d79a1b0353e1c6592629330a09fa611", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 31684, "upload_time": "2015-09-18T13:27:12", "url": "https://files.pythonhosted.org/packages/ff/ee/9db6d66601798bb2b0724e901c37b683a39070a92fdebf3a3dc2748bcba6/dox-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bd918ab60f96c2f71eefae60d3fda005", "sha256": "082d202e10527aa80c49fa5befc299006103f5070978352b9f7aa181af6b5648" }, "downloads": -1, "filename": "dox-0.2.0.tar.gz", "has_sig": false, "md5_digest": "bd918ab60f96c2f71eefae60d3fda005", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25825, "upload_time": "2015-09-18T13:27:16", "url": "https://files.pythonhosted.org/packages/36/01/886cb4e3979fac801627095f7399f5e8eb6febfe9f76aed89a74b6f9c21d/dox-0.2.0.tar.gz" } ], "9f33ae5": [] }, "urls": [ { "comment_text": "", "digests": { "md5": "8d79a1b0353e1c6592629330a09fa611", "sha256": "d5055b78c1246997e88735931a9d154dcaf7229408cd39f23f5ec0fdb14510cb" }, "downloads": -1, "filename": "dox-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "8d79a1b0353e1c6592629330a09fa611", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 31684, "upload_time": "2015-09-18T13:27:12", "url": "https://files.pythonhosted.org/packages/ff/ee/9db6d66601798bb2b0724e901c37b683a39070a92fdebf3a3dc2748bcba6/dox-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bd918ab60f96c2f71eefae60d3fda005", "sha256": "082d202e10527aa80c49fa5befc299006103f5070978352b9f7aa181af6b5648" }, "downloads": -1, "filename": "dox-0.2.0.tar.gz", "has_sig": false, "md5_digest": "bd918ab60f96c2f71eefae60d3fda005", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25825, "upload_time": "2015-09-18T13:27:16", "url": "https://files.pythonhosted.org/packages/36/01/886cb4e3979fac801627095f7399f5e8eb6febfe9f76aed89a74b6f9c21d/dox-0.2.0.tar.gz" } ] }