{ "info": { "author": "Clover Health", "author_email": "dev@cloverhealth.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Pytest", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Database", "Topic :: Software Development :: Testing" ], "description": "Clean PostgreSQL Databases for Your Tests\n=========================================\n\nThe following is a summary of the complete pytest_pgsql docs, which are available\non `ReadTheDocs `_.\n\nWhat is ``pytest_pgsql``?\n------------------------------\n\n``pytest_pgsql`` is a `pytest `_ plugin you can use to\nwrite unit tests that utilize a temporary PostgreSQL database that gets cleaned\nup automatically after every test runs, allowing each test to run on a completely\nclean database (with some limitations).\n\nThe plugin gives you two fixtures you can use in your tests: ``postgresql_db`` and\n``transacted_postgresql_db``. Both of these give you similar interfaces to access\nto the database, but have slightly different use cases (see below).\n\nSample Usage\n------------\n\nYou can use a session, connection, or engine - the choice is up to you.\n``postgresql_db`` and ``transacted_postgresql_db`` both give you a session, but\n``postgresql_db`` exposes its engine and ``transacted_postgresql_db`` exposes its\nconnection::\n\n def test_orm(postgresql_db):\n instance = Person(name='Foo Bar')\n postgresql_db.session.add(instance)\n postgresql_db.session.commit()\n with postgresql_db.engine.connect() as conn:\n do_thing(conn)\n\n def test_connection(transacted_postgresql_db):\n instance = Person(name='Foo Bar')\n transacted_postgresql_db.session.add(instance)\n transacted_postgresql_db.session.commit()\n\n transacted_postgresql_db.connection.execute('DROP TABLE my_table')\n\nFeatures\n--------\n\nThe following is a non-exhaustive list of some of the features provided to you\nby the database fixtures.\n\nManipulating Time\n~~~~~~~~~~~~~~~~~\n\nBoth database fixtures use `freezegun `_ to\nallow you to freeze time inside a block of code. You can use it in a variety of\nways:\n\nAs a context manager::\n\n with postgresql.time.freeze('December 31st 1999 11:59:59 PM') as freezer:\n # Time is frozen inside the database *and* Python.\n now = postgresql_db.session.execute('SELECT NOW()').scalar()\n assert now.date() == datetime.date(1999, 12, 31)\n assert datetime.date.today() == datetime.date(1999, 12, 31)\n\n # Advance time by 1 second so we roll over into the new year\n freezer.tick()\n\n now = postgresql_db.session.execute('SELECT NOW()').scalar()\n assert now.date() == datetime.date(2000, 1, 1)\n\nAs a decorator::\n\n @pytest_pgsql.freeze_time(datetime.datetime(2038, 1, 19, 3, 14, 7))\n def test_freezing(postgresql_db):\n today = postgresql_db.session.execute(\n \"SELECT EXTRACT('YEAR' FROM CURRENT_DATE)\").scalar()\n assert today.year == 2038\n assert datetime.date.today() == datetime.date(2038, 1, 19)\n\nAnd more!\n\nGeneral-Purpose Functions\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\n``postgresql_db`` and ``transacted_postgresql_db`` provide some general-purpose\nfunctions to ease test setup and execution.\n\n- ``load_csv()`` loads a CSV file into an existing table.\n- ``run_sql_file()`` executes a SQL script, optionally performing variable binding.\n\nExtension Management\n~~~~~~~~~~~~~~~~~~~~\n\nSince version 9.1 Postgres supports `extensions `_.\nYou can check for the presence of and install extensions like so::\n\n >>> postgresql_db.is_extension_available('asdf') # Can I install this extension?\n False\n >>> postgresql_db.is_extension_available('uuid-ossp') # Maybe this one is supported...\n True\n >>> postgresql_db.install_extension('uuid-ossp')\n True\n >>> postgresql_db.is_extension_installed('uuid-ossp')\n True\n\n``install_extension()`` has additional arguments to allow control over which schema\nthe extension is installed in, what to do if the extension is already installed,\nand so on. See the documentation for descriptions of these features.\n\nSchemas and Tables\n~~~~~~~~~~~~~~~~~~\n\nYou can create `table schemas `_\nby calling ``create_schema()`` like so::\n\n postgresql_db.create_schema('foo') # Create one schema\n postgresql_db.create_schema('foo', 'bar') # Create multiple ones\n\nTo quickly see if a table schema exists, call ``has_schema()``::\n\n >>> postgresql_db.has_schema('public')\n True\n\nSimilarly, you can create tables in the database with ``create_table()``. You can\npass SQLAlchemy ``Table`` instances or ORM declarative model classes::\n\n # Just a regular Table.\n my_table = Table('abc', MetaData(), Column('def', Integer()))\n\n # A declarative model works too.\n class MyORMModel(declarative_base()):\n id = Column(Integer, primary_key=True)\n\n # Pass a variable amount of tables to create\n postgresql_db.create_table(my_table, MyORMModel)\n\nInstallation\n============\n\nSorry, this library is not compatible with Python 2. Please be sure to use ``pip3`` instead of\n``pip`` when installing::\n\n pip3 install pytest-pgsql\n\n\nContributing Guide\n==================\n\nFor information on setting up pytest_pgsql for development and contributing\nchanges, view `CONTRIBUTING.rst `_.\n\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/CloverHealth/pytest-pgsql", "keywords": "", "license": "Copyright Clover Health, Inc.", "maintainer": "", "maintainer_email": "", "name": "pytest-pgsql", "package_url": "https://pypi.org/project/pytest-pgsql/", "platform": "", "project_url": "https://pypi.org/project/pytest-pgsql/", "project_urls": { "Homepage": "https://github.com/CloverHealth/pytest-pgsql" }, "release_url": "https://pypi.org/project/pytest-pgsql/1.1.1/", "requires_dist": [ "freezegun (>=0.3.6)", "pytest (>=3.0.0)", "sqlalchemy (>=1.1.0)", "testing.postgresql (>=1.3.0)" ], "requires_python": "", "summary": "Pytest plugins and helpers for tests using a Postgres database.", "version": "1.1.1" }, "last_serial": 4337806, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "809d4531c733f3a802340740d4347cf6", "sha256": "2af4848872808f35d92fb7d5d6b37769d04d539188200d134fa0afdf9e849798" }, "downloads": -1, "filename": "pytest_pgsql-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "809d4531c733f3a802340740d4347cf6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34377, "upload_time": "2017-11-27T19:09:26", "url": "https://files.pythonhosted.org/packages/c3/fd/62e50dd8761d37a962c1272c1b554dd50896575881f72850bc283c950f3f/pytest_pgsql-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b30af8973c5565286e054c8a1fd893b6", "sha256": "89135bfe68e8b407f3de4c0a1fc3db2e88fdfea39b7022a0b29a0ccfe124b259" }, "downloads": -1, "filename": "pytest_pgsql-1.0.1.tar.gz", "has_sig": false, "md5_digest": "b30af8973c5565286e054c8a1fd893b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41180, "upload_time": "2017-11-27T19:09:28", "url": "https://files.pythonhosted.org/packages/da/2e/ea2488d1fc0595ed31b465fd497e29b34a287177b37be554a79ce178912c/pytest_pgsql-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "9850573ae8a2c6439df13321f8fcc520", "sha256": "309eed93483ba8285e4ab2ec55f2afc4d972ef97c297e1c3afcde06c78729ec7" }, "downloads": -1, "filename": "pytest_pgsql-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9850573ae8a2c6439df13321f8fcc520", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34322, "upload_time": "2017-12-01T19:24:38", "url": "https://files.pythonhosted.org/packages/ee/b5/36ac627cbc57aeed98876d85cd73dd2e655011e497fcc2836fb13c2b1d30/pytest_pgsql-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54c1104630def4a17abf81a4ef55234d", "sha256": "faee3edaf2a0c4a342ce889b8ef9d2f59e4aee5803ec816e48f9ae6611baaf54" }, "downloads": -1, "filename": "pytest-pgsql-1.0.2.tar.gz", "has_sig": false, "md5_digest": "54c1104630def4a17abf81a4ef55234d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41084, "upload_time": "2017-12-01T19:24:39", "url": "https://files.pythonhosted.org/packages/fe/e4/a01f049171bb30a561c6c1257cf57994a93489409ebfdc23617b1b21a1d2/pytest-pgsql-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "f619969f25a63799ddcbca1f0d6a7079", "sha256": "2236022d401a4b10615bed2be4983d5148faa44a1ec41acd7a6b987fb3b3810d" }, "downloads": -1, "filename": "pytest_pgsql-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f619969f25a63799ddcbca1f0d6a7079", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 34325, "upload_time": "2017-12-06T00:44:41", "url": "https://files.pythonhosted.org/packages/6a/61/1566a6ddbc43a56ad63e6927c7ea59b576c6af1351a65e6f5f007dd2e3b4/pytest_pgsql-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1b60c4c9e91076c365c1ca3469f048b6", "sha256": "48792527cdab87812af08a4d019252af4d8a2bb5bd898ba8705e549f85d414db" }, "downloads": -1, "filename": "pytest-pgsql-1.0.3.tar.gz", "has_sig": false, "md5_digest": "1b60c4c9e91076c365c1ca3469f048b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41264, "upload_time": "2017-12-06T00:44:42", "url": "https://files.pythonhosted.org/packages/70/8d/c64da240be4524fc855fe5c19714974fe2f42d467a1ad572bb6af643eb9f/pytest-pgsql-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "206fffcb031751935fdcb3de018ad6ad", "sha256": "58b9aac7408f77325635607d7d56113ef170a8daa7f69b1c5cb9864fa3271f03" }, "downloads": -1, "filename": "pytest_pgsql-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "206fffcb031751935fdcb3de018ad6ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33727, "upload_time": "2018-01-09T21:02:31", "url": "https://files.pythonhosted.org/packages/a6/f9/e39b97c14b0def7b6c617c795d80bab1d9ef38092cc6f29fc1e844a59445/pytest_pgsql-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2bc5b803f18b0a0c5eada2bb515c3e94", "sha256": "b79dc52bb5e0fe0634451168d8ba67f32904489b534846d8920515721771ad3b" }, "downloads": -1, "filename": "pytest-pgsql-1.0.4.tar.gz", "has_sig": false, "md5_digest": "2bc5b803f18b0a0c5eada2bb515c3e94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40667, "upload_time": "2018-01-09T21:02:33", "url": "https://files.pythonhosted.org/packages/fb/0f/e4f3d3db674d5e997d8c41dd541d0de10da0a6d443828816594efe80104f/pytest-pgsql-1.0.4.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "00e90ebc7b5f419dda29178f785ccc8c", "sha256": "9ec8077dee84d4f44bc5eb7842e9e42c4da1f19b7b43401100f450d1d539ac54" }, "downloads": -1, "filename": "pytest_pgsql-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "00e90ebc7b5f419dda29178f785ccc8c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33774, "upload_time": "2018-02-05T19:24:00", "url": "https://files.pythonhosted.org/packages/c1/39/0eafeee68d457ad1da960fa9fedde01d7876ae526c614ad38809f3c68d5f/pytest_pgsql-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b244244427e2b540d651e52064b21e38", "sha256": "cb1a20e9a786d4070456fd9c9effd726a92ff8f2103d5c13670c30a3b7907ba0" }, "downloads": -1, "filename": "pytest-pgsql-1.1.0.tar.gz", "has_sig": false, "md5_digest": "b244244427e2b540d651e52064b21e38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40714, "upload_time": "2018-02-05T19:24:02", "url": "https://files.pythonhosted.org/packages/16/d2/e5fd7a246eb0cd03d33d0218e10a91dcf2b2a4b208377d8538e3adb9f9f1/pytest-pgsql-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "fbe642f2b233bb13c99b76623f9d41c0", "sha256": "ced1183c3aebf1818a74a1e4e242c22893852f4982e50fc7dd122ca28c84f665" }, "downloads": -1, "filename": "pytest_pgsql-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fbe642f2b233bb13c99b76623f9d41c0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33768, "upload_time": "2018-10-03T19:26:44", "url": "https://files.pythonhosted.org/packages/5d/4f/4123a457cf6fc49c6c5c26a4d51f2d52f71e3acc0deab0a73e471183f0b3/pytest_pgsql-1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83be52e88f1dbfb2a707c4e9303a0430", "sha256": "579ee9506096994032f5e25dfc80d62649a8c6ba4a47881a7bcb16ec89b1502a" }, "downloads": -1, "filename": "pytest-pgsql-1.1.1.tar.gz", "has_sig": false, "md5_digest": "83be52e88f1dbfb2a707c4e9303a0430", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40731, "upload_time": "2018-10-03T19:26:46", "url": "https://files.pythonhosted.org/packages/6c/65/ad5dab71a0e4fc93cd92555af7ef8e6c1ecc777a55a3dacdab91d63e959b/pytest-pgsql-1.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fbe642f2b233bb13c99b76623f9d41c0", "sha256": "ced1183c3aebf1818a74a1e4e242c22893852f4982e50fc7dd122ca28c84f665" }, "downloads": -1, "filename": "pytest_pgsql-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fbe642f2b233bb13c99b76623f9d41c0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 33768, "upload_time": "2018-10-03T19:26:44", "url": "https://files.pythonhosted.org/packages/5d/4f/4123a457cf6fc49c6c5c26a4d51f2d52f71e3acc0deab0a73e471183f0b3/pytest_pgsql-1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83be52e88f1dbfb2a707c4e9303a0430", "sha256": "579ee9506096994032f5e25dfc80d62649a8c6ba4a47881a7bcb16ec89b1502a" }, "downloads": -1, "filename": "pytest-pgsql-1.1.1.tar.gz", "has_sig": false, "md5_digest": "83be52e88f1dbfb2a707c4e9303a0430", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40731, "upload_time": "2018-10-03T19:26:46", "url": "https://files.pythonhosted.org/packages/6c/65/ad5dab71a0e4fc93cd92555af7ef8e6c1ecc777a55a3dacdab91d63e959b/pytest-pgsql-1.1.1.tar.gz" } ] }