Skip to main content

Pytest custom features, e.g. fixtures and various tests. Aimed to emulate Google Cloud Storage service

Project description

Introduction

Pytest custom features, e.g. fixtures and various tests. Aimed to emulate Google Cloud Storage service

Requirements / Resources

Usage

The project involves the development of a custom pytest plugin that emulates the Google Cloud Storage (GCS) service to support streamlined testing workflows.

It is built on top of the original docker image that handles natively google-cloud-storage functionality, with the project adding the necessary internal configuration to integrate seamlessly with Polars.

Originally designed to validate Polars DataFrame read/write operations in a simulated remote environment, the plugin enables efficient testing without relying on actual cloud infrastructure.

This setup allows for comprehensive integration testing that closely mirrors real-world cloud interactions.

Run the emulator manually

# If you intend to run the image without passing by pytest
docker run -v /tmp/data:/data -d -p 9023:9023 --name storage_emulator fsouza/fake-gcs-server -port 9023 -scheme http -backend memory -public-host 127.0.0.1:9023 -external-url http://127.0.0.1:9023 -filesystem-root /storage

The parameters are exactly the same as the docker command in the plugin.py file.

Linter

Ruff is the default Python linter used in the project.

If you want to check it, just run ruff check.

All ruff configuration are stored in the pyproject.toml file.

The check command can be added as a pre-commit hook

If by any mean you forget to check the syntax of your code before committing it, the .pre-commit-config.yaml will call ruff check. This avoids unnecessary commits that correct the fact that you forgot to apply the command.

# Install pre-commit
python3 -m pip install pre-commit
# Install ruff pre-commit in git correct path 
python3 -m pre-commit install

How to test the plugin

Under the folder tests you'll find common and small tests used to give you the possibility and the usage you can have.

Appendix

Below, find attached

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_google_cloud_storage-1.1.1.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pytest_google_cloud_storage-1.1.1-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file pytest_google_cloud_storage-1.1.1.tar.gz.

File metadata

File hashes

Hashes for pytest_google_cloud_storage-1.1.1.tar.gz
Algorithm Hash digest
SHA256 2adec164694fdd77b59e0e7336dc333d518d82a7cfd6ae36091f373eb5a78515
MD5 69e3463e074cb1512a696e25f2e235a8
BLAKE2b-256 69bcfbf48e40297c7ce6ea8187846fa4af99100d2a7d950507d1fb0b9ea8c652

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_google_cloud_storage-1.1.1.tar.gz:

Publisher: pypi-push.yaml on Jankovn/pytest-google-cloud-storage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pytest_google_cloud_storage-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_google_cloud_storage-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 040f4b2929f24886f5f939c90fff985c33b451792fa7d7960ce29f79a79d9d21
MD5 12ea52dca7f39398f456ae4787e4a553
BLAKE2b-256 361d11c7d2b00a57d8d65344abe2e278027996bece284f6af5c85eb65c853771

See more details on using hashes here.

Provenance

The following attestation bundles were made for pytest_google_cloud_storage-1.1.1-py3-none-any.whl:

Publisher: pypi-push.yaml on Jankovn/pytest-google-cloud-storage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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