Tests for backup_utils file
This commit is contained in:
		
							parent
							
								
									9252dad222
								
							
						
					
					
						commit
						9764479aff
					
				| @ -49,7 +49,8 @@ class BackupTest(unittest.TestCase): | ||||
|         self.addCleanup(self.patcher_thread.stop) | ||||
| 
 | ||||
|         self.qapp = Qubes() | ||||
|         self.qtapp = QtGui.QApplication(sys.argv) | ||||
|         self.qtapp = QtGui.QApplication(["test", "-style", "cleanlooks"]) | ||||
| 
 | ||||
|         self.dispatcher = events.EventsDispatcher(self.qapp) | ||||
| 
 | ||||
|         self.loop = quamash.QEventLoop(self.qtapp) | ||||
| @ -61,7 +62,6 @@ class BackupTest(unittest.TestCase): | ||||
| 
 | ||||
|     def tearDown(self): | ||||
|         self.dialog.hide() | ||||
| 
 | ||||
|         self.qtapp.deleteLater() | ||||
|         self.dialog.deleteLater() | ||||
|         self.qtapp.processEvents() | ||||
| @ -70,8 +70,8 @@ class BackupTest(unittest.TestCase): | ||||
|         self.loop.run_until_complete(asyncio.sleep(0)) | ||||
|         self.loop.close() | ||||
|         del self.loop | ||||
|         del self.qtapp | ||||
|         del self.dialog | ||||
|         del self.qtapp | ||||
|         gc.collect() | ||||
|         super(BackupTest, self).tearDown() | ||||
| 
 | ||||
| @ -159,7 +159,7 @@ class BackupTest(unittest.TestCase): | ||||
|         self.assertTrue(self.dialog.currentPage() | ||||
|                         is self.dialog.select_dir_page) | ||||
|         # required to check if next button is correctly enabled | ||||
|         self.dialog.dir_line_edit.setText("/home/user") | ||||
|         self.dialog.dir_line_edit.setText("/home") | ||||
| 
 | ||||
|         next_button = self.dialog.button(self.dialog.NextButton) | ||||
| 
 | ||||
| @ -248,14 +248,14 @@ class BackupTest(unittest.TestCase): | ||||
| 
 | ||||
|         # setup backup | ||||
|         self._select_location("dom0") | ||||
|         self.dialog.dir_line_edit.setText("/home/user") | ||||
|         self.dialog.dir_line_edit.setText("/home") | ||||
|         self.dialog.passphrase_line_edit.setText("pass") | ||||
|         self.dialog.passphrase_line_edit_verify.setText("pass") | ||||
|         self.dialog.save_profile_checkbox.setChecked(True) | ||||
|         self.dialog.turn_off_checkbox.setChecked(False) | ||||
|         self.dialog.compress_checkbox.setChecked(False) | ||||
|         expected_settings = {'destination_vm': "dom0", | ||||
|                              'destination_path': "/home/user", | ||||
|                              'destination_path': "/home", | ||||
|                              'include': ["work"], | ||||
|                              'passphrase_text': "pass", | ||||
|                              'compression': False} | ||||
| @ -296,14 +296,14 @@ class BackupTest(unittest.TestCase): | ||||
| 
 | ||||
|         # setup backup | ||||
|         self._select_location("sys-net") | ||||
|         self.dialog.dir_line_edit.setText("/home/user") | ||||
|         self.dialog.dir_line_edit.setText("/home") | ||||
|         self.dialog.passphrase_line_edit.setText("longerPassPhrase") | ||||
|         self.dialog.passphrase_line_edit_verify.setText("longerPassPhrase") | ||||
|         self.dialog.save_profile_checkbox.setChecked(False) | ||||
|         self.dialog.turn_off_checkbox.setChecked(False) | ||||
|         self.dialog.compress_checkbox.setChecked(True) | ||||
|         expected_settings = {'destination_vm': "sys-net", | ||||
|                              'destination_path': "/home/user", | ||||
|                              'destination_path': "/home", | ||||
|                              'include': ["dom0", "sys-net", "work"], | ||||
|                              'passphrase_text': "longerPassPhrase", | ||||
|                              'compression': True} | ||||
| @ -330,7 +330,7 @@ class BackupTest(unittest.TestCase): | ||||
| 
 | ||||
