{ "info": { "author": "Vahid Mardani", "author_email": "vahid.mardani@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Topic :: Software Development" ], "description": "# bddcli\nTest any command line interface in BDD manner.\n\n[![PyPI](http://img.shields.io/pypi/v/bddcli.svg)](https://pypi.python.org/pypi/bddcli)\n[![Build Status](https://travis-ci.org/pylover/bddcli.svg?branch=master)](https://travis-ci.org/pylover/bddcli)\n[![Coverage Status](https://coveralls.io/repos/github/pylover/bddcli/badge.svg?branch=master)](https://coveralls.io/github/pylover/bddcli?branch=master)\n\n### About\n\nA framework to easily test your command line interface in another(isolated) \nprocess and gather stdout, stderr and returnStatus of the process.\n\n## Installation\n\nOnly `Python >= 3.6` is supported.\n\n```bash\npip install bddcli\n```\n\n## Quickstart\n\n### Arguments\n\n```python\nimport sys\n\nfrom bddcli import Given, when, stdout, status, stderr, Application, given\n\n\ndef foo():\n print(' '.join(sys.argv))\n return 0\n\n\napp = Application('foo', 'mymodule:foo')\n\n\nwith Given(app, 'Pass single positional argument', 'bar'):\n assert status == 0\n assert stdout == 'foo bar\\n'\n\n when('Without any argument', given - 'bar')\n assert stdout == 'foo\\n'\n\n when('Pass multiple arguments', 'bar baz')\n assert stdout == 'foo bar baz\\n'\n\n when('Pass multiple arguments, another method', ['bar', 'baz'])\n assert stdout == 'foo bar baz\\n'\n\n when('Add an argument', given + 'baz')\n assert stdout == 'foo bar baz\\n'\n\n```\n\n\n### Standard input\n\n```python\nwith Given(app, 'Pass stdin', stdin='foo'):\n assert ...\n\n when('stdin is empty', stdin='')\n assert ...\n\n```\n\n\n### Standard output and error\n\n```python\nfrom bddcli import stderr, stdout\n\nassert stderr == ... \nassert stdout == ... \n```\n\n### Environment variables\n\n```python\nimport os\n\nfrom bddcli import Given, stdout, Application, when, given\n\n\ndef foo():\n e = os.environ.copy()\n del e['PWD']\n print(' '.join(f'{k}: {v}' for k, v in e.items()))\n\n\napp = Application('foo', 'mymodule:foo')\nwith Given(app, 'Environment variables', environ={'bar': 'baz'}):\n assert stdout == 'bar: baz\\n'\n\n when('Without any variable', environ=given - 'bar')\n assert stdout == '\\n'\n\n when('Add another variables', environ=given + {'qux': 'quux'})\n assert stdout == 'bar: baz qux: quux\\n'\n```\n\n\nSee tests for more examples.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/pylover/bddcli", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "bddcli", "package_url": "https://pypi.org/project/bddcli/", "platform": "", "project_url": "https://pypi.org/project/bddcli/", "project_urls": { "Homepage": "http://github.com/pylover/bddcli" }, "release_url": "https://pypi.org/project/bddcli/2.4.2/", "requires_dist": null, "requires_python": "", "summary": "Test any command line interface in BDD manner.", "version": "2.4.2" }, "last_serial": 5576281, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "1b0ab969d802d0b1ab347d0fd87ae66e", "sha256": "2d092dfc30ea9230856c8b1abc98734811fdf358b5dd74468831a18c14890b9b" }, "downloads": -1, "filename": "bddcli-0.1.0.tar.gz", "has_sig": false, "md5_digest": "1b0ab969d802d0b1ab347d0fd87ae66e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9677, "upload_time": "2019-02-19T20:09:38", "url": "https://files.pythonhosted.org/packages/64/2a/20f954c9d9a6465cceeb6a5da2ae5554fb16a84371cbb08ecda21d7e1cc2/bddcli-0.1.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "bfe1189bd38b6ff6056ec93b43c66473", "sha256": "aaf9419e9988b1bd15f3e4e5cdc10a2a8d4c6349f2d0f3f49c5abb22ad0934bb" }, "downloads": -1, "filename": "bddcli-1.0.0.tar.gz", "has_sig": false, "md5_digest": "bfe1189bd38b6ff6056ec93b43c66473", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7482, "upload_time": "2019-02-25T13:15:11", "url": "https://files.pythonhosted.org/packages/f6/ab/02b1e52f5e43b1477ca52afc8e0fc85fe2ed1033df55fd0ceacd1a21184a/bddcli-1.0.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "a486c2c5886b298bd92eef4351713ce0", "sha256": "25aa92864cab28a25acd4d16d4630a21a25ebd5cb83f972c074391a618999e2d" }, "downloads": -1, "filename": "bddcli-2.0.0.tar.gz", "has_sig": false, "md5_digest": "a486c2c5886b298bd92eef4351713ce0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7399, "upload_time": "2019-03-01T08:25:30", "url": "https://files.pythonhosted.org/packages/a4/73/c215ac3bc04bb68adb1527813462527c7d64237ff12f9e55526aacfb9edf/bddcli-2.0.0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "65725bf9bcd0f49aaebcab1ae8c6c56b", "sha256": "d74e185a09532d209a1e4b542516d9218e2051790d06f8ee2c7005b1eca9faa0" }, "downloads": -1, "filename": "bddcli-2.1.0.tar.gz", "has_sig": false, "md5_digest": "65725bf9bcd0f49aaebcab1ae8c6c56b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7585, "upload_time": "2019-06-03T19:12:39", "url": "https://files.pythonhosted.org/packages/b1/88/33cbbfdfee4a35baa0a4f1daa246eedfacaf3f411476b7cb21649a992123/bddcli-2.1.0.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "e57214ca3ee44e3ed2acdb7c32e83148", "sha256": "3d4cb356f795f974759a8e7de33ca752c72352ccf2fae1850aefbd7f0851bf9b" }, "downloads": -1, "filename": "bddcli-2.2.0.tar.gz", "has_sig": false, "md5_digest": "e57214ca3ee44e3ed2acdb7c32e83148", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7683, "upload_time": "2019-06-03T21:22:19", "url": "https://files.pythonhosted.org/packages/31/6c/390299e7562839c4ef42f81a955df4b8bfe5293bb2e68d5b91672794c290/bddcli-2.2.0.tar.gz" } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "ef73ad36b975674139e85f7f373872df", "sha256": "e7ec18064ef7fce8db2fa658272d38931a91a9b379e6b0b37821efb9c9d026c6" }, "downloads": -1, "filename": "bddcli-2.3.0.tar.gz", "has_sig": false, "md5_digest": "ef73ad36b975674139e85f7f373872df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7749, "upload_time": "2019-06-04T06:53:33", "url": "https://files.pythonhosted.org/packages/05/57/89bb578e823b3b7df12c6172277533c6d9aceb1ab488ae175d6d2841e1dc/bddcli-2.3.0.tar.gz" } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "b61177bdd89fa10af51139be73658a84", "sha256": "2ff58644882f463ca2babbc5cc21ba7ad579fd9999588227f4a4a9aeae3267d1" }, "downloads": -1, "filename": "bddcli-2.3.1.tar.gz", "has_sig": false, "md5_digest": "b61177bdd89fa10af51139be73658a84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7805, "upload_time": "2019-06-04T07:19:58", "url": "https://files.pythonhosted.org/packages/6c/e3/fd6ba47defa7fdd976589440cbc1ef83bfa19814f1d6b33c5d9dcb18103e/bddcli-2.3.1.tar.gz" } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "56b124eb4510952da2743ba9821996d1", "sha256": "56c6e6ddbcd89f403ef73a6aac81858f39271e1301858937ec8c9e9f2d18a20a" }, "downloads": -1, "filename": "bddcli-2.4.0.tar.gz", "has_sig": false, "md5_digest": "56b124eb4510952da2743ba9821996d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8199, "upload_time": "2019-06-05T10:25:54", "url": "https://files.pythonhosted.org/packages/04/c1/71c0412bcbc45a57612331fe4724a3bfbee454e7224623cd094fe68a6a70/bddcli-2.4.0.tar.gz" } ], "2.4.1": [ { "comment_text": "", "digests": { "md5": "4bd417ac5924b99dd533048bb9b605db", "sha256": "d8c317c64897295180f815b432bf7423c4db67ddce82b78ec1989e2536ab6882" }, "downloads": -1, "filename": "bddcli-2.4.1.tar.gz", "has_sig": false, "md5_digest": "4bd417ac5924b99dd533048bb9b605db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8228, "upload_time": "2019-07-20T21:17:28", "url": "https://files.pythonhosted.org/packages/b9/e8/4caf823f6dcc3272829ca02113e852e36f24e9c0fbbd124ae81a4f0edb00/bddcli-2.4.1.tar.gz" } ], "2.4.2": [ { "comment_text": "", "digests": { "md5": "df3fd6fa8fb659e565a4d7967c375fc9", "sha256": "6a8ac73a738c78d5b0138de146d459105502190ffe010aec82ca09877251a9a6" }, "downloads": -1, "filename": "bddcli-2.4.2.tar.gz", "has_sig": false, "md5_digest": "df3fd6fa8fb659e565a4d7967c375fc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8256, "upload_time": "2019-07-24T07:13:50", "url": "https://files.pythonhosted.org/packages/5a/b1/41f83707b1ac4e820252510304653aa8a3c681d2ceba518b87f5bafeec4c/bddcli-2.4.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "df3fd6fa8fb659e565a4d7967c375fc9", "sha256": "6a8ac73a738c78d5b0138de146d459105502190ffe010aec82ca09877251a9a6" }, "downloads": -1, "filename": "bddcli-2.4.2.tar.gz", "has_sig": false, "md5_digest": "df3fd6fa8fb659e565a4d7967c375fc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8256, "upload_time": "2019-07-24T07:13:50", "url": "https://files.pythonhosted.org/packages/5a/b1/41f83707b1ac4e820252510304653aa8a3c681d2ceba518b87f5bafeec4c/bddcli-2.4.2.tar.gz" } ] }