Exemple #1
0
def window(tmpdir_factory):
    api_key = hexlify(os.urandom(16))
    root_state_dir = str(tmpdir_factory.mktemp('tribler_state_dir'))

    app = TriblerApplication("triblerapp-guitest", sys.argv)
    # We must create a separate instance of QSettings and clear it.
    # Otherwise, previous runs of the same app will affect this run.
    settings = QSettings("tribler-guitest")
    settings.clear()
    window = TriblerWindow(  # pylint: disable=W0621
        settings,
        root_state_dir,
        api_key=api_key,
        core_args=[
            str(RUN_TRIBLER_PY.absolute()), '--core', '--gui-test-mode'
        ],
    )  # pylint: disable=W0621
    app.set_activation_window(window)
    QTest.qWaitForWindowExposed(window)

    screenshot(window, name="tribler_loading")
    wait_for_signal(
        window.core_manager.events_manager.tribler_started,
        flag=window.core_manager.events_manager.tribler_started_flag,
    )
    window.downloads_page.can_update_items = True
    yield window

    window.close_tribler()
    screenshot(window, name="tribler_closing")
    QApplication.quit()
 def test_launch_flowchart(self):
     num_flowcharts = len(get_window_manager().flowcharts)
     QTest.mouseClick(self.welcome_window.ui.btnFlowchart, Qt.LeftButton)
     self.assertEqual(len(get_window_manager().flowcharts) - 1, num_flowcharts,
                      'Flowchart window not appended to WindowMnager.flowchart instance')
     self.assertIsInstance(get_window_manager().flowcharts[-1], FlowchartWindow)
     QTest.qWaitForWindowExposed(get_window_manager().flowcharts[-1])
    def setUpClass(cls):
        if cls is BaseWelcomeWindowTest:
            raise unittest.SkipTest("Skipping BaseWelcomeWindowTest")

        cls.welcome_window = MainWindow()
        get_window_manager().welcome_window = cls.welcome_window
        QTest.qWaitForWindowExposed(cls.welcome_window)
        super(BaseWelcomeWindowTest, cls).setUpClass()
 def test_launch_viewer(self):
     num_viewers = len(get_window_manager().viewers)
     # QtTest.QTest.qWaitForWindowExposed(self.welcome_window)
     QTest.mouseClick(self.welcome_window.ui.btnViewer, Qt.LeftButton)
     self.assertEqual(len(get_window_manager().viewers) - 1, num_viewers,
                      'No window has been appended to WindowManager.viewers instance')
     self.assertIsInstance(get_window_manager().viewers[-1], ViewerWindow)
     QTest.qWaitForWindowExposed(get_window_manager().viewers[-1])
    def setUpClass(cls):
        # doing this only once to save time (waiting for window to show takes time)
        cls.window = BaseWindow(ui_file)

        # this is required for testing shortcuts
        # see https://stackoverflow.com/a/20751213
        cls.window.show()
        QTest.qWaitForWindowExposed(cls.window)
Exemple #6
0
 def test_integration(self):
     solver = gui.PolynomSolver()
     QTest.qWaitForWindowExposed(solver)
     QTest.keyClicks(solver._inputLine, '-2 20 -50',
                     delay=100)  # Wait 100ms
     QTest.mouseClick(solver._processButton,
                      Qt.Qt.LeftButton,
                      pos=Qt.QPoint(1, 1))
     self.assertEqual(solver._resultWidget.text(), "5.000")
