localizes card mocking fixture so CLI test modules will propery run.

pull/2470/head
Kieran Prasch 2020-12-11 12:27:48 -08:00
parent a9d3b6cf1e
commit 5b88afc7c6
2 changed files with 13 additions and 15 deletions

View File

@ -18,12 +18,25 @@
import os import os
import pytest import pytest
import tempfile
from pathlib import Path
from umbral.keys import UmbralPrivateKey from umbral.keys import UmbralPrivateKey
from nucypher.cli.main import nucypher_cli from nucypher.cli.main import nucypher_cli
from nucypher.policy.identity import Card from nucypher.policy.identity import Card
@pytest.fixture(scope='module', autouse=True)
def patch_card_directory(session_mocker):
custom_filepath = '/tmp/nucypher-test-cards-'
tmpdir = tempfile.TemporaryDirectory(prefix=custom_filepath)
tmpdir.cleanup()
session_mocker.patch.object(Card, 'CARD_DIR', return_value=Path(tmpdir.name),
new_callable=session_mocker.PropertyMock)
yield
tmpdir.cleanup()
@pytest.fixture(scope='module') @pytest.fixture(scope='module')
def alice_verifying_key(): def alice_verifying_key():
return UmbralPrivateKey.gen_key().get_pubkey().hex() return UmbralPrivateKey.gen_key().get_pubkey().hex()

View File

@ -15,19 +15,15 @@ You should have received a copy of the GNU Affero General Public License
along with nucypher. If not, see <https://www.gnu.org/licenses/>. along with nucypher. If not, see <https://www.gnu.org/licenses/>.
""" """
from collections import defaultdict from collections import defaultdict
import lmdb import lmdb
import pytest import pytest
import tempfile
from pathlib import Path
from nucypher.characters.control.emitters import WebEmitter from nucypher.characters.control.emitters import WebEmitter
from nucypher.crypto.powers import TransactingPower from nucypher.crypto.powers import TransactingPower
from nucypher.network.nodes import Learner from nucypher.network.nodes import Learner
from nucypher.network.trackers import AvailabilityTracker from nucypher.network.trackers import AvailabilityTracker
from nucypher.policy.identity import Card
from nucypher.utilities.logging import GlobalLoggerSettings from nucypher.utilities.logging import GlobalLoggerSettings
from tests.constants import INSECURE_DEVELOPMENT_PASSWORD from tests.constants import INSECURE_DEVELOPMENT_PASSWORD
from tests.mock.datastore import mock_lmdb_open from tests.mock.datastore import mock_lmdb_open
@ -192,17 +188,6 @@ def check_character_state_after_test(request):
tracker.work_tracker.stop() tracker.work_tracker.stop()
@pytest.fixture(scope='session', autouse=True)
def patch_card_directory(session_mocker):
custom_filepath = '/tmp/nucypher-test-cards-'
tmpdir = tempfile.TemporaryDirectory(prefix=custom_filepath)
tmpdir.cleanup()
session_mocker.patch.object(Card, 'CARD_DIR', return_value=Path(tmpdir.name),
new_callable=session_mocker.PropertyMock)
yield
tmpdir.cleanup()
@pytest.fixture(scope='session', autouse=True) @pytest.fixture(scope='session', autouse=True)
def mock_datastore(monkeysession): def mock_datastore(monkeysession):
monkeysession.setattr(lmdb, 'open', mock_lmdb_open) monkeysession.setattr(lmdb, 'open', mock_lmdb_open)