Skip to content

Commit

Permalink
Generalise test mock data some more
Browse files Browse the repository at this point in the history
  • Loading branch information
ZedThree committed Aug 23, 2021
1 parent 30c3aba commit 6389803
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 57 deletions.
53 changes: 53 additions & 0 deletions pyxpad/mock_data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
from collections import defaultdict
from typing import Union
import numpy as np
from pyxpad.pyxpad_utils import XPadDataDim, XPadDataItem


class MockSignalData:
pass


MOCK_SIGNALS = [
["signal_a", ""],
["signal_b", "This one has something"],
["signal_c", ""],
["first_signal", ""],
["second_signal", "a description"],
]

MOCK_DEFAULT_SHOT = [MOCK_SIGNALS[0], MOCK_SIGNALS[1], MOCK_SIGNALS[2], MOCK_SIGNALS[4]]

MOCK_LAST_SHOT = "12354"

MOCK_SHOTS = defaultdict(
lambda: MOCK_DEFAULT_SHOT,
(
(MOCK_LAST_SHOT, [MOCK_SIGNALS[1], MOCK_SIGNALS[2], MOCK_SIGNALS[3]]),
("45321", [MOCK_SIGNALS[0], MOCK_SIGNALS[1], MOCK_SIGNALS[4]]),
("1", MOCK_SIGNALS),
),
)


class MockClient:
"""Mock UDA Client"""

@staticmethod
def get(name: str, shot: Union[int, str]):
if name == "lastshot":
child = MockSignalData()
child.lastshot = int(MOCK_LAST_SHOT)
signal = MockSignalData()
signal.children = [child]
return signal
if name.startswith("meta::list"):
signal = MockSignalData()
shot_data = MOCK_SHOTS[str(shot).strip()]
signal.signal_name = [item[0] for item in shot_data]
signal.description = [item[1] for item in shot_data]
return {"data": signal}
x = np.linspace(0.0, 1.0)
dim = XPadDataDim({"name": "time", "data": x})
data = XPadDataItem({"name": name, "data": np.sin(x), "dim": [dim]})
return data
49 changes: 1 addition & 48 deletions tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from collections import defaultdict
import numpy as np
import pytest
import shutil
Expand All @@ -7,6 +6,7 @@

from pyxpad.pyxpad_utils import XPadDataDim, XPadDataItem
from pyxpad import xpadsource, PyXPad
from pyxpad.mock_data import MockClient


@pytest.fixture
Expand Down Expand Up @@ -36,53 +36,6 @@ def copy_tree_data(tmp_path):
return dest


class MockSignalData:
pass


MOCK_SIGNALS = [
["signal_a", ""],
["signal_b", "This one has something"],
["signal_c", ""],
["first_signal", ""],
["second_signal", "a description"],
]

MOCK_DEFAULT_SHOT = [MOCK_SIGNALS[0], MOCK_SIGNALS[1], MOCK_SIGNALS[2], MOCK_SIGNALS[4]]

MOCK_SHOTS = defaultdict(
lambda: MOCK_DEFAULT_SHOT,
(
("12354", [MOCK_SIGNALS[1], MOCK_SIGNALS[2], MOCK_SIGNALS[3]]),
("45321", [MOCK_SIGNALS[0], MOCK_SIGNALS[1], MOCK_SIGNALS[4]]),
("1", MOCK_SIGNALS),
),
)


class MockClient:
"""Mock UDA Client"""

@staticmethod
def get(name: str, shot: Union[int, str]):
if name == "lastshot":
child = MockSignalData()
child.lastshot = 12354
signal = MockSignalData()
signal.children = [child]
return signal
if name.startswith("meta::list"):
signal = MockSignalData()
shot_data = MOCK_SHOTS[str(shot).strip()]
signal.signal_name = [item[0] for item in shot_data]
signal.description = [item[1] for item in shot_data]
return {"data": signal}
x = np.linspace(0.0, 1.0)
dim = XPadDataDim({"name": "time", "data": x})
data = XPadDataItem({"name": name, "data": np.sin(x), "dim": [dim]})
return data


class MockIdamModule:
"""Mock UDA module"""

Expand Down
4 changes: 3 additions & 1 deletion tests/test_pyxpad.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from pyxpad.xpadsource import XPadSource
from Qt import QtCore

from pyxpad.mock_data import MOCK_LAST_SHOT

import pytest


Expand All @@ -24,7 +26,7 @@ def test_get_last_shot(mock_uda, copy_tree_data, pyxpadbot, qtbot):
main.sources.updateDisplay()
main.lastShotButton.setEnabled(True)
qtbot.mouseClick(main.lastShotButton, QtCore.Qt.LeftButton)
assert str(main.shotInput.text()).strip() == "12354"
assert str(main.shotInput.text()).strip() == MOCK_LAST_SHOT


def test_get_available_signals(mock_uda, pyxpadbot, qtbot):
Expand Down
11 changes: 3 additions & 8 deletions tests/test_xpadsource.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
from pyxpad.xpadsource import XPadSource
from pyxpad.pyxpad_utils import XPadDataDim, XPadDataItem
from pyxpad.mock_data import MOCK_LAST_SHOT, MOCK_SIGNALS


EXPECTED_VARIABLE_NAMES = [
"signal_a",
"signal_b",
"signal_c",
"first_signal",
"second_signal",
]
EXPECTED_VARIABLE_NAMES = [signal[0] for signal in MOCK_SIGNALS]


def test_init_with_tree(copy_tree_data):
Expand All @@ -27,7 +22,7 @@ def test_read(copy_tree_data, mock_uda):

def test_latest_shot(mock_uda):
source = XPadSource()
assert source.last_shot_number == 12354
assert source.last_shot_number == int(MOCK_LAST_SHOT)


def test_from_signals(mock_uda):
Expand Down

0 comments on commit 6389803

Please sign in to comment.