Exemple #7
0
    def test_tiff_module(self):
        viewer_window = get_window_manager().viewers[-1]
        for m in viewer_window.running_modules:
            self.assertNotIsInstance(
                m, TiffModuleGUI,
                'Tiff module already running after viewer launcher')
        viewer_window.ui.actionTiff_file.trigger()

        if not any(
                isinstance(m, TiffModuleGUI)
                for m in viewer_window.running_modules):
            self.fail(
                'Tiff module not appended to running modules of viewer window')

        tm = viewer_window.run_module('tiff_io')

        self.assertIsInstance(tm, TiffModuleGUI,
                              'Getting Tiff by str reference failed')
        assert isinstance(tm, TiffModuleGUI)

        QTest.qWaitForWindowExposed(tm)

        # Check tiff module defaults
        self.assertFalse(tm.ui.radioButtonImread.isChecked())
        self.assertFalse(tm.ui.radioButtonAsarray.isChecked())
        tm.ui.radioButtonImread.click()
        self.assertTrue(tm.ui.radioButtonImread.isChecked())

        tiff_file = os.path.join(data_dir, 'tiff', 'test_imread.tiff')
        json_file = os.path.join(data_dir, 'tiff', 'test_imread.json')

        tm._tiff_file_path = tiff_file

        tm.check_meta_path()

        # Check that meta data is deteted
        self.assertEqual(tm._meta_file_path, json_file)

        # Load image
        QTest.mouseClick(tm.ui.btnLoadIntoWorkEnv, Qt.LeftButton)

        # Check the image arrays
        seq = tifffile.imread(tiff_file)

        numpy.testing.assert_array_equal(
            seq, viewer_window.viewer_reference.workEnv.imgdata.seq.T,
            'Output of tifffile.imread does not match ViewerWorkEnv.ImgData.seq.T'
        )
        numpy.testing.assert_array_equal(
            seq, viewer_window.viewer_reference.image,
            'ImageView.image array does not equal output of tifffile.imread')

        # Check the meta data file
        meta = viewer_window.viewer_reference.workEnv.imgdata.meta
        self.assertFalse({} == meta, "ViewerWorkEnv dict appears to be empty")
        print(f"ViewerWorkEnv meta data dict\n{meta}")
Exemple #8
0
        def execWithArgs():
            self.qpart.show()
            QTest.qWaitForWindowExposed(self.qpart)
            _processPendingEvents(self.app)

            try:
                func(*args)
            finally:
                _processPendingEvents(self.app)
                self.app.quit()
Exemple #9
0
 def setUp(self):
     self.d = Driver()
     # the application must be switched to metric scales
     self.assertFalse(self.d.config.metric != True)
     self.d.show()
     self.d.raise_()
     self.debug = self.d.config.debug
     QTest.qWaitForWindowExposed(self.d)
     if not utils.isMac():
         self.d.working_dir = 'Z:\Windows\pyRouterJig\images'
Exemple #10
0
 def setUp(self):
     """Create the GUI"""
     print('Executing Main Test')
     self.app = QtWidgets.QApplication(sys.argv)
     self.main_window = MainWindow()
     # catch invoked message boxes for additional parameters and make random selection
     self.main_window.simDataItemTreeModel.dialog.message_shown.connect(
         self.random_attributes_selection)
     self.main_window.show()
     QTest.qWaitForWindowExposed(self.main_window)
Exemple #11
0
        def execWithArgs():
            self.qpart.show()
            QTest.qWaitForWindowExposed(self.qpart)
            _processPendingEvents(self.app)

            try:
                func(*args)
            finally:
                _processPendingEvents(self.app)
                self.app.quit()
Exemple #12
0
 def setUp(self):
     """Restart application before each unit test."""
     self.app = QApplication([])
     self.ui = Window()
     self.menu = self.ui.menuBar()
     self.file_menu = self.menu.actions()[0]
     self.result_menu = self.menu.actions()[1]
     self.settings_menu = self.menu.actions()[2]
     self.tab = None
     QTest.qWaitForWindowExposed(self.ui)
     return
Exemple #13
0
 def test_add_selectall(self):
     import breezy.plugins.qbrz.lib.add
     self.win = breezy.plugins.qbrz.lib.add.AddWindow(self.tree, None)
     QTest.qWaitForWindowExposed(self.win)
     self.addCleanup(self.cleanup_win)
     self.win.initial_load()
     QTest.qWaitForWindowExposed(self.win)
     # print('\ntest_add_select_all', self.win.filelist_widget)
     self.assertSelectedPaths(self.win.filelist_widget, [
         'dir-with-unversioned/child', 'unversioned',
         'unversioned-with-ignored'
     ])
