{ "info": { "author": "Ralph Bean", "author_email": "rbean@redhat.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Quality Assurance", "Topic :: Software Development :: Testing", "Topic :: Software Development :: Testing :: Traffic Generation" ], "description": "::\n\n _\n _ __ _ _| |__ ___\n | '__| | | | '_ \\ / _ \\\n | | | |_| | |_) | __/\n |_| \\__,_|_.__/ \\___|.core\n\n\n`rube.core `_ is a convenience layer\non top of selenium; the idea was to make it easier to write new integration\ntests for our staging infrastructure in a way that looked like normal old\nunit tests.\n\nRube is developed by the `Fedora Infrastructure team\n`_. You can find the tests for\n*our* infrastructure in the `rube.fedora\n`_. Please feel free to re-use\n``rube.core`` as you see fit.\n\nIf you are interested in *running the Fedora Infrastructure test suite*, please\nsee the ``rube.fedora`` `README\n`_.\n\nFeatures\n--------\n\nrube.core provides a number of useful decorators for your tests.\n\n- ``@rube.core.tolerant(n=3)`` tries to run your test. If it succeeds, it does\n nothing more. If your test fails, it tries again and again (up to ``n``\n times, by default 3 times). If it fails all ``n`` times, the failure is\n reported in the test. This is useful if your connection is flaky, or you\n know that one app is sometimes on the fritz.\n\n- ``@rube.core.skip_logout()`` perhaps somewhat obviously will add your test to\n a hidden ``_no_teardown`` list. The ``tearDown`` method will skip it when\n the time comes.\n\n- ``@rube.core.expects_zmqmsg(topic, timeout=20000)`` will cause rube to start\n up a background thread with a ``zmq.SUB`` socket. It will connect to\n whatever endpoint you have listed in ``setup.cfg`` like this::\n\n [zeromq]\n tcp://stg.fedoraproject.org:9940\n\n If a message does not arrive with the specified multipart prefix before the\n timeout has elapsed, then that test will fail. In Fedora Infrastructure, we\n use this to ensure that actions triggered on webapps by rube cause `fedmsg\n `_ messages to be published on our staging gateway.\n\n- ``@rube.core.ensures_after(callable)`` will invoke ``callable`` after your\n test has run, giving it a chance to raise an exception.\n\n The common use case is to define a callable that executes a shell\n command. For instance, you could have a selenium test that goes to an\n account system and applies for a dummy user's membership in a group. After\n that test has run, your callable could use paramiko to ssh to a machine and\n ensure that that user now has shell access (or something).\n\n- ``@rube.core.collect_har`` will collect HAR performance data on your\n websites. You have to do a little extra work (including setting up\n browsermob-proxy) in order to get this work. See below.\n\n----\n\nRunning the tests will open up Firefox in X which is a bit of a pain\nsometimes. If you want, you can run the tests in headless mode by setting\n``headless=1`` in setup.cfg. Doing so will require that you have\n``xorg-x11-server-Xvfb`` installed via yum, however.\n\n----\n\nCollecting HAR files for performance metrics.\n\nRube will output harfile data into a ``harfiles/`` directory if you turn on\n``collect-har`` and specify a ``path`` to `browsermob-proxy\n`_ in the ``[browsermob]`` section of your setup.cfg\nfile.\n\nYou'll also need to manually ``pip install browsermob-proxy`` into your\nvirtualenv. Note that `this patch\n`_ is required\nto collect HAR files from https sites (such as our entire infrastructure).\n\nAuthors\n-------\n\n- `Ralph Bean `_\n- `Remy DeCausemaker `_\n- `Luke Macken `_\n- `Ricky Elrod `_\n- `Greg Jurman `_\n\nLicense\n-------\nRube is free software: you can redistribute it and/or modify it under the terms\nof the GNU General Public License as published by the Free Software\nFoundation, either version 3 of the License, or (at your option) any later\nversion.\n\nRube is distributed in the hope that it will be useful, but WITHOUT ANY\nWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A\nPARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith Rube. If not, see `gnu.org/licenses `_.\n\n.. image:: https://www.gnu.org/graphics/gplv3-127x51.png\n :target: https://www.gnu.org/licenses/gpl.txt", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/fedora-infra/rube/", "keywords": null, "license": "GPLv3+", "maintainer": null, "maintainer_email": null, "name": "rube.core", "package_url": "https://pypi.org/project/rube.core/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/rube.core/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/fedora-infra/rube/" }, "release_url": "https://pypi.org/project/rube.core/0.1.2/", "requires_dist": null, "requires_python": null, "summary": "A convenience layer on top of selenium", "version": "0.1.2" }, "last_serial": 2045491, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "92b8b19e65c1a538c342219afd58092e", "sha256": "35409828c576245b7c8917be0c3d139d49108af3fa0f3d89834fa0a6ece80479" }, "downloads": -1, "filename": "rube.core-0.1.0.tar.gz", "has_sig": true, "md5_digest": "92b8b19e65c1a538c342219afd58092e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18347, "upload_time": "2013-04-03T20:45:13", "url": "https://files.pythonhosted.org/packages/6f/b9/d805a1763acf6782875daae5be7532f711d96703f2e812c3eac91df7f915/rube.core-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "b43c314b3ff00f0e59d099802cba4510", "sha256": "f42a8c36798fb0352c0902a954e2c682d2d36cc3ec43b49d5fd68f8c2ba7d46e" }, "downloads": -1, "filename": "rube.core-0.1.1.tar.gz", "has_sig": true, "md5_digest": "b43c314b3ff00f0e59d099802cba4510", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18401, "upload_time": "2013-04-04T13:38:58", "url": "https://files.pythonhosted.org/packages/73/fa/b22d59ec7266a80a95644bc937a7491ba20543ceebf9aeb2bdc9374903e6/rube.core-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "18ed8585535d2da8527520c00b464bba", "sha256": "6fef534ea10762052917183c92ed7bddfb2c1a37633408d8143d74a96ed6acaf" }, "downloads": -1, "filename": "rube.core-0.1.2.tar.gz", "has_sig": true, "md5_digest": "18ed8585535d2da8527520c00b464bba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21310, "upload_time": "2013-10-21T15:06:21", "url": "https://files.pythonhosted.org/packages/34/87/1cbb4fa460e9a6ab97ee2c64426c992c7d49da79e5a7da9f785d5052340c/rube.core-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "18ed8585535d2da8527520c00b464bba", "sha256": "6fef534ea10762052917183c92ed7bddfb2c1a37633408d8143d74a96ed6acaf" }, "downloads": -1, "filename": "rube.core-0.1.2.tar.gz", "has_sig": true, "md5_digest": "18ed8585535d2da8527520c00b464bba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21310, "upload_time": "2013-10-21T15:06:21", "url": "https://files.pythonhosted.org/packages/34/87/1cbb4fa460e9a6ab97ee2c64426c992c7d49da79e5a7da9f785d5052340c/rube.core-0.1.2.tar.gz" } ] }