Skip to main content

No project description provided

Project description

[![Build Status](https://travis-ci.org/okorolev/pytest-ast-transformer.svg?branch=master)](https://travis-ci.org/okorolev/pytest-ast-transformer)
[![image](https://img.shields.io/pypi/v/pytest-ast-transformer.svg)](https://pypi.org/project/pytest-ast-transformer/)

## About
AST Transformer integrated with py.test.

Useful for debug, refactoring, 'clean asserts' (see [examples/replace_asserts](examples/replace_asserts))

Support options
---------------
| Options | Description |
| ----------- | ----------- |
| `--show-code` | show generated code |
| `--disable-transforms` | disable all ast transformers |

## Install
```bash
pip install pytest-ast-transformer
```

## Usage

* Write ast transformer
```python
# transformer.py
import ast

from pytest_ast_transformer.ast_transformer import PytestTransformer


def my_assert(test_result, msg=''):
print(f'my assert: {test_result} {msg}')
assert test_result, msg


class AssertTransformer(PytestTransformer):
context = {
'my_assert': my_assert
}

def visit_Assert(self, node: ast.Assert) -> ast.Expr:
func_name = ast.Name(id='my_assert', ctx=ast.Load())
call_func = ast.Call(func=func_name, args=[node.test, node.msg], keywords=[])
expr = ast.Expr(value=call_func)

return ast.fix_missing_locations(expr)
```
* Register new ast transformer
```python
# conftest.py
from pytest_ast_transformer.ast_manager import ASTManager
from tests.transformer import AssertTransformer


def pytest_register_ast_transformer(ast_manager: ASTManager):
ast_manager.add_transformer(AssertTransformer())
```


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest-ast-transformer-1.0.3.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

pytest_ast_transformer-1.0.3-py2.py3-none-any.whl (11.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pytest-ast-transformer-1.0.3.tar.gz.

File metadata

  • Download URL: pytest-ast-transformer-1.0.3.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.4.3 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.3

File hashes

Hashes for pytest-ast-transformer-1.0.3.tar.gz
Algorithm Hash digest
SHA256 346f5d6a2500449099c68c3f35ea7965525d3d52012089ddda565babb99246a8
MD5 a5e26a7a135c26bdea3778d3ecd6d4a3
BLAKE2b-256 8f4f72599150a0542d56027036f9ce3eb649ed899b4d080c9f9715762d537674

See more details on using hashes here.

File details

Details for the file pytest_ast_transformer-1.0.3-py2.py3-none-any.whl.

File metadata

  • Download URL: pytest_ast_transformer-1.0.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.4.3 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.3

File hashes

Hashes for pytest_ast_transformer-1.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 526d8a24b148f303ac2eae85308141fe85a13077afdc9ecbfeec7b74e91f4072
MD5 b9e251c1d24866beb41a7be781300af1
BLAKE2b-256 0f6ce10d21f512016ed4b8795dcced850e3afedb83a6af0865f044601dd9ed0b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page