Exemple #14
0
 def test_argument_error(self):
     # Note that it can be hard to test dialogs, as we lose the hand on the
     # processing of the events. Here we have mocked the QMessage API
     solver = gui.PolynomSolver()
     QTest.qWaitForWindowExposed(solver)
     QTest.keyClicks(solver._inputLine, 'mmmm', delay=100)  # Wait 100ms
     QTest.mouseClick(solver._processButton,
                      Qt.Qt.LeftButton,
                      pos=Qt.QPoint(1, 1))
     # Check the protocol
     self.assertEqual(self._mock.callCount(), 0)
     self.assertEqual(self._mockedQMessage.callCount(), 1)
Exemple #15
0
 def test_2_result(self):
     self._mock.setExpectedResult([0, 1])
     # Check the process
     solver = gui.PolynomSolver()
     QTest.qWaitForWindowExposed(solver)
     QTest.keyClicks(solver._inputLine, '0 1 2', delay=100)  # Wait 100ms
     QTest.mouseClick(solver._processButton,
                      Qt.Qt.LeftButton,
                      pos=Qt.QPoint(1, 1))
     self.assertEqual(solver._resultWidget.text(), "0.000 1.000")
     # Check the protocol
     self.assertEqual(self._mock.callCount(), 1)
     self.assertEqual(self._mock._arguments[0], (0, 1, 2))
Exemple #16
0
 def setUp(self):
     TestGuideBarBase.setUp(self)
     self.tree.commit(message='2')
     self.win = AnnotateWindow(None,
                               None,
                               None,
                               None,
                               None,
                               loader=self.load,
                               loader_args=[])
     self.addCleanup(self.win.close)
     self.win.show()
     QTest.qWaitForWindowExposed(self.win)
Exemple #17
0
def window(api_port):
    core_manager.START_FAKE_API = True
    tribler_gui.defs.DEFAULT_API_PORT = api_port

    app = TriblerApplication("triblerapp-guitest", sys.argv)
    window = TriblerWindow(api_port=api_port)
    app.set_activation_window(window)
    QTest.qWaitForWindowExposed(window)

    screenshot(window, name="tribler_loading")
    wait_for_signal(window.core_manager.events_manager.tribler_started)
    window.downloads_page.can_update_items = True
    yield window
    QApplication.quit()
Exemple #18
0
 def execWithArgs():
     try:
         core.mainWindow().show()
         QTest.qWaitForWindowExposed(core.mainWindow())
         app = QApplication.instance()
         app.setActiveWindow(core.mainWindow())
         assert app.focusWidget() is not None
         func(*args)
         # When done processing these events, exit the event loop. To do so,
     finally:
         try:
             app.processEvents()
         except:
             pass
         app.quit()
Exemple #19
0
 def execWithArgs():
     try:
         core.mainWindow().show()
         QTest.qWaitForWindowExposed(core.mainWindow())
         app = QApplication.instance()
         app.setActiveWindow(core.mainWindow())
         assert app.focusWidget() is not None
         func(*args)
         # When done processing these events, exit the event loop. To do so,
     finally:
         try:
             app.processEvents()
         except:
             pass
         app.quit()
Exemple #20
0
    def setup_method(self):
        base = ".\\resources\\test_data"
        data_source = base + "\\source"
        tempdir = base + "\\temp_dir"
        try:
            rmtree(tempdir)
        except FileNotFoundError:
            pass

        copytree(data_source, tempdir)  # Throws file not found exception

        self.app = QApplication([])
        self.ui = ExampleApp(".\\resources\\CloneSpyResult.txt")
        self.menu = self.ui.menuBar()
        self.ui.show()
        QTest.qWaitForWindowExposed(self.ui)
