Skip to main content

A humble library greasing the gears of golden file tests

Project description

goldie

A humble library greasing the gears of golden file tests.

Installation

pip install goldie

Example

This is an example of how to use goldie to test a script across multiple JSON files. The golden files will be used as a reference to compare the output of the script. Adding GOLDIE_UPDATE=1 to the environment variables will update the golden files with the output of the script. Find the full example in the example directory.

import unittest

import goldie


class TestExample(unittest.TestCase):
    def test_script(self):
        config = goldie.ConfigDirectoryTest(
            # We want to test all JSON files in the data directory.
            file_filter="data/*.json",
            config_file_test=goldie.ConfigFileTest(
                run_configuration=goldie.ConfigRun(
                    # We simply run the script in this directory.
                    cmd="python",
                    args=["script.py"],
                    # The script reads from stdin and writes to stdout.
                    input_mode=goldie.InputMode.STDIN,
                    output_mode=goldie.OutputMode.STDOUT,
                ),
                comparison_configuration=goldie.ConfigComparison(
                    # We want to leverage the JSON structure instead of comparing raw strings.
                    comparison_type=goldie.ComparisonType.JSON,
                    json_processing_config=goldie.ConfigProcessJson(
                        replacements=[
                            # We want to replace an unstable value with a stable one.
                            goldie.JsonReplacement(path="data.random", value=3),
                        ],
                    ),
                ),
            ),
        )
        goldie.testing.run_directory_unittest(self, config)


if __name__ == "__main__":
    unittest.main()

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

goldie-0.1.8.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

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

goldie-0.1.8-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file goldie-0.1.8.tar.gz.

File metadata

  • Download URL: goldie-0.1.8.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for goldie-0.1.8.tar.gz
Algorithm Hash digest
SHA256 3660c89f92d1ad9ab5d4f55c75a59d442ebf7432e517fd4df6ad95c5d32a616b
MD5 c6a20d55b555ab77a1e83a0ad2f7acf6
BLAKE2b-256 1685bcb7cdb2f685eb9d09f60cb6eb3599bbeede9d33c06b9b72f3a0916c9d98

See more details on using hashes here.

Provenance

The following attestation bundles were made for goldie-0.1.8.tar.gz:

Publisher: release.yml on merschformann/goldie

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

File details

Details for the file goldie-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: goldie-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for goldie-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 893d63d6c55271e68a9d98730c9a590d0668f2e382cf439965529b707d21d1dc
MD5 39f747e9f79baf07601e23516538cff6
BLAKE2b-256 b8e04d6b1bc6cdeee5cf157e0a4b6c4287c4ed3aa3df04bee2af4ba58f525706

See more details on using hashes here.

Provenance

The following attestation bundles were made for goldie-0.1.8-py3-none-any.whl:

Publisher: release.yml on merschformann/goldie

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