{ "info": { "author": "Mikhail Korobov", "author_email": "kmike84@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "=======\nFabtest\n=======\n\nFabtest is a set of utilities and base TestCases that aid testing Fabric\nscripts against VirtualBox VMs. License is MIT.\n\nVM is rolled back to initial state before each test so tests can do anything\nwith target system; Fabric commands can be run from Python.\n\nInstallation\n------------\n\n::\n\n pip install fabtest\n\nVMs\n---\n\nIn order to run tests you'll need `VirtualBox`_ 4.x and an OS image.\nImage should have ssh server installed.\n\nExample VMs (they can be imported to VirtualBox via File->Import Appliance):\n\n* `Lenny.ova (312M) `_\n* `Squeeze.ova (436M) `_\n* `Ubuntu-10.10.ova (277M) `_\n* `Ubuntu-10.04.ova (375M) `_\n\nDue to bugs in VirtualBox it is better to convert imported .vmdk disk images\nto .vdi images, e.g.::\n\n VBoxManage clonehd Ubuntu-10.10-disk1.vmdk Ubuntu-10.10-disk.vdi --format VDI\n\nThen detach (and remove) vmdk disk from the VM and attach the vdi image.\n\nAfter you get the image, make sure it is not running and execute the\n``fabtest-preparevm`` script (pass your VM name or uid to it)::\n\n fabtest-preparevm Lenny\n\nThis command configures port forwarding (127.0.0.1:2222 to guest 22 port,\n127.0.0.1:8888 to guest 80 port) and takes 'fabtest-initial' snapshot\nused for test rollbacks (it is taken from booted machine in order to\nspeedup tests).\n\n.. _VirtualBox: http://www.virtualbox.org/\n\nWriting tests\n-------------\n\nSubclass fabtest.VirtualBoxTest or fabtest.FabTest and use fabtest.fab for\nfabric commands execution::\n\n from fabric.api import run\n from fabtest import FabTest, fab\n\n def whoami():\n return run('whoami')\n\n class MyTestCase(FabTest):\n def test_root_login(self):\n output = fab(whoami)\n self.assertEqual(output, 'root')\n\nLook at source code (and example/runtests.py) for more.\n\nCHANGES\n=======\n\n0.1.5 (2012-04-19)\n------------------\n\n* Improved workaround for a VirtualBox bug.\n\n0.1.4 (2012-04-19)\n------------------\n\n* Workaround for a VirtualBox bug under Windows.\n\n0.1.3 (2012-04-14)\n------------------\n\n* Packaging fixes.\n\n0.1.1 (2012-03-02)\n------------------\n\n* Better exception handling (the original traceback is preserved).\n\n0.1 (2012-03-01)\n----------------\n\n* Fabric >= 1.4 is supported (and required);\n* more reliable virtualbox snapshot handling;\n* ``fab`` function now wraps fabric's ``execute`` and\n returns single value, not a list of values.\n\n0.0.8 (2011-03-22)\n------------------\n\n* Many tweaks & bug fixes.\n\n0.0.1 (2011-02-16)\n------------------\n\nInitial experimental release (extracted from django-fab-deploy).", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/kmike/fabtest/", "keywords": null, "license": "MIT license", "maintainer": null, "maintainer_email": null, "name": "fabtest", "package_url": "https://pypi.org/project/fabtest/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/fabtest/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/kmike/fabtest/" }, "release_url": "https://pypi.org/project/fabtest/0.1.5/", "requires_dist": null, "requires_python": null, "summary": "Test Fabric scripts on VirtualBox VMs", "version": "0.1.5" }, "last_serial": 654834, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "a1a5ba2132e47ac42711aa6bc6ac4953", "sha256": "c4d918a674fac35af9016f8726c6c185f569f63c04c6a374c0cf3abe3e8d94b1" }, "downloads": -1, "filename": "fabtest-0.0.1.tar.gz", "has_sig": false, "md5_digest": "a1a5ba2132e47ac42711aa6bc6ac4953", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4314, "upload_time": "2011-02-16T13:32:40", "url": "https://files.pythonhosted.org/packages/02/0e/473adc04a693a43b0e34456a233d944f86c885a39cc04c8b299ba3cb70ac/fabtest-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "c2f7ea4febf9f2ee12a7225b585ae914", "sha256": "f40411d7db938079696e3a31fc5cc52884c7869219e4eb96364832b75424e122" }, "downloads": -1, "filename": "fabtest-0.0.2.tar.gz", "has_sig": false, "md5_digest": "c2f7ea4febf9f2ee12a7225b585ae914", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4364, "upload_time": "2011-02-17T01:20:13", "url": "https://files.pythonhosted.org/packages/44/9a/659a4093b73ce5de7aac4387f90dc7524b13c94e8f44d06b329002b026b1/fabtest-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "610a40a0016cffc28a89dd39657f56a1", "sha256": "70424a644abc9303c7b81f958e0da4675771a74fb52eb04e8a22f5edaa71f6ff" }, "downloads": -1, "filename": "fabtest-0.0.3.tar.gz", "has_sig": false, "md5_digest": "610a40a0016cffc28a89dd39657f56a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4379, "upload_time": "2011-02-17T03:23:19", "url": "https://files.pythonhosted.org/packages/34/fd/d6162f6eb67fc2fee54ab6d760ede6de0ad3f89492467e725e7204229cb7/fabtest-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "eb033d5e12fb4b9ba7463c5e0093cc93", "sha256": "a3222f88bc4954fdd62735bf80df56d474cb6098a4489cd0cd39d605e4b8c12e" }, "downloads": -1, "filename": "fabtest-0.0.4.tar.gz", "has_sig": false, "md5_digest": "eb033d5e12fb4b9ba7463c5e0093cc93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4536, "upload_time": "2011-02-17T13:36:30", "url": "https://files.pythonhosted.org/packages/56/21/845bb01806b95cfc1819b573c51f1fb1e394735386e9e50a794e6c748846/fabtest-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "32a4a108ab0006d3e4625615b4705df0", "sha256": "ef228264df11763d08825ca586e0f69dbac884990d9cf9ece69b68915fd9f443" }, "downloads": -1, "filename": "fabtest-0.0.5.tar.gz", "has_sig": false, "md5_digest": "32a4a108ab0006d3e4625615b4705df0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4630, "upload_time": "2011-02-17T17:21:27", "url": "https://files.pythonhosted.org/packages/f7/25/0907718c2555c7c9c1a3f4c866e8a7fe264d3483b06fce39e4f98e2296ad/fabtest-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "82e3415bc23406e3a6ea0ddacba9aeed", "sha256": "a5f638df1d160208a11daa69bdc1de0c4a038fbb24bce7c9fa8ab9adba540dd0" }, "downloads": -1, "filename": "fabtest-0.0.6.tar.gz", "has_sig": false, "md5_digest": "82e3415bc23406e3a6ea0ddacba9aeed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5042, "upload_time": "2011-02-19T02:07:05", "url": "https://files.pythonhosted.org/packages/ec/3b/b6a09db274a300315ee1991b2b6fbe9d78d744dcc68f09d2b3fe4fdca6ef/fabtest-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "d933450bd1d7b25692f0f0105a2ce6d7", "sha256": "c6d9d7171532246eb826dee334d55a95235606b87b512bf0d2011774d8ac0747" }, "downloads": -1, "filename": "fabtest-0.0.7.tar.gz", "has_sig": false, "md5_digest": "d933450bd1d7b25692f0f0105a2ce6d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5066, "upload_time": "2011-02-19T04:02:11", "url": "https://files.pythonhosted.org/packages/94/52/5ae5f9182d66614903014ddfe1886aea4be179c375b14235dd5f967a0d08/fabtest-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "359000820f6e8e1637fa37dc43080051", "sha256": "e0b739c06512aee66b1eb41263abe8fc36ced74fe9c48fddc3400e44eee38e3d" }, "downloads": -1, "filename": "fabtest-0.0.8.tar.gz", "has_sig": false, "md5_digest": "359000820f6e8e1637fa37dc43080051", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5113, "upload_time": "2011-03-22T12:00:54", "url": "https://files.pythonhosted.org/packages/63/79/9bf471a9f5b964313b51c5b5e89a8196ae7143c87250294e49845eca8afb/fabtest-0.0.8.tar.gz" } ], "0.1": [ { "comment_text": "", "digests": { "md5": "e0a238314873fafe18bdb3b6adbd114e", "sha256": "91a5c86b92b6d8913de2f9d5adfbc5a7ea0dc2e7b1842e66455b0df114cc56be" }, "downloads": -1, "filename": "fabtest-0.1.tar.gz", "has_sig": false, "md5_digest": "e0a238314873fafe18bdb3b6adbd114e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6103, "upload_time": "2012-03-01T04:07:11", "url": "https://files.pythonhosted.org/packages/82/40/6f88db8aeb1aa520ddfb6152c297d11b35c936aca8ed4ec7c310a00ccf19/fabtest-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "23e093d3e3093c23e18e2c18ec24057a", "sha256": "1e0c4325639aa2ad54cca4087a0a530ae7395dc3fc6637a03388b7b96af83e44" }, "downloads": -1, "filename": "fabtest-0.1.1.tar.gz", "has_sig": false, "md5_digest": "23e093d3e3093c23e18e2c18ec24057a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6152, "upload_time": "2012-03-01T17:38:31", "url": "https://files.pythonhosted.org/packages/e6/d1/642c66b8b4d5a739a7b0221966c8b4300a946ed7476317ba654b263bc81e/fabtest-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "1188911ace7427d46b8ec3d20db5e344", "sha256": "5a294aae21d4e50f0487a83fcf5a737820a19d6ed0d017e9bc3d922cd428ddcb" }, "downloads": -1, "filename": "fabtest-0.1.2.tar.gz", "has_sig": false, "md5_digest": "1188911ace7427d46b8ec3d20db5e344", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6332, "upload_time": "2012-04-13T22:49:49", "url": "https://files.pythonhosted.org/packages/79/f1/af3deb5aac9c437197623eab499428459d4f0089fc11e6af469613194cd4/fabtest-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "aea9ab94938081ef069190537726f8bd", "sha256": "5037087b7fac5427b33011545e581396e946096c583df65eae28c566fa21ecf8" }, "downloads": -1, "filename": "fabtest-0.1.3.tar.gz", "has_sig": false, "md5_digest": "aea9ab94938081ef069190537726f8bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6338, "upload_time": "2012-04-13T22:52:41", "url": "https://files.pythonhosted.org/packages/5c/ca/c1a1f2fe8d824e44df209d00fafd2d1785da225c83b626fc0e16cd093d20/fabtest-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "6014e0176052ae73791d1e5ce7ad4406", "sha256": "8bccf53f32c013c2ca4603d31ac45cf790132a8fba3cd4d33483136989f7328b" }, "downloads": -1, "filename": "fabtest-0.1.4.tar.gz", "has_sig": false, "md5_digest": "6014e0176052ae73791d1e5ce7ad4406", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6481, "upload_time": "2012-04-20T22:48:43", "url": "https://files.pythonhosted.org/packages/fe/ca/0e389a794a68d8916f97c4061aeda73c77b693b5db5b7759d438dcd2e644/fabtest-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "5c1a3937db356e587113dfbbb9ffe6ab", "sha256": "cd7c86de9f913b5fa0483cc6cb2cd5f61783e5250fcabcc811f338af7a17a7c0" }, "downloads": -1, "filename": "fabtest-0.1.5.tar.gz", "has_sig": false, "md5_digest": "5c1a3937db356e587113dfbbb9ffe6ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6441, "upload_time": "2012-05-11T18:35:37", "url": "https://files.pythonhosted.org/packages/c7/2a/9a886a5e0352e311fc8079e0dff98e6c17c0e1eae6a68b4e52f01be18ce9/fabtest-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5c1a3937db356e587113dfbbb9ffe6ab", "sha256": "cd7c86de9f913b5fa0483cc6cb2cd5f61783e5250fcabcc811f338af7a17a7c0" }, "downloads": -1, "filename": "fabtest-0.1.5.tar.gz", "has_sig": false, "md5_digest": "5c1a3937db356e587113dfbbb9ffe6ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6441, "upload_time": "2012-05-11T18:35:37", "url": "https://files.pythonhosted.org/packages/c7/2a/9a886a5e0352e311fc8079e0dff98e6c17c0e1eae6a68b4e52f01be18ce9/fabtest-0.1.5.tar.gz" } ] }