Exemple #21
0
    def setUp(self):
        app = QApplication.instance()
        self.app = app or QApplication([])
        self.window = Window()

        # some useful shortcuts
        self.grid = self.window.main_grid
        self.gridvp = self.grid.viewport()
        self.tb = {
            k: self.window.toolbar.widgetForAction(obj) if isinstance(
                obj, QAction) else obj
            for k, obj in self.window.toolbar_controls.items()
        }

        self.window.show()
        # bring to foreground
        self.window.setWindowState((self.window.windowState()
                                    & ~Qt.WindowMinimized) | Qt.WindowActive)
        QTest.qWaitForWindowExposed(self.window)
    def test_MainWindow_shortcuts(self):
        """Testing some of the simpler shortcuts do what you would expect them to
        """
        # First open MainWindow:
        self.main.show()
        QTest.qWaitForWindowExposed(self.main)

        # Test Enable/Disable drawing
        old = self.main.main_widget.win.view.drawing
        QTest.keyClick(self.main, "d", Qt.ControlModifier)
        assert self.main.main_widget.win.view.drawing != old

        # Test View All labels
        old = self.main.main_widget.win.see_all_labels
        QTest.keyClick(self.main, "a", Qt.ControlModifier)
        assert self.main.main_widget.win.see_all_labels != old

        # Test adjust slice intensity
        old = self.main.hist_widget.isVisible()
        QTest.keyClick(self.main, "h", Qt.ControlModifier)
        QTest.qWaitForWindowExposed(self.main.hist_widget)
        assert self.main.hist_widget.isVisible() != old
Exemple #23
0
 def test_defaults(self):
     self.assertEqual(self.form.ui.frequency_radiobutton_1.text(), "Once a week")
     self.assertEqual(self.form.ui.frequency_radiobutton_2.text(), "Every other week")
     self.assertEqual(self.form.ui.frequency_radiobutton_3.text(), "Once a month")
     self.assertEqual(self.form.check_equal_text_save_button(), "Save")
     self.assertEqual(self.form.check_equal_text_cancel_button(), "Cancel")
     self.assertEqual(self.form.check_equal_text_clear_button(), "Clear")
     self.assertEqual(self.form.ui.struggle_lineedit.text(), "")
     self.assertEqual(self.form.ui.subject_code_linedit.text(), "")
     self.form.show()
     self.assertTrue(QTest.qWaitForWindowExposed(self.form), True)
     self.assertTrue(self.form.ui.Add_notification_tab.isVisible(), True)
     self.assertFalse(self.form.ui.Saved_subjects_tab.isVisible(), False)        
     self.assertFalse(self.form.ui.Settings_tab.isVisible(), False)  
Exemple #24
0
    def setUpClass(cls):
        # doing this only once to save time (waiting for window to show takes time)
        # Mock objects are reset in "setUp"
        cls.main_window = PluginMainWindow()
        cls.mocks = {
            "file_new": MagicMock(),
            "file_open": MagicMock(),
            "file_save": MagicMock(),
            "file_save_as": MagicMock(),
            "kratos_groups": MagicMock()
        }

        cls.main_window.actionNew.triggered.connect(cls.mocks["file_new"])
        cls.main_window.actionOpen.triggered.connect(cls.mocks["file_open"])
        cls.main_window.actionSave.triggered.connect(cls.mocks["file_save"])
        cls.main_window.actionSave_As.triggered.connect(
            cls.mocks["file_save_as"])
        cls.main_window.actionGroups.triggered.connect(
            cls.mocks["kratos_groups"])

        # this is required for testing shortcuts
        # see https://stackoverflow.com/a/20751213
        cls.main_window.show()
        QTest.qWaitForWindowExposed(cls.main_window)
Exemple #25
0
 def test_exit_option(self):
     self.form.show()
     if self.form.get_action_quit().isEnabled():
         self.form.close()
     self.assertFalse(QTest.qWaitForWindowExposed(self.form), False)
Exemple #26
0
 def setUp(self):
     super(WindowTestCase, self).setUp()
     self.window = UpdaterApp()
     self.window.show()
     QTest.qWaitForWindowExposed(self.window)
