Skip to main content

pytest-gnupg-fixtures

Overview

Pytest fixtures to dynamically create GnuPG instances for testing.

Getting Started

Update setup.py to include:

from distutils.core import setup

setup(
	tests_require=["pytest-gnupg-fixtures"]
)

All fixtures should be automatically included via the pytest11 entry point.

from pytest_gnupg_fixtures import GnuPGKeypair  # Optional, for typing

def test_custom_signer(gnupg_keypair: GnuPGKeypair):
    custom_signer = CustomSigner(
        keyid=gnupg_keypair.fingerprints[1],
        passphrase=gnupg_keypair.passphrase,
        homedir=gnupg_keypair.gnupg_home,
    )
    assert "PGP SIGNATURE" in custom_signer.sign("my data")
  • Tested with python 3.8

Installation

From pypi.org

$ pip install pytest_gnupg_fixtures

From source code

$ git clone https://github.com/crashvb/pytest-gnupg-fixtures
$ cd pytest-gnupg-fixtures
$ virtualenv env
$ source env/bin/activate
$ python -m pip install --editable .[dev]

Fixtures

gnupg_email

Provides a generated email to use as part of the uid for the keypair.

gnupg_gen_key_conf

Provides the path to a templated GnuPG script file that is used to generate a temporary keypair. If a user-defined script (tests/gnupg_gen_key.conf) can be located, it is used. Otherwise, an embedded script template is copied to temporary location and returned. This fixture is used by the gnupg_keypair fixture.

The$GNUGP_EMAIL and $GNUPG_PASSPHRASE variables will be populated within the template during generation of the keypair.

gnupg_keypair

Provides a keypair within a temporary GnuPG trust store.

NamedTuple Fields

The following fields are defined in the tuple provided by this fixture:

Typing is provided by pytest_gnupg_fixtures.GnuPGKeypair.

gnupg_passphrase

Provides a generated passphrase to use for the keypair.

gnupg_trust_store

Provides a temporary, initialized, GnuPG trust store that is contains no keys. This fixture is used by the gnupg_keypair fixture.

NamedTuple Fields

The following fields are defined in the tuple provided by this fixture:

  • gnupg_home - The path to the temporary trust store.

Typing is provided by pytest_gnupg_fixtures.GnuPGTrustStore.

Limitations

  1. This has been coded to work with gpg2.
  2. The generated keypair is very simple. TBD if this will be expanded to support a more realistic configuration.

Development

Source Control

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest_gnupg_fixtures-0.1.6.tar.gz (6.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_gnupg_fixtures-0.1.6-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file pytest_gnupg_fixtures-0.1.6.tar.gz.

File metadata

  • Download URL: pytest_gnupg_fixtures-0.1.6.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.3

File hashes

Hashes for pytest_gnupg_fixtures-0.1.6.tar.gz
Algorithm Hash digest
SHA256 8fd17caf1a44743e524aa8a7ce3028d5ebbdb9c6fb8d9fe8caea24adc005f726
MD5 ef2a0caeecd85ea64eef3a5d763eb77b
BLAKE2b-256 893e8d69d95bd83a054e916cdd0d52242b57386bcc099a053d29037240428303

See more details on using hashes here.

File details

Details for the file pytest_gnupg_fixtures-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: pytest_gnupg_fixtures-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.3

File hashes

Hashes for pytest_gnupg_fixtures-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 deda26ce49ab9538d9a7758a3f3c27ff2fd7b051d1e29c864c7ba9a0ddd48405
MD5 c705d74f4dc6d381c7fa50c89ff456d3
BLAKE2b-256 fa661d2113c9c3e50c2d7c2b0d62637caa3853dbbd897ac8647ed2363f16f21f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

Supported by

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