66 lines
2.8 KiB
Python
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) |