Exemple #27
0
 def setUp(self):
     """Create the GUI"""
     self.app = QtWidgets.QApplication(sys.argv)
     self.main_window = MainWindow()
     self.main_window.show()
     QTest.qWaitForWindowExposed(self.main_window)
Exemple #28
0
    def test_show_widget(self):
        widget = TreeWidget()
        self.widget = widget
        QTest.qWaitForWindowExposed(widget)
        self.run_model_tests()

        self.addCleanup(widget.close)
        # make the widget bigger so that we can see what is going on.
        widget.setGeometry(0, 0, 500, 500)
        widget.show()
        QTest.qWaitForWindowExposed(widget)
        QtCore.QCoreApplication.processEvents()
        widget.set_tree(self.tree, self.branch, changes_mode=self.changes_mode)
        self.run_model_tests()

        widget.update()
        QTest.qWaitForWindowExposed(widget)
        QtCore.QCoreApplication.processEvents()
        widget.expandAll()
        QTest.qWaitForWindowExposed(widget)
        self.run_model_tests()

        widget.update()
        QTest.qWaitForWindowExposed(widget)
        QtCore.QCoreApplication.processEvents()

        self.modify_tree(self, self.tree)
        QTest.qWaitForWindowExposed(widget)
        widget.refresh()
        QTest.qWaitForWindowExposed(widget)
        self.run_model_tests()

        widget.update()
        QTest.qWaitForWindowExposed(widget)
        QtCore.QCoreApplication.processEvents()
        widget.expandAll()
        QTest.qWaitForWindowExposed(widget)
        self.run_model_tests()

        widget.update()
        QTest.qWaitForWindowExposed(widget)
        QtCore.QCoreApplication.processEvents()
Exemple #29
0
 def screenshot(self, do_screenshot=True):
     QTest.qWaitForWindowExposed(self.d)
     QTest.qWait(100)
     self.d._on_save(do_screenshot)
    if not os.path.exists(state_dir):
        os.makedirs(state_dir)

    # Set up logging before starting the GUI
    setup_gui_logging()

    core_script_file = os.path.abspath(run_tribler.__file__)
    core_args = [core_script_file]

    # QT App initialization
    app = QApplication(sys.argv)
    window = TriblerWindow(core_args=core_args)

    # Wait till the window is shown
    QTest.qWaitForWindowExposed(window)
else:
    window = None

sys.excepthook = sys.__excepthook__
MAX_TIMEOUT = 60000

class TimeoutException(Exception):
    pass


class AbstractTriblerIntegrationTest(unittest.TestCase):
    """
    This class contains various utility methods that are used during the GUI test, i.e. methods that wait until
    some data in a list is loaded or for taking a screenshot of the current window.
    """
Exemple #31
0
from TriblerGUI.widgets.channel_torrent_list_item import ChannelTorrentListItem
from TriblerGUI.widgets.home_recommended_item import HomeRecommendedItem

api_port = get_random_port()
core_manager.START_FAKE_API = True

import TriblerGUI
TriblerGUI.defs.DEFAULT_API_PORT = api_port

from TriblerGUI.widgets.loading_list_item import LoadingListItem
from TriblerGUI.tribler_window import TriblerWindow

if os.environ.get("TEST_GUI") == "yes":
    app = QApplication(sys.argv)
    window = TriblerWindow(api_port=api_port)
    QTest.qWaitForWindowExposed(window)
else:
    window = None


def start_fake_core(port):
    from twisted.internet import reactor
    from twisted.web.server import Site

    from FakeTriblerAPI.endpoints.root_endpoint import RootEndpoint
    from FakeTriblerAPI.endpoints.video_root_endpoint import VideoRootEndpoint
    from FakeTriblerAPI.tribler_data import TriblerData
    import FakeTriblerAPI.tribler_utils as tribler_utils

    def generate_tribler_data():
        tribler_utils.tribler_data = TriblerData()
 def test_MainWindow_starts(self):
     """Testing that the GUI starts as expected.
     """
     # Try and open MainWindow:
     self.main.show()
     QTest.qWaitForWindowExposed(self.main)