|         mock_load.return_value = { | ||||
|             'destination_vm': "sys-net", | ||||
|             'destination_path': "/home/user", | ||||
|             'destination_path': "/home", | ||||
|             'include': ["dom0", "sys-net", "work"], | ||||
|             'passphrase_text': "longerPassPhrase", | ||||
|             'compression': True | ||||
| @ -347,7 +347,7 @@ class BackupTest(unittest.TestCase): | ||||
|         # check if settings were loaded | ||||
|         self.assertEqual(self.dialog.appvm_combobox.currentText(), "sys-net", | ||||
|                          "Destination VM not loaded") | ||||
|         self.assertEqual(self.dialog.dir_line_edit.text(), "/home/user", | ||||
|         self.assertEqual(self.dialog.dir_line_edit.text(), "/home", | ||||
|                          "Destination path not loaded") | ||||
|         self.assertEqual(self.dialog.passphrase_line_edit.text(), | ||||
|                          "longerPassPhrase", "Passphrase not loaded") | ||||
| @ -411,7 +411,7 @@ class BackupTest(unittest.TestCase): | ||||
|                         is self.dialog.select_dir_page) | ||||
| 
 | ||||
|         self._select_location("dom0") | ||||
|         self.dialog.dir_line_edit.setText("/home/user") | ||||
|         self.dialog.dir_line_edit.setText("/home") | ||||
|         self.dialog.passphrase_line_edit.setText("pass") | ||||
|         self.dialog.passphrase_line_edit_verify.setText("pass") | ||||
| 
 | ||||
| @ -433,7 +433,7 @@ class BackupTest(unittest.TestCase): | ||||
|                         is self.dialog.select_dir_page) | ||||
| 
 | ||||
|         self._select_location("dom0") | ||||
|         self.dialog.dir_line_edit.setText("/home/user") | ||||
|         self.dialog.dir_line_edit.setText("/home") | ||||
|         self.dialog.passphrase_line_edit.setText("pass") | ||||
|         self.dialog.passphrase_line_edit_verify.setText("pass") | ||||
| 
 | ||||
| @ -461,7 +461,7 @@ class BackupTest(unittest.TestCase): | ||||
|                         is self.dialog.select_dir_page) | ||||
| 
 | ||||
|         self._select_location("dom0") | ||||
|         self.dialog.dir_line_edit.setText("/home/user") | ||||
|         self.dialog.dir_line_edit.setText("/home") | ||||
|         self.dialog.passphrase_line_edit.setText("pass") | ||||
|         self.dialog.passphrase_line_edit_verify.setText("pass") | ||||
|         self.dialog.turn_off_checkbox.setChecked(False) | ||||
| @ -501,7 +501,7 @@ class BackupTest(unittest.TestCase): | ||||
|                         is self.dialog.select_dir_page) | ||||
| 
 | ||||
|         self._select_location("dom0") | ||||
|         self.dialog.dir_line_edit.setText("/home/user") | ||||
|         self.dialog.dir_line_edit.setText("/home") | ||||
|         self.dialog.passphrase_line_edit.setText("pass") | ||||
|         self.dialog.passphrase_line_edit_verify.setText("pass") | ||||
|         self.dialog.turn_off_checkbox.setChecked(True) | ||||
| @ -540,7 +540,7 @@ class BackupTest(unittest.TestCase): | ||||
|                         is self.dialog.select_dir_page) | ||||
| 
 | ||||
