1
0
mirror of https://github.com/jopohl/urh.git synced 2021-05-12 19:42:18 +03:00
Files
urh/tests/test_file_operator.py
Johannes Pohl 889dd05f25 proper support for complex16u (2xuint8) signals (#772)
* proper support for complex16 (2xint8) signals
  * fix Modulator: give correct iq type
  * fix View: Use general min/max and not from signal
  * Remove Padding

* fix requirements.txt (skip PyQt5.14.2 on Windows)

* fix noise area drawing

* fix demod view range for FSK and PSK

* Autofit signal in ModulatorDialog.py

* optimize Unittests
2020-05-01 13:49:32 +02:00

66 lines
2.8 KiB
Python

import hashlib
import os
import tarfile
import tempfile
from zipfile import ZipFile
import numpy as np
from PyQt5.QtCore import QDir
from PyQt5.QtTest import QTest
from PyQt5.QtWidgets import QApplication, QFileDialog
from tests.QtTestCase import QtTestCase
from urh.signalprocessing.IQArray import IQArray
from urh.util import FileOperator
class TestFileOperator(QtTestCase):
def test_save_wav(self):
temp_dir = tempfile.gettempdir()
os.chdir(temp_dir)
self.assertFalse(os.path.isfile("test.wav"))
FileOperator.save_data(np.array([1, 2], dtype=np.int16), "test.wav")
self.assertTrue(os.path.isfile("test.wav"))
os.remove("test.wav")
def test_uncompress_archives(self):
temp_dir = tempfile.gettempdir()
os.chdir(temp_dir)
with tarfile.open("test.tar.gz", "w:gz") as tar:
for name in ["1.complex", "2.complex", "3.complex"]:
data = np.ones(10, dtype=np.complex64)
data.tofile(name)
tar.add(name)
with ZipFile('test.zip', 'w') as zip:
for name in ["4.complex", "5.complex"]:
data = np.ones(20, dtype=np.complex64)
data.tofile(name)
zip.write(name)
self.form.add_files(FileOperator.uncompress_archives(["test.tar.gz", "test.zip"], QDir.tempPath()))
self.assertEqual(len(self.form.signal_tab_controller.signal_frames), 5)
tar_md5 = hashlib.md5(open(os.path.join(temp_dir, "test.tar.gz"), 'rb').read()).hexdigest()
self.form.signal_tab_controller.signal_frames[0].signal.iq_array = IQArray(np.ones(5, dtype=np.complex64))
self.form.signal_tab_controller.signal_frames[0].signal.changed = True
self.form.signal_tab_controller.signal_frames[0].ui.btnSaveSignal.click()
tar_md5_after_save = hashlib.md5(open(os.path.join(temp_dir, "test.tar.gz"), 'rb').read()).hexdigest()
self.assertNotEqual(tar_md5, tar_md5_after_save)
zip_md5 = hashlib.md5(open(os.path.join(temp_dir, "test.zip"), 'rb').read()).hexdigest()
self.form.signal_tab_controller.signal_frames[4].signal.iq_array = IQArray(np.ones(5, dtype=np.complex64))
self.form.signal_tab_controller.signal_frames[4].signal.changed = True
self.form.signal_tab_controller.signal_frames[4].ui.btnSaveSignal.click()
zip_md5_after_save = hashlib.md5(open(os.path.join(temp_dir, "test.zip"), 'rb').read()).hexdigest()
self.assertNotEqual(zip_md5, zip_md5_after_save)
def test_get_open_dialog(self):
d1 = FileOperator.get_open_dialog(directory_mode=False)
self.assertEqual(d1.fileMode(), QFileDialog.ExistingFiles)
d2 = FileOperator.get_open_dialog(directory_mode=True)
self.assertEqual(d2.fileMode(), QFileDialog.Directory)