p≡p for Python
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

81 lines
2.0 KiB

# -*- coding: utf-8 -*-
"""pytest configuration for the unit tests."""
import os
import pytest
from . import constants
# Static Data
@pytest.fixture()
def datadir(request):
"""Get, read, open test files from the tests "data" directory."""
class D:
def __init__(self, basepath):
self.basepath = basepath
def open(self, name, mode="r"):
return self.basepath.join(name).open(mode)
def join(self, name):
return self.basepath.join(name).strpath
def read(self, name):
with self.open(name, "r") as f:
return f.read()
def readlines(self, name):
with self.open(name, "r") as f:
return f.readlines()
return D(request.fspath.dirpath("data"))
@pytest.fixture()
def alice_key_sec(datadir):
key_data = datadir.read('alice@openpgp.example.sec.asc')
return key_data
@pytest.fixture()
def bob_key_pub(datadir):
key_data = datadir.read('bob@openpgp.example.pub.asc')
return key_data
# Init
@pytest.fixture()
def env_init(tmpdir_factory, request):
"""Create a tmp dir for the tests"""
base = str(abs(hash(request.node.nodeid)))[:3]
bn = tmpdir_factory.mktemp(base)
print(bn)
import os
os.environ["PEP_HOME"] = str(bn)
os.environ["HOME"] = str(bn)
@pytest.fixture()
def pEp(env_init):
import pEp
return pEp
# Identities
@pytest.fixture()
def import_ident_alice(pEp, alice_key_sec):
pEp.import_key(alice_key_sec)
alice = pEp.Identity(
constants.ALICE_ADDRESS, constants.ALICE_NAME,
constants.ALICE_NAME_ADDR, constants.ALICE_FPR, 0, ''
)
return alice
@pytest.fixture()
def import_ident_alice_as_own_ident(pEp, import_ident_alice):
alice = import_ident_alice
pEp.set_own_key(alice, constants.ALICE_FPR)
return alice
@pytest.fixture()
def import_ident_bob(pEp, bob_key_pub):
pEp.import_key(bob_key_pub)
bob = pEp.Identity(
constants.BOB_ADDRESS, constants.BOB_NAME, '',
constants.BOB_FPR, 56, ''
)
return bob