{ "info": { "author": "Iliyan Slavov", "author_email": "slavov.iliyan96@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Software Development :: Testing" ], "description": "pyhttptest: HTTP tests over RESTful APIs\u2728\n##########################################\n\n.. image:: https://travis-ci.org/slaily/pyhttptest.svg?branch=master\n :target: https://travis-ci.org/slaily/pyhttptest\n\nPissed about writing test scripts against your RESTFul APIs anytime?\n\nDescribe an HTTP Requests test cases in a simplest and widely used format JSON within a file.\n\nRun one command and gain a summary report.\n\n\ud83d\udce3\n\n\ud83d\udce3 **Coverage measuring on Test Cases coming soon**\n\n\ud83d\udce3\n\n.. image:: https://www.dropbox.com/s/cd0g07dop4j1riq/pyhttptest-cli-table-of-results.png?raw=1\n :alt: pyhttptest in the command line\n :width: 100%\n :align: center\n\n\nInstallation\n******************************************\n\nRecommended installation method is to use ``pip``:\n\n.. code-block:: bash\n\n $ pip install pyhttptest\n\nPython version **3+** is required.\n\n\nUsage\n******************************************\n\n.. code-block:: bash\n\n $ pyhttptest execute FILE\n\nSee also ``pyhttptest --help``.\n\n\nExamples\n******************************************\n\nSingle test case\n------------------------------------------\n\nCreate a .json file and define a test case like an example:\n\n``FILE: HTTP_GET.json``\n\n.. code-block:: json\n\n {\n \"name\": \"TEST: List all users\",\n \"verb\": \"GET\",\n \"endpoint\": \"users\",\n \"host\": \"https://github.com\",\n \"headers\": {\n \"Accept-Language\": \"en-US\"\n },\n \"query_string\": {\n \"limit\": 5\n }\n }\n\nExecute a test case:\n\n.. code-block:: bash\n\n $ pyhttptest execute FILE_PATH/HTTP_GET.json\n\nResult:\n\n.. image:: https://www.dropbox.com/s/0h56p3c4jm4sriy/pyhttptest-cli.png?raw=1\n :alt: pyhttptest in the command line\n :width: 100%\n :align: center\n\n\u041cultiple test cases\n------------------------------------------\n\nCreate a .json file and define a test cases like an example:\n\n``FILE: requests.json``\n\n.. code-block:: json\n\n [\n {\n \"name\":\"TEST: List all users\",\n \"verb\":\"GET\",\n \"endpoint\":\"api/v1/users\",\n \"host\":\"http://localhost:8085/\",\n \"headers\":{\n \"Accept-Language\":\"en-US\"\n },\n \"query_string\":{\n \"limit\":1\n }\n },\n {\n \"name\":\"TEST: Add a new user\",\n \"verb\":\"POST\",\n \"endpoint\":\"api/v1/users\",\n \"host\":\"http://localhost:8085/\",\n \"payload\":{\n \"username\":\"pyhttptest\",\n \"email\":\"admin@pyhttptest.com\"\n }\n },\n {\n \"name\":\"TEST: Modify an existing user\",\n \"verb\":\"PUT\",\n \"endpoint\":\"api/v1/users/XeEsscGqweEttXsgY\",\n \"host\":\"http://localhost:8085/\",\n \"payload\":{\n \"username\":\"pyhttptest\"\n }\n },\n {\n \"name\":\"TEST: Delete an existing user\",\n \"verb\":\"DELETE\",\n \"endpoint\":\"api/v1/users/XeEsscGqweEttXsgY\",\n \"host\":\"http://localhost:8085/\"\n }\n ]\n\nExecute a test case:\n\n.. code-block:: bash\n\n $ pyhttptest execute FILE_PATH/requests.json\n\nResult:\n\n.. image:: https://www.dropbox.com/s/cd0g07dop4j1riq/pyhttptest-cli-table-of-results.png?raw=1\n :alt: pyhttptest in the command line\n :width: 100%\n :align: center\n\nDependencies\n******************************************\n\nUnder the hood, pyhttptest uses these amazing libraries:\n\n* `ijson `_\n \u2014 Iterative JSON parser with a standard Python iterator interface\n* `jsonschema `_\n \u2014 An implementation of JSON Schema validation for Python\n* `Requests `_\n \u2014 Python HTTP library for humans\n* `tabulate `_\n \u2014 Pretty-print tabular data\n* `click `_\n \u2014 Composable command line interface toolkit\n\n\nContributing\n******************************************\n\nSee `CONTRIBUTING `_.\n\n\nChangelog\n******************************************\n\nSee `CHANGELOG `_.\n\n\nLicence\n******************************************\n\nBSD-3-Clause: `LICENSE `_.\n\n\nAuthors\n******************************************\n\n`Iliyan Slavov`_\n\n.. _Iliyan Slavov: https://www.linkedin.com/in/iliyan-slavov-03478a157/\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/slaily/pyhttptest", "keywords": "HTTP test RESTFul API JSON", "license": "BSD 3-Clause License", "maintainer": "", "maintainer_email": "", "name": "pyhttptest", "package_url": "https://pypi.org/project/pyhttptest/", "platform": "", "project_url": "https://pypi.org/project/pyhttptest/", "project_urls": { "Homepage": "https://github.com/slaily/pyhttptest", "Issues": "https://github.com/slaily/pyhttptest/issues" }, "release_url": "https://pypi.org/project/pyhttptest/0.7/", "requires_dist": [ "click (==7.0)", "ijson (==3.0.3)", "jsonschema (==3.1.1)", "requests (==2.22.0)", "tabulate (==0.8.5)" ], "requires_python": ">=3", "summary": "A command-line tool for HTTP tests over RESTful APIs", "version": "0.7", "yanked": false, "yanked_reason": null }, "last_serial": 8392470, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "8b445ecb71757dc056467e5d74f5e003", "sha256": "048e7be7a2ce8cd8f4b2307a3c9e533120e9c7bf918149c49a681ef674178e86" }, "downloads": -1, "filename": "pyhttptest-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "8b445ecb71757dc056467e5d74f5e003", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 14461, "upload_time": "2019-11-19T07:38:37", "upload_time_iso_8601": "2019-11-19T07:38:37.955152Z", "url": "https://files.pythonhosted.org/packages/9f/ab/ee1a564c21bf2bcac4b38b45a30cf0b0f7680f462cb895424c0e9fb23474/pyhttptest-0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6c66a154402908eb447a327e8a6c3dcc", "sha256": "9db9455861179a49d81ce49c3eb5076ddc3d3fa97005a0fa55b454081a006b4c" }, "downloads": -1, "filename": "pyhttptest-0.1.tar.gz", "has_sig": false, "md5_digest": "6c66a154402908eb447a327e8a6c3dcc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 10157, "upload_time": "2019-11-19T07:38:42", "upload_time_iso_8601": "2019-11-19T07:38:42.206323Z", "url": "https://files.pythonhosted.org/packages/19/ce/7fef4cf6e6476a0416525b7e425448e81fc6c2814c2d6971269aecc0c7e2/pyhttptest-0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1a0": [ { "comment_text": "", "digests": { "md5": "6aab3959c7ba043b9ef01461bc0568b1", "sha256": "853b49c27bdf8d7d647d6ef791d66b2f5c73248fcbd49d71c9a7619e33f69c44" }, "downloads": -1, "filename": "pyhttptest-0.1a0-py3-none-any.whl", "has_sig": false, "md5_digest": "6aab3959c7ba043b9ef01461bc0568b1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 12487, "upload_time": "2019-10-22T10:54:45", "upload_time_iso_8601": "2019-10-22T10:54:45.150792Z", "url": "https://files.pythonhosted.org/packages/17/5e/620fa7b393a63ef7bab7a6834f321ade8709e0b8f02469c3932cdf814fae/pyhttptest-0.1a0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b6493e0de005c6a9bbb1eb61466b22f7", "sha256": "6469b3835263663c066ea7d3b42dab1977337d5d44a4da25229068cd2cb33211" }, "downloads": -1, "filename": "pyhttptest-0.1a0.tar.gz", "has_sig": false, "md5_digest": "b6493e0de005c6a9bbb1eb61466b22f7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 9357, "upload_time": "2019-10-22T10:54:52", "upload_time_iso_8601": "2019-10-22T10:54:52.926957Z", "url": "https://files.pythonhosted.org/packages/96/89/1f2f38ac988b73e86ac1a13e2a2044c832e76adbf520acdae2cc02adc2af/pyhttptest-0.1a0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1b0": [ { "comment_text": "", "digests": { "md5": "dfea23744367b5e6d3da9e5c2969bf42", "sha256": "2090a14686e0e69fd8edbaaace0855450d2729cbdceb5c35addf0654b23fb4e5" }, "downloads": -1, "filename": "pyhttptest-0.1b0-py3-none-any.whl", "has_sig": false, "md5_digest": "dfea23744367b5e6d3da9e5c2969bf42", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 13480, "upload_time": "2019-10-28T12:11:11", "upload_time_iso_8601": "2019-10-28T12:11:11.606819Z", "url": "https://files.pythonhosted.org/packages/24/9d/50a3b7d2d8ed8359f8c2198b2f9e543322371f779d8d838992da2b8f9713/pyhttptest-0.1b0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "bd718d99233386d0d5722eab13f867e3", "sha256": "21e00ad5456048995932790809712cc4541fa370cb4ef4a365ce36b60d2cf377" }, "downloads": -1, "filename": "pyhttptest-0.1b0.tar.gz", "has_sig": false, "md5_digest": "bd718d99233386d0d5722eab13f867e3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 9893, "upload_time": "2019-10-28T12:11:14", "upload_time_iso_8601": "2019-10-28T12:11:14.676152Z", "url": "https://files.pythonhosted.org/packages/d2/04/422d9583d98b39f1fcab84679cc643badc17cda780831387a5ad19eaecbc/pyhttptest-0.1b0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2": [ { "comment_text": "", "digests": { "md5": "51c1c4c7ea60bb4520f1cbfb5043aa85", "sha256": "7a5572b219e4ebf73e0bb2babb1fa14ac1797c8d65230833383d520fa245f8ea" }, "downloads": -1, "filename": "pyhttptest-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "51c1c4c7ea60bb4520f1cbfb5043aa85", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 15517, "upload_time": "2019-12-10T19:03:22", "upload_time_iso_8601": "2019-12-10T19:03:22.698784Z", "url": "https://files.pythonhosted.org/packages/66/33/c8a7a023ad97e099f366414aaa3df1a02fdfa7c38fdbc5c9b939512bf2a8/pyhttptest-0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0b920bdc663c2c6aa2ca476983ee3bd1", "sha256": "0f53d5efe73aaeb2e20dd84aa064093bce0a84054dd20a8e008fd2d659e7faaa" }, "downloads": -1, "filename": "pyhttptest-0.2.tar.gz", "has_sig": false, "md5_digest": "0b920bdc663c2c6aa2ca476983ee3bd1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 11316, "upload_time": "2019-12-10T19:03:27", "upload_time_iso_8601": "2019-12-10T19:03:27.938345Z", "url": "https://files.pythonhosted.org/packages/ba/9e/d8c1abf4285a2482bc985c97f6ee6597d4205594c37bb1064561e79d094b/pyhttptest-0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3": [ { "comment_text": "", "digests": { "md5": "a620b9e5cb6a387fc441bffa39a182fa", "sha256": "dc17f0e7fa633e32053b1dd748da46996d975988e3a8c1d6176bb74864b2834b" }, "downloads": -1, "filename": "pyhttptest-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a620b9e5cb6a387fc441bffa39a182fa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 15518, "upload_time": "2019-12-24T14:21:24", "upload_time_iso_8601": "2019-12-24T14:21:24.268628Z", "url": "https://files.pythonhosted.org/packages/ba/10/e4afb66e0ac146211287e287bdc2c530187d99df27ce97194031ab8f1870/pyhttptest-0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "05a62b551472e95e57742d5248c91758", "sha256": "27d1dd6f2cc1b1b4553f88803e2316b1a76ba30a89adcf8e46ab425447b7a0d6" }, "downloads": -1, "filename": "pyhttptest-0.3.tar.gz", "has_sig": false, "md5_digest": "05a62b551472e95e57742d5248c91758", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 11217, "upload_time": "2019-12-24T14:21:26", "upload_time_iso_8601": "2019-12-24T14:21:26.450771Z", "url": "https://files.pythonhosted.org/packages/fe/26/a6770ac1b7521009542a015acecf2c581ee8e4c9a3cdd4f709970954e992/pyhttptest-0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4": [ { "comment_text": "", "digests": { "md5": "b2595e2efc27e81d1946832aa4327e21", "sha256": "b44fa13de50e3c95cb5d455c741061fb19e35d6d338930d844b98cf13afbeedb" }, "downloads": -1, "filename": "pyhttptest-0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b2595e2efc27e81d1946832aa4327e21", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 15635, "upload_time": "2020-01-23T18:52:59", "upload_time_iso_8601": "2020-01-23T18:52:59.891730Z", "url": "https://files.pythonhosted.org/packages/94/34/41123da82bea2e818856193affaa199486fe334323c9d2b0a1ebd18c3904/pyhttptest-0.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f844655fc544f8c256304c42212fbbe4", "sha256": "de3ab2d3421a1487724bfa5930c4256ad10cd4fd4548c928a2c6a28a372e9c88" }, "downloads": -1, "filename": "pyhttptest-0.4.tar.gz", "has_sig": false, "md5_digest": "f844655fc544f8c256304c42212fbbe4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 11327, "upload_time": "2020-01-23T18:53:02", "upload_time_iso_8601": "2020-01-23T18:53:02.734785Z", "url": "https://files.pythonhosted.org/packages/0c/0c/3ef3743b6b00e34c12f1aa69cd738f00394cc312da51e7dbc357befc2d62/pyhttptest-0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5": [ { "comment_text": "", "digests": { "md5": "e536b80758539e0e49b042c97b1aaffc", "sha256": "c0c2080c37862ddceb27c0fad752e803cbbdac0e89f1ddad4aad6780700fdefd" }, "downloads": -1, "filename": "pyhttptest-0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "e536b80758539e0e49b042c97b1aaffc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 15603, "upload_time": "2020-03-19T19:21:19", "upload_time_iso_8601": "2020-03-19T19:21:19.868205Z", "url": "https://files.pythonhosted.org/packages/ad/03/6adc150a001d534a485786c8a3eb6ea600f710793a2b704067b00e26cdfd/pyhttptest-0.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4ecb07e38ce6d8f30b6c295366129c86", "sha256": "52090752447d5569ea303ee0d74095e7c92c81329a89273f6d42622553f8d010" }, "downloads": -1, "filename": "pyhttptest-0.5.tar.gz", "has_sig": false, "md5_digest": "4ecb07e38ce6d8f30b6c295366129c86", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 11390, "upload_time": "2020-03-19T19:21:21", "upload_time_iso_8601": "2020-03-19T19:21:21.387384Z", "url": "https://files.pythonhosted.org/packages/14/53/b03bf7a36a804431e53800292bbfab673c4aa7cc7d848e7c659b961a65dc/pyhttptest-0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6": [ { "comment_text": "", "digests": { "md5": "ccfee4a98df34dd8499bf5d78bcfbfa1", "sha256": "7b5cf8704afd96063f51d043faea7f9cee975f722923ff56f01967abccbe67e2" }, "downloads": -1, "filename": "pyhttptest-0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "ccfee4a98df34dd8499bf5d78bcfbfa1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 15747, "upload_time": "2020-10-12T08:03:22", "upload_time_iso_8601": "2020-10-12T08:03:22.415503Z", "url": "https://files.pythonhosted.org/packages/76/22/500a7c9bbb86d56affc90a9a54ff094a53de4907b33f98d135e86a1f71c6/pyhttptest-0.6-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.7": [ { "comment_text": "", "digests": { "md5": "34e2c226e0637cdc247a7d940390ffdf", "sha256": "f32edcdd721cd70ca3fb499caf74e47241693f872d22b9bcfaaf7470522ac1e0" }, "downloads": -1, "filename": "pyhttptest-0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "34e2c226e0637cdc247a7d940390ffdf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 15746, "upload_time": "2020-10-12T09:30:00", "upload_time_iso_8601": "2020-10-12T09:30:00.199102Z", "url": "https://files.pythonhosted.org/packages/94/55/6ff5d9caf27eb2a4a7d3924c0140fc85829c7c65e439719e07abb60dfc56/pyhttptest-0.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "adbf16445c89063f71369247dbb1ea87", "sha256": "ae8620241d872cffd4c99c7ce4bfea65c1ad529eb3addf591b696c082fa997d5" }, "downloads": -1, "filename": "pyhttptest-0.7.tar.gz", "has_sig": false, "md5_digest": "adbf16445c89063f71369247dbb1ea87", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 11577, "upload_time": "2020-10-12T09:30:01", "upload_time_iso_8601": "2020-10-12T09:30:01.795596Z", "url": "https://files.pythonhosted.org/packages/2a/55/c0bdc4e1dd20c76834ea21c00b4a1503e03f02e5b55a1f5b4041a9085c2e/pyhttptest-0.7.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "34e2c226e0637cdc247a7d940390ffdf", "sha256": "f32edcdd721cd70ca3fb499caf74e47241693f872d22b9bcfaaf7470522ac1e0" }, "downloads": -1, "filename": "pyhttptest-0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "34e2c226e0637cdc247a7d940390ffdf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 15746, "upload_time": "2020-10-12T09:30:00", "upload_time_iso_8601": "2020-10-12T09:30:00.199102Z", "url": "https://files.pythonhosted.org/packages/94/55/6ff5d9caf27eb2a4a7d3924c0140fc85829c7c65e439719e07abb60dfc56/pyhttptest-0.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "adbf16445c89063f71369247dbb1ea87", "sha256": "ae8620241d872cffd4c99c7ce4bfea65c1ad529eb3addf591b696c082fa997d5" }, "downloads": -1, "filename": "pyhttptest-0.7.tar.gz", "has_sig": false, "md5_digest": "adbf16445c89063f71369247dbb1ea87", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 11577, "upload_time": "2020-10-12T09:30:01", "upload_time_iso_8601": "2020-10-12T09:30:01.795596Z", "url": "https://files.pythonhosted.org/packages/2a/55/c0bdc4e1dd20c76834ea21c00b4a1503e03f02e5b55a1f5b4041a9085c2e/pyhttptest-0.7.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }