{ "info": { "author": "Colin Nolan", "author_email": "colin.nolan@sanger.ac.uk", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6" ], "description": "|Build Status| |codecov.io| |Documentation Status| # Use In Test *I\ndon't care how it's done, I just want to use it in my tests!*\n\n`Less blurb, more documentation - link to\nReadTheDocs `__.\n\nKey Features\n------------\n\n- Simple way of running services (e.g. Mongo, CouchDB, iRODS) and using\n executables (e.g. Samtools, icommands).\n- No knowledge of containers required.\n- No knowledge of service/executables required (how to install it, when\n it's ready to use, etc.).\n- Does not require the installation of anything on your local machine,\n aside from Docker.\n- Makes it simple to test against multiple versions of the same service\n or set of executables.\n- Easy to achieve test isolation.\n\nModules\n-------\n\nOut of the box support for:\n\n- Mongo\n- CouchDB\n- iRODS\n- Samtools\n- GitLab\n- Gogs\n- Bissell\n- Consul\n\nWhy Use This Library?\n---------------------\n\nSoftware no longer works in isolation; with the trend towards\nmicroservices over monoliths, modern day applications rely on numerous\nexternal services for both data and computation.\n\nMocks can be a quick way to test against something that (should) behave\nlike the external service that your application uses. However, unless a\nwell respected mocking framework exists, the mock you'll end up with\nwill probably make the same bad assumptions about the behaviour of\nservice as your faulty code does!\n\nTesting with the \"real thing\" or a shared dev mirror of it is probably\nnot a good idea during development, particularly if the services that\nyou're using hold state. You want to be able to run the tests in\nparallel, have repeatability and have availability, be it for when\nyou're offline or for collaborators outside of your organisation. You\nalso want to be able to wipe the slate clean and start again if\nsomething goes terribly wrong! It is unlikely you will be able to do\nthis in any kind of shared environment.\n\nThis library offers a way to just start up services and then throw them\naway after each test case, with no mess left over on your machine. It\ngives complete test isolation along with confidence that you're testing\nwith services similar to those used in production.\n\nQuick Examples\n--------------\n\nStart up a containerised instance of Mongo:\n\n.. code:: python\n\n from useintest.modules.mongo import MongoServiceController\n\n # Starts a containerised version of Mongo\n controller = MongoServiceController() \n with controller.start_service() as service: \n run_my_tests(my_application, service.host, service.port)\n\nUse samtools in a container from the host machine via \"proxy\nexecutables\":\n\n.. code:: python\n\n from useintest.modules.samtools import SamtoolsExecutablesController\n\n controller = SamtoolsExecutablesController() \n executables_directory = controller.write_executables()\n # In the case of Samtools, there will be one executable in `executables_directory` named \"samtools\"\n run_my_tests(my_application, executables_directory)\n controller.tear_down()\n\nDocumentation\n-------------\n\nFor more details, including information on how to setup and use the\nlibrary, please `view the documentation on\nReadTheDocs `__ or read it from\n``/docs``.\n\n.. |Build Status| image:: https://travis-ci.org/wtsi-hgi/useintest.svg\n :target: https://travis-ci.org/wtsi-hgi/useintest\n.. |codecov.io| image:: https://codecov.io/gh/wtsi-hgi/useintest/graph/badge.svg\n :target: https://codecov.io/github/wtsi-hgi/useintest\n.. |Documentation Status| image:: https://readthedocs.org/projects/useintest/badge/?version=latest\n :target: http://useintest.readthedocs.io/en/latest/?badge=latest\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/wtsi-hgi/useintest", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "useintest", "package_url": "https://pypi.org/project/useintest/", "platform": "", "project_url": "https://pypi.org/project/useintest/", "project_urls": { "Homepage": "https://github.com/wtsi-hgi/useintest" }, "release_url": "https://pypi.org/project/useintest/5.0.0/", "requires_dist": null, "requires_python": "", "summary": "I don't care how it's done, I just want to use it in my tests!", "version": "5.0.0" }, "last_serial": 3545979, "releases": { "3.2.0": [ { "comment_text": "", "digests": { "md5": "dcc9cba856bdff983f7ed9e13e5ecee2", "sha256": "753f5abddf149e5f14915f38cb481baaaa197ac4d6643b9dc7c1f4c0751dea54" }, "downloads": -1, "filename": "useintest-3.2.0.tar.gz", "has_sig": false, "md5_digest": "dcc9cba856bdff983f7ed9e13e5ecee2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32011, "upload_time": "2017-11-20T14:38:56", "url": "https://files.pythonhosted.org/packages/b4/03/e5f704a44c19b5c0fb820b99b2aba68585be857ce986eb89711b59796123/useintest-3.2.0.tar.gz" } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "9630b93462a0146c2d4b097d68a5432e", "sha256": "0685eeefa04493d1b7d34667a45db7be6bc317ada6bc568581fc16bb6eac4bb5" }, "downloads": -1, "filename": "useintest-4.0.0.tar.gz", "has_sig": false, "md5_digest": "9630b93462a0146c2d4b097d68a5432e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32923, "upload_time": "2017-11-22T16:34:21", "url": "https://files.pythonhosted.org/packages/0a/3b/cc0805db14ca330238bda8f0f1883d23483e49df9963f31425e90187957d/useintest-4.0.0.tar.gz" } ], "4.0.1": [ { "comment_text": "", "digests": { "md5": "5cad91308be3429113ee3348bfa1a9bd", "sha256": "707ac5770996f6d4536215c2d6dcc30d5d44a8b77153d04a40df130dd71af580" }, "downloads": -1, "filename": "useintest-4.0.1.tar.gz", "has_sig": false, "md5_digest": "5cad91308be3429113ee3348bfa1a9bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33252, "upload_time": "2017-12-05T16:49:48", "url": "https://files.pythonhosted.org/packages/d7/9e/06b311f2217aa627f494db1a0bbcab161235c92ddbdcf84793e1de911c46/useintest-4.0.1.tar.gz" } ], "4.1.0": [ { "comment_text": "", "digests": { "md5": "769065c2382614571d38f209d99b3917", "sha256": "9e44e326a56b647ea887dd83adeb252dd68952e877513691f247e0145e461e28" }, "downloads": -1, "filename": "useintest-4.1.0.tar.gz", "has_sig": false, "md5_digest": "769065c2382614571d38f209d99b3917", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33684, "upload_time": "2018-01-19T09:26:33", "url": "https://files.pythonhosted.org/packages/11/1e/64cbb06680f2a1c23536f6c7022263de15e7d1073a39425f945748d4b5c9/useintest-4.1.0.tar.gz" } ], "5.0.0": [ { "comment_text": "", "digests": { "md5": "e7b7eb556591aba23a5f40840e898c65", "sha256": "8b67a565ac2a89014b188f56b45191574101bf49c4b4e9cc16f49cef0e66fbe5" }, "downloads": -1, "filename": "useintest-5.0.0.tar.gz", "has_sig": false, "md5_digest": "e7b7eb556591aba23a5f40840e898c65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33855, "upload_time": "2018-02-02T15:43:52", "url": "https://files.pythonhosted.org/packages/44/ab/ad38d2d1b842f58b623577f965b82eb98dfd759819bb8fd936cf4cdd8481/useintest-5.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e7b7eb556591aba23a5f40840e898c65", "sha256": "8b67a565ac2a89014b188f56b45191574101bf49c4b4e9cc16f49cef0e66fbe5" }, "downloads": -1, "filename": "useintest-5.0.0.tar.gz", "has_sig": false, "md5_digest": "e7b7eb556591aba23a5f40840e898c65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33855, "upload_time": "2018-02-02T15:43:52", "url": "https://files.pythonhosted.org/packages/44/ab/ad38d2d1b842f58b623577f965b82eb98dfd759819bb8fd936cf4cdd8481/useintest-5.0.0.tar.gz" } ] }