No project description provided
Project description
[](https://travis-ci.org/okorolev/pytest-ast-transformer)
[](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())
```
[](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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
346f5d6a2500449099c68c3f35ea7965525d3d52012089ddda565babb99246a8
|
|
| MD5 |
a5e26a7a135c26bdea3778d3ecd6d4a3
|
|
| BLAKE2b-256 |
8f4f72599150a0542d56027036f9ce3eb649ed899b4d080c9f9715762d537674
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
526d8a24b148f303ac2eae85308141fe85a13077afdc9ecbfeec7b74e91f4072
|
|
| MD5 |
b9e251c1d24866beb41a7be781300af1
|
|
| BLAKE2b-256 |
0f6ce10d21f512016ed4b8795dcced850e3afedb83a6af0865f044601dd9ed0b
|