|         self._select_location("dom0") | ||||
|         self.dialog.dir_line_edit.setText("/home/user") | ||||
|         self.dialog.dir_line_edit.setText("/home") | ||||
|         self.dialog.passphrase_line_edit.setText("pass") | ||||
|         self.dialog.passphrase_line_edit_verify.setText("pass") | ||||
|         self.dialog.turn_off_checkbox.setChecked(True) | ||||
| @ -578,7 +578,7 @@ class BackupTest(unittest.TestCase): | ||||
|                         is self.dialog.select_dir_page) | ||||
| 
 | ||||
|         self._select_location("dom0") | ||||
|         self.dialog.dir_line_edit.setText("/home/user") | ||||
|         self.dialog.dir_line_edit.setText("/home") | ||||
|         self.dialog.passphrase_line_edit.setText("pass") | ||||
|         self.dialog.passphrase_line_edit_verify.setText("pass") | ||||
|         self.dialog.turn_off_checkbox.setChecked(True) | ||||
|  | ||||
							
								
								
									
										73
									
								
								qubesmanager/tests/test_backup_utils.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								qubesmanager/tests/test_backup_utils.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,73 @@ | ||||
| #!/usr/bin/python3 | ||||
| # | ||||
| # The Qubes OS Project, https://www.qubes-os.org/ | ||||
| # | ||||
| # Copyright (C) 2016 Marta Marczykowska-Górecka | ||||
| #                                       <marmarta@invisiblethingslab.com> | ||||
| # | ||||
| # This program is free software; you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License as published by | ||||
| # the Free Software Foundation; either version 2 of the License, or | ||||
| # (at your option) any later version. | ||||
| # | ||||
| # This program is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| # GNU General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU General Public License along | ||||
| # with this program; if not, write to the Free Software Foundation, Inc., | ||||
| # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||||
| # | ||||
| import logging.handlers | ||||
| import unittest.mock | ||||
| import sys | ||||
| from PyQt4 import QtGui | ||||
| from qubesadmin import Qubes | ||||
| 
 | ||||
| from qubesmanager import backup_utils | ||||
| 
 | ||||
| 
 | ||||
| class BackupUtilsTest(unittest.TestCase): | ||||
|     def setUp(self): | ||||
|         super(BackupUtilsTest, self).setUp() | ||||
|         self.qapp = Qubes() | ||||
|         self.qtapp = QtGui.QApplication(["test", "-style", "cleanlooks"]) | ||||
| 
 | ||||
|     def tearDown(self): | ||||
|         self.qtapp.deleteLater() | ||||
|         super(BackupUtilsTest, self).tearDown() | ||||
| 
 | ||||
|     def test_01_fill_apvms(self): | ||||
|         dialog = QtGui.QDialog() | ||||
|         combobox = QtGui.QComboBox() | ||||
|         dialog.appvm_combobox = combobox | ||||
|         dialog.qubes_app = self.qapp | ||||
| 
 | ||||
|         backup_utils.fill_appvms_list(dialog) | ||||
| 
 | ||||
|         # see if the dialog has nothing selected | ||||
|         self.assertEqual(combobox.currentIndex(), 0, | ||||
|                          "Incorrect item selected") | ||||
| 
 | ||||
|         # the combobox should contain running VMs that are not internal and | ||||
|         #  not template | ||||
|         expected_vm_list = [vm.name for vm in self.qapp.domains | ||||
|                             if vm.is_running() and vm.klass != 'TemplateVM' | ||||
|                             and not getattr(vm, 'internal', False)] | ||||
|         received_vm_list = [] | ||||
|         for i in range(combobox.count()): | ||||
|             received_vm_list.append(combobox.itemText(i)) | ||||
| 
 | ||||
|         self.assertListEqual(sorted(expected_vm_list), sorted(received_vm_list), | ||||
|                              "VM list not filled correctly") | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     ha_syslog = logging.handlers.SysLogHandler('/dev/log') | ||||
|     ha_syslog.setFormatter( | ||||
|         logging.Formatter('%(name)s[%(process)d]: %(message)s')) | ||||
|     logging.root.addHandler(ha_syslog) | ||||
|     unittest.main() | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Marta Marczykowska-Górecka
						Marta Marczykowska-Górecka