Metadata-Version: 2.1
Name: pytest-frappe
Version: 0.2.3
Summary: Pytest Frappe Plugin - A set of pytest fixtures to test Frappe applications
Author-email: 0xsirsaif <sirsaif99@gmail.com>
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Classifier: License :: OSI Approved :: MIT License
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Framework :: Pytest
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Dist: pytest>=7.0.0
Requires-Dist: flake8 ; extra == "dev"
Requires-Dist: pytest ; extra == "dev"
Requires-Dist: isort ; extra == "dev"
Requires-Dist: black ; extra == "dev"
Requires-Dist: mypy ; extra == "dev"
Requires-Dist: flit ; extra == "dev"
Project-URL: Documentation, https://github.com/0xsirsaif/pytest-frappe
Provides-Extra: dev

# pytest-frappe

`pytest-frappe` is a set of pytest fixtures for testing Frappe applications. It provides two fixtures: `db_instance` and `db_transaction`, which can be used to create and manage database connections.

## Installation

You can install `pytest-frappe` via pip:

```bash
pip install pytest-frappe
```


## Usage

To use the fixtures provided by `pytest-frappe`

```python
def test_foo(db_transaction):
    # use the db_instance fixture to interact with the database
    pass
```


`pytest-frappe` also provides a command line option, `--sites-path`, which can be used to specify the directory where your Frappe sites are stored. This option is required to initialize the `db_instance` fixture.

Here's an example of how you can use the `--sites-path` option:

```bash
pytest --sites-path=/path/to/sites/directory
```


## Available fixtures

### `db_instance`

The `db_instance` fixture provides a database connection to a Frappe application. It is created at the beginning of the test session and destroyed at the end of the session. This fixture is used to perform database operations.

### `db_transaction`

The `db_transaction` fixture is a database transaction context manager. It creates a new transaction at the beginning of each test function and rolls back the transaction at the end of the test function. This fixture is used to perform database operations within a transaction.

## License

`pytest-frappe` is licensed under the MIT License. See LICENSE for more information.

