play sql
January 10, 2019 ยท View on GitHub
======== play sql
.. image:: https://img.shields.io/pypi/v/play_sql.svg :target: https://pypi.python.org/pypi/play_sql
.. image:: https://travis-ci.org/davidemoro/play_sql.svg?branch=develop :target: https://travis-ci.org/davidemoro/play_sql
.. image:: https://readthedocs.org/projects/play-sql/badge/?version=latest :target: https://play-sql.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status
.. image:: https://codecov.io/gh/davidemoro/play_sql/branch/develop/graph/badge.svg :target: https://codecov.io/gh/davidemoro/play_sql
pytest-play support for SQL expressions and assertions
More info and examples on:
- pytest-play_, documentation
- cookiecutter-qa_, see
pytest-playin action with a working example if you want to start hacking
Features
This project defines a new pytest-play_ command:
::
- type: sql
provider: play_sql
database_url: postgresql://$db_user:$db_pwd@$db_host/$db_name
query: SELECT id, title FROM invoices
variable: invoice_id
variable_expression: results.first()[0]
assertion: invoice_id == $invoice_id
where:
database_urlfollows the format described http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urlsvariable_expressionis a Python expressionresults.fetchone()returns an array whose elements matches with the next row's columns and it could be invoked many times until there will be no more rows (eg: first call(1, 'first',), second call(2, 'second'))results.first()returns an array whose elements matches with the first row's colums and it can be invoked exactly one timeresults.fetchall()returns an array of tuples whose elements matches with the selected colums (eg:[(1, 'first'), (2, 'second'), (3, 'third')])
pytest-play tweets happens here:
@davidemoro_
Credits
This package was created with Cookiecutter_ and the cookiecutter-play-plugin_ (based on audreyr/cookiecutter-pypackage_ project template).
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _audreyr/cookiecutter-pypackage: https://github.com/audreyr/cookiecutter-pypackage
.. _cookiecutter-play-plugin: https://github.com/davidemoro/cookiecutter-play-plugin
.. _pytest-play: https://github.com/davidemoro/pytest-play
.. _cookiecutter-qa: https://github.com/davidemoro/cookiecutter-qa
.. _@davidemoro: https://twitter.com/davidemoro