Awesome `auto_pytest_mg` is a Python cli/package created with https://github.com/TezRomacH/python-package-template
Project description
auto_pytest_mg (Automatic pytest Mock Generator)
- GitHub: https://github.com/rozelie/auto_pytest_mg
- GitHub Releases: https://github.com/rozelie/auto_pytest_mg/releases
- PyPi: https://pypi.org/project/auto-pytest-mg/
auto_pytest_mg parses the AST of an input python file to generate a new test file with fixtures and boilerplate
test functions. Rendered tests include the mocker
and mg
fixtures which are available via the
pytest-mock and pytest-mocker-generator
packages, respectively.
Note that this packages is a static analysis tool and will not execute any of your code.
Usage
# install the package
pip install auto_pytest_mg
# go to project's source root
cd my_project
# pass the file to generate tests for
auto_pytest_mg my_project/my_file.py
Example
Source file located at my_project/my_file.py
# my_project/my_file.py
import requests
class MyClass:
def __init__(self, a: int):
self.a = a
def method(self) -> int:
return self.a
def get(url: str) -> requests.Response:
return requests.get(url)
Running auto_pytest_mg my_project/my_file.py
will then output to stdout the generated test file:
import pytest
from my_project.my_file import get, MyClass
MODULE_PATH = "my_project.my_file"
@pytest.fixture
def mock_requests(mocker):
return mocker.patch(f"{MODULE_PATH}.requests")
@pytest.fixture
def my_class(mocker):
a = mocker.MagicMock()
return MyClass(a=a)
class TestMyClass:
def test__init__(self, mocker):
a = mocker.MagicMock()
my_class_ = MyClass(a=a)
def test_method(self, mocker, mg, my_class):
mg.generate_uut_mocks_with_asserts(my_class.method)
result = my_class.method()
def test_get(mocker, mg):
url = mocker.MagicMock()
mg.generate_uut_mocks_with_asserts(get)
result = get(url=url)
Similar packages
- pyguin
- Runs given code and uses a genetic algorithm to produce test cases
- Can output to unittest/pytest test styles
- pythoscope
- Last updated in 2016
- Performs static analysis, does not run your code.
Development
See DEVELOPMENT.md
License
This project is licensed under the terms of the MIT
license. See LICENSE for more details.
Credits
This project was generated with python-package-template
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
Built Distribution
File details
Details for the file auto_pytest_mg-0.7.0.tar.gz
.
File metadata
- Download URL: auto_pytest_mg-0.7.0.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.9.13 Darwin/21.4.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7daa7ded8598d77463fc20ca04b84d79bd967fcddf3188559790cf5857bcdf5 |
|
MD5 | 37ee459d89636760378d29a992b3bb10 |
|
BLAKE2b-256 | 323db8ab8e6b98c0824254202c35200e000b619e0feb96748fa148bd97cad7cc |
Provenance
File details
Details for the file auto_pytest_mg-0.7.0-py3-none-any.whl
.
File metadata
- Download URL: auto_pytest_mg-0.7.0-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.9.13 Darwin/21.4.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8916ae43d07e980c6199d38d189e763a99e78e6e94d62467bc021b6c0050d01 |
|
MD5 | b03b8b8cc427a6dcd21f7cf8c068b05d |
|
BLAKE2b-256 | 6243ea050c0a7394f4631240ee05465b6e424d44ed70518e6f2dbaa4be5a19e7 |