A pytest plugin for running tests against Minecraft releases
Project description
pytest-minecraft
A pytest plugin for running tests against Minecraft releases.
The plugin automatically downloads the latest version of the Minecraft client into the pytest cache. The provided fixtures can also extract the vanilla resource pack and data pack on demand.
Installation
The package can be installed with pip
.
$ pip install pytest-minecraft
Usage
Downloading the Minecraft client takes a few seconds so the tests that use the fixtures provided by the plugin will be skipped unless explicitly enabled with a command-line flag. The --minecraft-latest
flag will enable the tests and run them against the latest stable release.
$ pytest --minecraft-latest
You can also use the --minecraft-snapshot
flag to test against the latest snapshot. Both flags can be specified at the same time to run the tests against both stable and snapshot releases.
$ pytest --minecraft-latest --minecraft-snapshot
Fixtures
-
The
minecraft_client_jar
fixture returns the path to the downloaded Minecraft client as apathlib.Path
instance.def test_with_client(minecraft_client_jar): assert minecraft_client_jar.name == "client.jar" with ZipFile(minecraft_client_jar) as client: assert len(client.namelist()) > 10_000
-
The
minecraft_resource_pack
fixture returns the path to the extracted vanilla resource pack as apathlib.Path
instance.def test_with_resource_pack(minecraft_resource_pack): assert minecraft_resource_pack.name == "resource_pack" assert (minecraft_resource_pack / "assets" / "minecraft" / "textures").is_dir()
-
The
minecraft_data_pack
fixture returns the path to the extracted vanilla data pack as apathlib.Path
instance.def test_with_data_pack(minecraft_data_pack): assert minecraft_data_pack.name == "data_pack" assert (minecraft_data_pack / "data" / "minecraft" / "loot_tables").is_dir()
Contributing
Contributions are welcome. This project uses poetry
.
$ poetry install
You can run the tests with poetry run pytest
.
$ poetry run pytest
The code follows the black code style.
$ poetry run black .
License - MIT
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 pytest-minecraft-0.0.0.tar.gz
.
File metadata
- Download URL: pytest-minecraft-0.0.0.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.5 Linux/5.4.58-1-MANJARO
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75af02d19aa3b166fb6fd5ed4030e4269e9841fdc55401e1079e06b89fb438b9 |
|
MD5 | 00baa5d929f648fab4708a44ff10e042 |
|
BLAKE2b-256 | ba6ddd8d21d79b84b1201a8f11f8da64eccf84e339b93e244feafee300ffc0a5 |
File details
Details for the file pytest_minecraft-0.0.0-py3-none-any.whl
.
File metadata
- Download URL: pytest_minecraft-0.0.0-py3-none-any.whl
- Upload date:
- Size: 4.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.5 Linux/5.4.58-1-MANJARO
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d63d265dfeed009d357f5a28d7c754046e28b2c13ad016e65125cc1dfdec421 |
|
MD5 | 840f5396a781f5014439d813dd8cc610 |
|
BLAKE2b-256 | 699ffeb1ce428d7cb78d60a0757f45a3e6c5da1831b2403b8cf1acce7f14b2dc |