Files
urh/tests/test_simulator_dialog.py
Johannes Pohl 5569b1b10a Prebuild device extensions (#462)
* precompile device extensions

* set lib path

* prevent double build

* download libs in travis

* fix unittest

* update path

* protect access

* adapt shared path to linux

* sort os listdir

* ensure libstdc++ loaded first

* change name

* remove required

* improve test

* add usrp test

* set shared library path when processes spawn

* test pypi release with travis

* test pypi release with travis

* test pypi release with travis

* skip cleanup

* fix pypi test link

* test wheelhouse build

* skip tests

* fix path

* fix dir

* cd repo

* quote var

* do not use for loop

* add missing quote

* quote dollar

* script deployment

* fix twine upload

* deploy libs only for windows

* add 32 bit support

* fix command

* disable 32 bit

* push version for test

* push ver

* prepare merge

* trigger build

* fix windows path

* improve shortcut

* remove debug

* edit copyright
2018-06-17 22:31:36 +02:00

138 lines
6.6 KiB
Python

from array import array
from tests.QtTestCase import QtTestCase
from urh.controller.dialogs.SimulatorDialog import SimulatorDialog
from urh.dev.BackendHandler import BackendContainer, Backends
from urh.signalprocessing.Participant import Participant
from urh.simulator.SimulatorMessage import SimulatorMessage
class TestSimulatorDialog(QtTestCase):
def setUp(self):
super().setUp()
alice = Participant("Alice", "A")
bob = Participant("Bob", "B")
alice.simulate = True
bob.simulate = True
self.form.project_manager.participants.append(alice)
self.form.project_manager.participants.append(bob)
self.form.project_manager.project_updated.emit()
mt = self.form.compare_frame_controller.proto_analyzer.default_message_type
msg1 = SimulatorMessage(source=bob, destination=alice, plain_bits=array("B", [1, 0, 1, 1]), pause=100, message_type=mt)
msg2 = SimulatorMessage(source=alice, destination=bob, plain_bits=array("B", [1, 0, 1, 1]), pause=100, message_type=mt)
simulator_manager = self.form.simulator_tab_controller.simulator_config
simulator_manager.add_items([msg1, msg2], 0, simulator_manager.rootItem)
simulator_manager.add_label(5, 15, "test", parent_item=simulator_manager.rootItem.children[0])
print(self.form.simulator_tab_controller.simulator_config.tx_needed)
self.dialog = SimulatorDialog(self.form.simulator_tab_controller.simulator_config,
self.form.generator_tab_controller.modulators,
self.form.simulator_tab_controller.sim_expression_parser,
self.form.project_manager)
if self.SHOW:
self.dialog.show()
def test_set_rx_parameters(self):
rx_settings_widget = self.dialog.device_settings_rx_widget
bh = BackendContainer("test", {Backends.native}, True, True)
self.assertTrue(bh.is_enabled)
rx_settings_widget.backend_handler.device_backends["test"] = bh
rx_settings_widget.ui.cbDevice.addItem("test")
rx_settings_widget.ui.cbDevice.setCurrentText("test")
self.assertEqual(rx_settings_widget.device.name, "test")
self.assertEqual(rx_settings_widget.device.backend, Backends.native)
simulator = self.dialog.simulator
self.__edit_spinbox_value(rx_settings_widget.ui.spinBoxFreq, 500e6)
self.assertEqual(simulator.sniffer.rcv_device.frequency, 500e6)
self.__edit_spinbox_value(rx_settings_widget.ui.spinBoxSampleRate, 4e6)
self.assertEqual(simulator.sniffer.rcv_device.sample_rate, 4e6)
self.__edit_spinbox_value(rx_settings_widget.ui.spinBoxBandwidth, 5e6)
self.assertEqual(simulator.sniffer.rcv_device.bandwidth, 5e6)
self.__edit_spinbox_value(rx_settings_widget.ui.spinBoxGain, 15)
self.assertEqual(simulator.sniffer.rcv_device.gain, 15)
self.__edit_spinbox_value(rx_settings_widget.ui.spinBoxIFGain, 10)
self.assertEqual(simulator.sniffer.rcv_device.if_gain, 10)
self.__edit_spinbox_value(rx_settings_widget.ui.spinBoxBasebandGain, 11)
self.assertEqual(simulator.sniffer.rcv_device.baseband_gain, 11)
self.__edit_spinbox_value(rx_settings_widget.ui.spinBoxFreqCorrection, 22)
self.assertEqual(simulator.sniffer.rcv_device.freq_correction, 22)
rx_settings_widget.ui.lineEditIP.setText("4.4.4.4")
rx_settings_widget.ui.lineEditIP.editingFinished.emit()
self.assertEqual(simulator.sniffer.rcv_device.ip, "4.4.4.4")
def test_set_sniff_parameters(self):
sniff_settings_widget = self.dialog.sniff_settings_widget
simulator = self.dialog.simulator
self.__edit_spinbox_value(sniff_settings_widget.ui.spinbox_sniff_BitLen, 111)
self.assertEqual(simulator.sniffer.signal.bit_len, 111)
self.__edit_spinbox_value(sniff_settings_widget.ui.spinbox_sniff_Center, 0.1337)
self.assertEqual(simulator.sniffer.signal.qad_center, 0.1337)
self.__edit_spinbox_value(sniff_settings_widget.ui.spinbox_sniff_ErrorTolerance, 13)
self.assertEqual(simulator.sniffer.signal.tolerance, 13)
self.__edit_spinbox_value(sniff_settings_widget.ui.spinbox_sniff_Noise, 0.1234)
self.assertEqual(simulator.sniffer.signal.noise_threshold, 0.1234)
sniff_settings_widget.ui.combox_sniff_Modulation.setCurrentText("PSK")
self.assertEqual(simulator.sniffer.signal.modulation_type_str, "PSK")
decodings = [sniff_settings_widget.ui.comboBox_sniff_encoding.itemText(i) for i in
range(sniff_settings_widget.ui.comboBox_sniff_encoding.count())]
sniff_settings_widget.ui.comboBox_sniff_encoding.setCurrentIndex(2)
self.assertEqual(simulator.sniffer.decoder.name, decodings[2])
def test_set_tx_parameters(self):
tx_settings_widget = self.dialog.device_settings_tx_widget
simulator = self.dialog.simulator
bh = BackendContainer("test", {Backends.native}, True, True)
self.assertTrue(bh.is_enabled)
tx_settings_widget.backend_handler.device_backends["test"] = bh
tx_settings_widget.ui.cbDevice.addItem("test")
tx_settings_widget.ui.cbDevice.setCurrentText("test")
self.assertEqual(tx_settings_widget.device.name, "test")
self.assertEqual(tx_settings_widget.device.backend, Backends.native)
self.__edit_spinbox_value(tx_settings_widget.ui.spinBoxFreq, 300e6)
self.assertEqual(simulator.sender.device.frequency, 300e6)
self.__edit_spinbox_value(tx_settings_widget.ui.spinBoxSampleRate, 5e6)
self.assertEqual(simulator.sender.device.sample_rate, 5e6)
self.__edit_spinbox_value(tx_settings_widget.ui.spinBoxBandwidth, 3e6)
self.assertEqual(simulator.sender.device.bandwidth, 3e6)
self.__edit_spinbox_value(tx_settings_widget.ui.spinBoxGain, 16)
self.assertEqual(simulator.sender.device.gain, 16)
self.__edit_spinbox_value(tx_settings_widget.ui.spinBoxIFGain, 13)
self.assertEqual(simulator.sender.device.if_gain, 13)
self.__edit_spinbox_value(tx_settings_widget.ui.spinBoxBasebandGain, 10)
self.assertEqual(simulator.sender.device.baseband_gain, 10)
self.__edit_spinbox_value(tx_settings_widget.ui.spinBoxFreqCorrection, 33)
self.assertEqual(simulator.sender.device.freq_correction, 33)
tx_settings_widget.ui.lineEditIP.setText("1.2.6.2")
tx_settings_widget.ui.lineEditIP.editingFinished.emit()
self.assertEqual(simulator.sender.device.ip, "1.2.6.2")
def __edit_spinbox_value(self, spinbox, value):
spinbox.setValue(value)
spinbox.editingFinished.emit()