{ "info": { "author": "Zibi Rzepka", "author_email": "zibi.rzepka@revolut.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# ShreQT\n\n[![Build Status](https://travis-ci.org/karamazi/shreqt.svg?branch=master)](https://travis-ci.org/karamazi/shreqt)\n[![PyPi Version](https://img.shields.io/pypi/v/shreqt.svg?style=flat)](https://pypi.org/project/shreqt/)\n\n\n```\n\u2880\u2874\u2811\u2844\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u28c0\u28c0\u28e4\u28e4\u28e4\u28c0\u2840\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\n\u2838\u2847\u2800\u283f\u2840\u2800\u2800\u2800\u28c0\u2874\u28bf\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28f7\u28e6\u2840\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\n\u2800\u2800\u2800\u2800\u2811\u2884\u28e0\u283e\u2801\u28c0\u28c4\u2848\u2819\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28c6\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\n\u2800\u2800\u2800\u2800\u2880\u2840\u2801\u2800\u2800\u2808\u2819\u281b\u2802\u2808\u28ff\u28ff\u28ff\u28ff\u28ff\u283f\u287f\u28bf\u28c6\u2800\u2800\u2800\u2800\u2800\u2800\u2800\n\u2800\u2800\u2800\u2880\u287e\u28c1\u28c0\u2800\u2834\u2802\u2819\u28d7\u2840\u2800\u28bb\u28ff\u28ff\u282d\u28a4\u28f4\u28e6\u28e4\u28f9\u2800\u2800\u2800\u2880\u28b4\u28f6\u28c6\n\u2800\u2800\u2880\u28fe\u28ff\u28ff\u28ff\u28f7\u28ee\u28fd\u28fe\u28ff\u28e5\u28f4\u28ff\u28ff\u287f\u2882\u2814\u289a\u287f\u28bf\u28ff\u28e6\u28f4\u28fe\u2801\u2838\u28fc\u287f\n\u2800\u2880\u285e\u2801\u2819\u283b\u283f\u281f\u2809\u2800\u281b\u28b9\u28ff\u28ff\u28ff\u28ff\u28ff\u28cc\u28a4\u28fc\u28ff\u28fe\u28ff\u285f\u2809\u2800\u2800\u2800\u2800\u2800\n\u2800\u28fe\u28f7\u28f6\u2807\u2800\u2800\u28e4\u28c4\u28c0\u2840\u2808\u283b\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u2847\u2800\u2800\u2800\u2800\u2800\u2800 Tests have layers\n\u2800\u2809\u2808\u2809\u2800\u2800\u28a6\u2848\u28bb\u28ff\u28ff\u28ff\u28f6\u28f6\u28f6\u28f6\u28e4\u28fd\u2879\u28ff\u28ff\u28ff\u28ff\u2847\u2800\u2800\u2800\u2800\u2800\u2800 Ogres have layers\n\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2809\u2832\u28fd\u287b\u28bf\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28f7\u28dc\u28ff\u28ff\u28ff\u2847\u2800\u2800\u2800\u2800\u2800\u2800 ~ Anonymous\n\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u28b8\u28ff\u28ff\u28f7\u28f6\u28ee\u28ed\u28fd\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u2800\u2800\u2800\u2800\u2800\u2800\u2800\n\u2800\u2800\u2800\u2800\u2800\u2800\u28c0\u28c0\u28c8\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u2807\u2800\u2800\u2800\u2800\u2800\u2800\u2800\n\u2800\u2800\u2800\u2800\u2800\u2800\u28bf\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u2803\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\n\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2839\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u28ff\u287f\u281f\u2801\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\n\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2800\u2809\u281b\u283b\u283f\u283f\u283f\u283f\u281b\u2809\n```\n\n# Overview\n\nQuery testing framework.\n\nCurrently supports only Exasol DB.\n\nThis project uses [Poetry](https://github.com/sdispater/poetry) for dependency management and packaging.\n\n# Development\n\nTo setup your virtual environment run the following command. The default location for poetry venvs is `~/Library/Caches/pypoetry/virtualenvs`\n\n```bash\npoetry install\n```\n\nTo run tests and lint checks:\n\n```bash\nmake checks\n```\n\nTo format on all files:\n\n```bash\nmake fmt\n```\n\n# Usage\n\n### Prequisite\n\nCurrently we only support Exasol connections.\nTo run local instance of Exasol as docker container run:\n\n```bash\ndocker run -p 8999:8888 --detach --privileged --stop-timeout 120 exasol/docker-db:6.0.13-d1\n```\n\n_(MacOS)_ Keep in mind that Exasol is memory-heavy and you need to increase docker memory limit to at least `4GB`\n\n### Credentials\n\nShreQT uses following environment variables to connect to database.\n\n| Variable | Default Value |\n| ----------- | -------------- |\n| SHREQT_DSN | localhost:8999 |\n| SHREQT_USER | sys |\n| SHREQT_PASS | exasol |\n\n## Example\n\nThe `example` directory contains simple example which illustrates the example usage.\n\n- `conftest.py` includes simple User schema and code which sets up the database for test session.\n- `example.py` includes a tested function.\n- `example_test.py` include example test function.\n\nYou can run the example with:\n\n```bash\nmake run-example\n```\n\n# Build && Deploy\n\nSetup `~/.pypirc` with credentials.\n\nRun checks and build package:\n\n```bash\nmake build\n```\n\nDeploy package to pypi using poetry:\n\n```bash\nmake deploy\n```\n\n### TODO\n\n- Automate deployment step with travis\n- Decorator functionality for temporary layer\n- Option to automatically clean layers up once dbonion is destroyed.\n- When exception is raised during layer insertion, whole layer should be rolled back before failure.\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "testing,query,exasol", "license": "", "maintainer": "Zibi Rzepka", "maintainer_email": "zibi.rzepka@revolut.com", "name": "shreqt", "package_url": "https://pypi.org/project/shreqt/", "platform": "", "project_url": "https://pypi.org/project/shreqt/", "project_urls": null, "release_url": "https://pypi.org/project/shreqt/0.5.0/", "requires_dist": [ "sqlalchemy (>=1.3,<2.0)", "sqlalchemy-exasol (>=2.0,<3.0)", "pyexasol (>=0.6.4,<0.7.0)", "sqlparse (>=0.3.0,<0.4.0)" ], "requires_python": ">=3.6,<4.0", "summary": "Query Testing framework", "version": "0.5.0" }, "last_serial": 5837131, "releases": { "0.2.2": [ { "comment_text": "", "digests": { "md5": "383423197068a01d4ce51c3c69e6f4e8", "sha256": "ac1119334ac5313bc4d5f98aa6bec22fb8744cb339e72e8ae88690fce3b70509" }, "downloads": -1, "filename": "shreqt-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "383423197068a01d4ce51c3c69e6f4e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 5125, "upload_time": "2019-09-05T10:04:41", "url": "https://files.pythonhosted.org/packages/7d/9b/33436ff7fe80ac1fe0179a337420757c823212e63483fe357d521b84cead/shreqt-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a790bc117c2d43f55efcd7b4d5c091b4", "sha256": "0292e12dd6801daded208a8509421c5bbc3a01e7a2dc3a3ea5b6f3382f3e7a34" }, "downloads": -1, "filename": "shreqt-0.2.2.tar.gz", "has_sig": false, "md5_digest": "a790bc117c2d43f55efcd7b4d5c091b4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 3713, "upload_time": "2019-09-05T10:04:43", "url": "https://files.pythonhosted.org/packages/ff/23/4be14c70a6d5cea8d7c507ce670973e1588d2dcf6bdb001d843fb7135743/shreqt-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "4d3d2c9872e2c54233da91bd62b8b914", "sha256": "f6434ea256d93d2c78faa4900848f3c43fa295f537ac208393681c5277740b27" }, "downloads": -1, "filename": "shreqt-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "4d3d2c9872e2c54233da91bd62b8b914", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 5126, "upload_time": "2019-09-05T10:21:20", "url": "https://files.pythonhosted.org/packages/6e/ed/d8bac3236545b4bf2f37bb12d65947e329ac0077dd165d41e7916174c692/shreqt-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c071536df87cb89f49c672da9be41515", "sha256": "89e12add512653c082acc71359fc21e943da171b39c15e32cc0cd7384d59a862" }, "downloads": -1, "filename": "shreqt-0.2.3.tar.gz", "has_sig": false, "md5_digest": "c071536df87cb89f49c672da9be41515", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 3716, "upload_time": "2019-09-05T10:21:22", "url": "https://files.pythonhosted.org/packages/11/fe/60c5bcbc67c717702afdeb5f5dfa08b3755d227ab527ba8eeb95096f9772/shreqt-0.2.3.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "3bcdaec2ef11bbfc63a9f9de00c78ee6", "sha256": "d46d50c238afd882c10767286452a40716975586d057ddae2c359708dabe5a95" }, "downloads": -1, "filename": "shreqt-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3bcdaec2ef11bbfc63a9f9de00c78ee6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 6402, "upload_time": "2019-09-09T10:18:34", "url": "https://files.pythonhosted.org/packages/bb/f4/170611f948b2f586d84286e3233c3d3bc42d2f3b24a8b84d33eae1cd2d96/shreqt-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d48d35d1d91947bafd3ad654e4186ecb", "sha256": "8fe9b89de87fa76a6d006143fffeb019f2c6700b47362ad70aec56198583f66c" }, "downloads": -1, "filename": "shreqt-0.3.0.tar.gz", "has_sig": false, "md5_digest": "d48d35d1d91947bafd3ad654e4186ecb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 5739, "upload_time": "2019-09-09T10:18:36", "url": "https://files.pythonhosted.org/packages/bd/ed/79ec768a768c28a5c47dc07210b025e1f34f3894563191c1a294720fbddf/shreqt-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "8e4774810908b02c5bffa0b002cec2b8", "sha256": "27e4b4fbe589bc7e0c4c9ed23d5f290af0bea20f0e06b67e8f62f302c3b54b07" }, "downloads": -1, "filename": "shreqt-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8e4774810908b02c5bffa0b002cec2b8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 6600, "upload_time": "2019-09-12T10:41:44", "url": "https://files.pythonhosted.org/packages/05/da/d601338895506af167d0d8a66d707bc450d58941f544a62c98e9de531721/shreqt-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e69b970cb8bc1de9e3fd2d9fa66b9e6e", "sha256": "70bc3497a2630f69cb122203ff10c05a2b6d7b6ae1430a8480da6e6b9efc985e" }, "downloads": -1, "filename": "shreqt-0.4.0.tar.gz", "has_sig": false, "md5_digest": "e69b970cb8bc1de9e3fd2d9fa66b9e6e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 5958, "upload_time": "2019-09-12T10:41:45", "url": "https://files.pythonhosted.org/packages/a4/bf/49c48b04b2c0ebdd96f10437727b7bdbaff8145be7cc66ec8df104f9681c/shreqt-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "0aec4cdf0083879caf4e20c662747287", "sha256": "6f7045cefc5a7c93f16483a77950ba4654af6c6ddd3acedcab3f36af068edd06" }, "downloads": -1, "filename": "shreqt-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0aec4cdf0083879caf4e20c662747287", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 6736, "upload_time": "2019-09-16T16:09:51", "url": "https://files.pythonhosted.org/packages/a4/ad/6d601d29d4f3dc595d02420280dc15c7227c78a670c0c02f221ad0362ae1/shreqt-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de339b083444296834c716d0d29e8086", "sha256": "ef7d448359b8f853edce0d4483659035f1eee8f1878027fc0444bfff9fa04c7a" }, "downloads": -1, "filename": "shreqt-0.5.0.tar.gz", "has_sig": false, "md5_digest": "de339b083444296834c716d0d29e8086", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 6072, "upload_time": "2019-09-16T16:09:53", "url": "https://files.pythonhosted.org/packages/29/26/bc7e9699aa4a368b7b61682154ade9957ed65838c7c791c2f2f7a1a55e03/shreqt-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0aec4cdf0083879caf4e20c662747287", "sha256": "6f7045cefc5a7c93f16483a77950ba4654af6c6ddd3acedcab3f36af068edd06" }, "downloads": -1, "filename": "shreqt-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0aec4cdf0083879caf4e20c662747287", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 6736, "upload_time": "2019-09-16T16:09:51", "url": "https://files.pythonhosted.org/packages/a4/ad/6d601d29d4f3dc595d02420280dc15c7227c78a670c0c02f221ad0362ae1/shreqt-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de339b083444296834c716d0d29e8086", "sha256": "ef7d448359b8f853edce0d4483659035f1eee8f1878027fc0444bfff9fa04c7a" }, "downloads": -1, "filename": "shreqt-0.5.0.tar.gz", "has_sig": false, "md5_digest": "de339b083444296834c716d0d29e8086", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 6072, "upload_time": "2019-09-16T16:09:53", "url": "https://files.pythonhosted.org/packages/29/26/bc7e9699aa4a368b7b61682154ade9957ed65838c7c791c2f2f7a1a55e03/shreqt-0.5.0.tar.gz" } ] }