{ "info": { "author": "Joaquin Duo", "author_email": "joaduo@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "SmoothTest\n==========\n\n|Codeship Status for joaduo/smoothtest|\n\nGeneral purpose Testing Utilities and also special testing tools for Web\nApplications\n\nBetter API for accessing Selenium\n---------------------------------\n\nWith smoothtest you can write nicer tests for web sites.\n\n.. code:: python\n\n class SearchEnginesDemo(unittest.TestCase):\n def setUp(self):\n # We need to enter \"single test level\" of life for each test\n # It will initialize the webdriver if no webdriver is present from upper levels\n self._level_mngr = WebdriverManager().enter_level(level=SINGLE_TEST_LIFE)\n # Get Xpath browser\n self.browser = self._level_mngr.get_xpathbrowser(name=__name__)\n\n def tearDown(self):\n # Make sure we quit those webdrivers created in this specific level of life\n self._level_mngr.exit_level()\n\n def test_duckduckgo(self):\n # Load a local page for the demo\n self.browser.get_url('https://duckduckgo.com/')\n # Type smoothtest and press enter\n self.browser.fill(\".//*[@id='search_form_input_homepage']\", 'smoothtest\\n')\n result_link = './/a[@title=\"smoothtest \"]'\n # Wait for the result to be available\n self.browser.wait_condition(lambda brw: brw.select_xpath(result_link))\n # Click on result\n self.browser.click(result_link)\n # First result should point to github\n expected_url = 'https://github.com/joaduo/smoothtest'\n wait_url = lambda brw: brw.current_url() == expected_url\n # Make sure we end up in the right url\n self.assertTrue(self.browser.wait_condition(wait_url))\n\nThe API is very XPath oriented, so you can test your XPath with\nFirefox's extensions like FirePath.\n\nHow to use smoothtest\n---------------------\n\nThe main utility is the ``smoothtest`` command. This command monitors\nyour project's files and your unittest files for changes, it will\ntrigger reloading and rerunning tests when a file changes. This means\nyou can work in your code and see how tests are affected automatically.\nYou can select a group of tests files to be monitored - that trigger\npartial reloads of those same modules - and an group of files or\ndirectories to trigger full reloads of the project.\n\nIt also provides a ipython UI interface to modify certain values and\nre-test.\n\nDo\n\n::\n\n smoothtest\n\nTo enter the Ipython UI without specifying any initial test.\n\nIf you want to start with a specific test, run this to get possible\narguments.\n\n::\n\n smoothtest --help\n\nInside Ipython you have commands:\n\n::\n\n %smoothtest\n %test\n %reset\n %test_config\n %get\n %chrome\n %firefox\n %phantonjs\n %steal_xpathbrowser\n\nWhere ``%smoothtest`` has same parameters as the ``smoothtest`` command\nbut adds ``-u`` for updating test parameters and ``-f`` for forcing a\nreloading.\n\n``smoothtest`` command is still in beta stage, so some functionality\nwon't be as reliable as expected. (but still useful for developing\ntests) You may need to restart the ``smoothtest`` command from time to\ntime.\n\nConfiguration\n-------------\n\nYou will need a ``smoothtest_settings.py`` in your ``PYTHONPATH`` that\nlooks like this:\n\n::\n\n from smoothtest.settings.default import DefaultSettings\n import logging\n\n class Settings(DefaultSettings):\n web_server_url = 'http://localhost:8011/'\n\n webdriver_browser = 'Firefox' #'Chrome' 'PhantomJS'\n ...\n\nInstalling\n----------\n\nYou can use pip to install it:\n\n::\n\n pip install smoothtest \n\nOr uninstall it:\n\n::\n\n pip uninstall smoothtest \n\nInstalling virtual screen dependencies\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIn ubuntu you may need to install\n\n::\n\n sudo apt-get install xserver-xephyr xvfb\n\nWindows and Mac OSX\n-------------------\n\nWindows\n~~~~~~~\n\nOn windows, the ``smoothtest`` shell does not work (due to partial\nsupport of unix's fork()) , although running test cases directly will\nwork.\n\nMac OSX\n~~~~~~~\n\nInside Mac OS fork() should work, although I haven't had the chance to\ntest it there. Let me know if you do.\n\n.. |Codeship Status for joaduo/smoothtest| image:: https://codeship.com/projects/cdad4830-b21d-0132-82c3-62decd5a7cb3/status?branch=master\n :target: https://codeship.com/projects/69981", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/joaduo/smoothtest", "keywords": "testing,automation,web,unittest", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "smoothtest", "package_url": "https://pypi.org/project/smoothtest/", "platform": "", "project_url": "https://pypi.org/project/smoothtest/", "project_urls": { "Homepage": "https://github.com/joaduo/smoothtest" }, "release_url": "https://pypi.org/project/smoothtest/0.3.6/", "requires_dist": null, "requires_python": "", "summary": "General purpose Testing Utilities and also special testing tools for for Web Applications", "version": "0.3.6" }, "last_serial": 3038283, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "d85dd12eb2c758f264d4c6531d0897db", "sha256": "811b91cbbde026d18e412af550ce80e8d4164ddd64b9e9cc821fb4be6df56269" }, "downloads": -1, "filename": "smoothtest-0.1.tar.gz", "has_sig": false, "md5_digest": "d85dd12eb2c758f264d4c6531d0897db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18972, "upload_time": "2014-09-25T18:57:23", "url": "https://files.pythonhosted.org/packages/8a/71/09b50dd0a7c6d4b1f76a6602be6f8b929d285a3199fd2ed8bdc7c15b8301/smoothtest-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "cae233f2d5d90c32a698675a493411d0", "sha256": "83522370a34250b5cfd95af0da3145def2a6cdf3845fa3bdf6ef511bae4aded9" }, "downloads": -1, "filename": "smoothtest-0.1.1.tar.gz", "has_sig": false, "md5_digest": "cae233f2d5d90c32a698675a493411d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18925, "upload_time": "2014-09-25T23:48:45", "url": "https://files.pythonhosted.org/packages/4e/98/233146464df3a50fefc7af564b6dacc878ad2efa62e2bf84e177ce97895f/smoothtest-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "915df3950fff0bf190f520119ff7e131", "sha256": "e55870da1df6e561d85b99b6548127da9645f92aefb80fff190e487212ef643a" }, "downloads": -1, "filename": "smoothtest-0.1.2.tar.gz", "has_sig": false, "md5_digest": "915df3950fff0bf190f520119ff7e131", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23257, "upload_time": "2014-10-07T17:13:39", "url": "https://files.pythonhosted.org/packages/25/9b/a27a5a63a560ac22b81df9ab0397e0d81990b57f1d8de71beeb5524e5739/smoothtest-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "fc0dd1e675471f560ab798056b2f32c3", "sha256": "6269b657468fc498e00666af9bc677ab1dd6287c98313ff77f67e42b98780df9" }, "downloads": -1, "filename": "smoothtest-0.1.3.tar.gz", "has_sig": false, "md5_digest": "fc0dd1e675471f560ab798056b2f32c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26554, "upload_time": "2014-10-11T03:53:42", "url": "https://files.pythonhosted.org/packages/3d/09/fcb0d0e430b48a775ebe1083cb6dd3fde3ddb804062b2d306e872c2ab6bf/smoothtest-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "898761ecd109f0d9cd5bceb3cc5b735c", "sha256": "6a6ac40229dc9043ad9fb9ed024e0f0ae84b5235c8ca27d0747e7b351bbe4b5b" }, "downloads": -1, "filename": "smoothtest-0.1.4.tar.gz", "has_sig": false, "md5_digest": "898761ecd109f0d9cd5bceb3cc5b735c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39516, "upload_time": "2014-12-15T20:15:54", "url": "https://files.pythonhosted.org/packages/dd/13/335d1d7433a81e24c4bf42ae8a08811701af7e14839a2927bc50160792f6/smoothtest-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "34f256db2e1418e5f5944770f62285f8", "sha256": "ffdb1d58760df3870aba2dc9785331521b24f72cd43a1675833d2fadf4bcb0cf" }, "downloads": -1, "filename": "smoothtest-0.1.5.tar.gz", "has_sig": false, "md5_digest": "34f256db2e1418e5f5944770f62285f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40529, "upload_time": "2014-12-16T06:23:19", "url": "https://files.pythonhosted.org/packages/25/9f/8e4799aa8dcad3720aaa7088e815ac1dac11fcceb66259713e60fd6c3799/smoothtest-0.1.5.tar.gz" } ], "0.1.7": [], "0.1.8": [ { "comment_text": "", "digests": { "md5": "f0c8cc0fe10f22c77dd149cb5f23aa8d", "sha256": "d5ca8300549e79635a7c480a1ca36e0c00aa635847d0d577917882048e233755" }, "downloads": -1, "filename": "smoothtest-0.1.8.tar.gz", "has_sig": false, "md5_digest": "f0c8cc0fe10f22c77dd149cb5f23aa8d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60553, "upload_time": "2015-06-08T06:53:51", "url": "https://files.pythonhosted.org/packages/73/77/9220d7c389518f557edcaf2acbf624684f59fb1eabf234f107c97c31e31e/smoothtest-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "74320f7daf9b8cbd047b7ac745f0a1bc", "sha256": "d52d3b74dbb148e0343709fd3cafbac2a194ac70880ced74fbb7ea4fac0a1bec" }, "downloads": -1, "filename": "smoothtest-0.1.9.tar.gz", "has_sig": false, "md5_digest": "74320f7daf9b8cbd047b7ac745f0a1bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61698, "upload_time": "2015-07-21T18:57:40", "url": "https://files.pythonhosted.org/packages/f3/f5/eb415f6e2a0ab3a5efd432aabfdc41c98aa7aad5ef1f7562f7aec1e26b71/smoothtest-0.1.9.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "b203a43286f300e341754f3ebbcf867f", "sha256": "4d35a0df85695c19cae690220f1ce3fdc85a4ecb0471e53aad468bdd3611d15f" }, "downloads": -1, "filename": "smoothtest-0.2.tar.gz", "has_sig": false, "md5_digest": "b203a43286f300e341754f3ebbcf867f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62298, "upload_time": "2015-09-04T03:54:49", "url": "https://files.pythonhosted.org/packages/6c/59/a4bbec74ffc5b34535fee5ea1f94eb2fe0fd25720f07a5bec35892c9c6f5/smoothtest-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "afad303b9549d1c777bffa34d02d0cbb", "sha256": "61859109583dda0f2d8ba3c7a5a373aa8d54586c78fd05652544872810051c8b" }, "downloads": -1, "filename": "smoothtest-0.3.tar.gz", "has_sig": false, "md5_digest": "afad303b9549d1c777bffa34d02d0cbb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64332, "upload_time": "2016-06-06T16:48:55", "url": "https://files.pythonhosted.org/packages/c9/5d/d9407c8c6f838231e50844be5ea297c028b1b3da7991baceb7800657a52a/smoothtest-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "43c2bd65ee3a1a5f1e68a68fba2226a7", "sha256": "10dc6cd91c190bfa9cba296be848cd6005b483dafbe391d6921f2545117427b6" }, "downloads": -1, "filename": "smoothtest-0.3.1.tar.gz", "has_sig": false, "md5_digest": "43c2bd65ee3a1a5f1e68a68fba2226a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64332, "upload_time": "2016-06-13T14:16:49", "url": "https://files.pythonhosted.org/packages/91/7a/f4cd6432caf9c75145a1a8020882d66421c190192659be445cebc63ca387/smoothtest-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "ad5988e57c1d5cc913ea86096f70564e", "sha256": "d08343a054cbb6458ad0785fcff513796337518183564e36e90a84ba3bf57887" }, "downloads": -1, "filename": "smoothtest-0.3.2.tar.gz", "has_sig": false, "md5_digest": "ad5988e57c1d5cc913ea86096f70564e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62925, "upload_time": "2016-06-18T01:21:59", "url": "https://files.pythonhosted.org/packages/7e/89/706a8865798251d022b1b61f2e8fc27084f08448d1aa1282ac54e031f055/smoothtest-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "80719cbdf00090e684fce01b9be22e4a", "sha256": "36c564c4f25519e86c611419db1d834e23a3984ea9d86b2ea4da0e37180102c3" }, "downloads": -1, "filename": "smoothtest-0.3.3.tar.gz", "has_sig": false, "md5_digest": "80719cbdf00090e684fce01b9be22e4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49699, "upload_time": "2017-03-09T21:35:23", "url": "https://files.pythonhosted.org/packages/6f/8a/9f1c17bd98d93c52fd81b66f0820995c2f01706299205e4f09b1a6e45897/smoothtest-0.3.3.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "ad06a3e38d4377d77338b83f74b7bcde", "sha256": "32562405223448a9cccb40042efbf1ef887b2190d0f6b3158390bffeda0bc38a" }, "downloads": -1, "filename": "smoothtest-0.3.5.tar.gz", "has_sig": false, "md5_digest": "ad06a3e38d4377d77338b83f74b7bcde", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49701, "upload_time": "2017-04-07T05:46:26", "url": "https://files.pythonhosted.org/packages/13/bc/2448ceb41413f763539956c3df948167032fab3391311c9e542d76288c4b/smoothtest-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "2b17d6ce25a085d2cdbe79ac6bfb36fc", "sha256": "c214040f1a6c64175eea61be338aca85146c6f4aedf1aa2679a7a49f6ba3173a" }, "downloads": -1, "filename": "smoothtest-0.3.6.tar.gz", "has_sig": false, "md5_digest": "2b17d6ce25a085d2cdbe79ac6bfb36fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50229, "upload_time": "2017-07-21T02:17:32", "url": "https://files.pythonhosted.org/packages/7c/e6/3f3c014e4abf242b68a099acd7970ca53eea0ba9ad73e8d4c8de22ff71a2/smoothtest-0.3.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2b17d6ce25a085d2cdbe79ac6bfb36fc", "sha256": "c214040f1a6c64175eea61be338aca85146c6f4aedf1aa2679a7a49f6ba3173a" }, "downloads": -1, "filename": "smoothtest-0.3.6.tar.gz", "has_sig": false, "md5_digest": "2b17d6ce25a085d2cdbe79ac6bfb36fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50229, "upload_time": "2017-07-21T02:17:32", "url": "https://files.pythonhosted.org/packages/7c/e6/3f3c014e4abf242b68a099acd7970ca53eea0ba9ad73e8d4c8de22ff71a2/smoothtest-0.3.6.tar.gz" } ] }