コード例 #1
0
def test_gui(caplog):
    testing_utils.run_gui(
        gui_config={
            'AUTO_BACKUP_ENABLED': False,
            'CHECK_PYTHON_FILES_WITH_PYLINT': False,
            'PREFER_EXTERNAL_EDITOR': False
        })

    # queue = Queue.Queue() # TODO think about to use this to get call_back methods return value by a generic scheme
    # thread = threading.Thread(target=lambda q, arg1: q.put(trigger_source_editor_signals(arg1)), args=(queue, main_window_controller))
    errors = 1
    try:
        result = trigger_source_editor_signals()

        if not result:
            logger.error(
                "!The editor required in this test was not found on this machine. Test was aborted!"
            )
            errors = 2
    except:
        raise
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog,
                                           expected_warnings=0,
                                           expected_errors=errors)
コード例 #2
0
ファイル: conftest.py プロジェクト: ylshimp/RAFCON
def gui(request, caplog):
    parameters = {} if not hasattr(request, "param") else request.param
    with_gui = parameters.get("with_gui", True)

    config = {
        parameter_name: parameters.get(parameter_name)
        for parameter_name in
        ["core_config", "gui_config", "runtime_config", "libraries"]
    }

    utils.dummy_gui(caplog)
    if with_gui:
        utils.run_gui(**deepcopy(config))
    else:
        utils.initialize_environment(gui_already_started=False,
                                     **deepcopy(config))

    gui_tester = GUITester(with_gui, config)
    yield gui_tester

    try:
        if with_gui:
            utils.close_gui()
    finally:
        utils.shutdown_environment(
            caplog=caplog,
            unpatch_threading=with_gui,
            expected_warnings=gui_tester.expected_warnings,
            expected_errors=gui_tester.expected_errors)

        gui_tester.post_test and gui_tester.post_test()
コード例 #3
0
def test_storage_with_gui(with_gui, caplog):
    print("test storage with gui", with_gui)

    testing_utils.dummy_gui(None)

    if with_gui:
        testing_utils.run_gui(gui_config={
            'HISTORY_ENABLED': False,
            'AUTO_BACKUP_ENABLED': False
        })
    else:
        testing_utils.initialize_environment(gui_config={
            'HISTORY_ENABLED': False,
            'AUTO_BACKUP_ENABLED': False
        },
                                             gui_already_started=False)

    e = None
    try:
        save_state_machine(with_gui)
    except Exception as e:
        pass
    finally:
        if with_gui:
            testing_utils.close_gui()
            testing_utils.shutdown_environment(caplog=caplog)
        else:
            testing_utils.shutdown_environment(caplog=caplog,
                                               unpatch_threading=False)

    if e:
        raise e
    print("test storage with gui {0} finished".format(with_gui))
コード例 #4
0
def test_recent_opened_state_machine_list(caplog):
    change_in_gui_config = {
        'AUTO_BACKUP_ENABLED': True,
        'HISTORY_ENABLED': False
    }

    libraries = {
        "ros":
        join(testing_utils.EXAMPLES_PATH, "libraries", "ros_libraries"),
        "turtle_libraries":
        join(testing_utils.EXAMPLES_PATH, "libraries", "turtle_libraries"),
        "generic":
        join(testing_utils.LIBRARY_SM_PATH, "generic")
    }
    testing_utils.run_gui(gui_config=change_in_gui_config,
                          libraries=libraries)  # , patch_threading=False)
    call_gui_callback(patch_backup_threading)
    try:
        trigger_gui_signals()
    except:
        raise
    finally:
        call_gui_callback(unpatch_backup_threading)
        testing_utils.close_gui()
        testing_utils.shutdown_environment(
            caplog=caplog, expected_warnings=0,
            expected_errors=1)  # , unpatch_threading=False)
コード例 #5
0
def test_pane_positions(caplog):
    testing_utils.run_gui(core_config=None,
                          gui_config={
                              'HISTORY_ENABLED': False,
                              'AUTO_BACKUP_ENABLED': False
                          },
                          runtime_config={
                              'MAIN_WINDOW_MAXIMIZED': False,
                              'MAIN_WINDOW_SIZE': (1500, 800),
                              'MAIN_WINDOW_POS': (0, 0),
                              'LEFT_BAR_DOCKED_POS': 400,
                              'RIGHT_BAR_DOCKED_POS': 800,
                              'CONSOLE_DOCKED_POS': 600,
                              'LEFT_BAR_WINDOW_UNDOCKED': False,
                              'RIGHT_BAR_WINDOW_UNDOCKED': False,
                              'CONSOLE_WINDOW_UNDOCKED': False,
                              'LEFT_BAR_HIDDEN': False,
                              'RIGHT_BAR_HIDDEN': False,
                              'CONSOLE_HIDDEN': False,
                          })
    from rafcon.gui.runtime_config import global_runtime_config
    original_runtime_config = global_runtime_config.as_dict()

    try:
        check_pane_positions()
    finally:
        for key, value in original_runtime_config.items():
            call_gui_callback(global_runtime_config.set_config_value, key,
                              value)

        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog)
コード例 #6
0
def test_logging_view_widget(caplog):
    from os.path import join

    change_in_gui_config = {
        'AUTO_BACKUP_ENABLED': False,
        'HISTORY_ENABLED': False,
        "CONSOLE_FOLLOW_LOGGING": False,
        "LOGGING_SHOW_VERBOSE": True,
        "LOGGING_SHOW_DEBUG": True,
        "LOGGING_SHOW_WARNING": True,
        "LOGGING_SHOW_ERROR": True
    }

    libraries = {
        "ros":
        join(testing_utils.EXAMPLES_PATH, "libraries", "ros_libraries"),
        "turtle_libraries":
        join(testing_utils.EXAMPLES_PATH, "libraries", "turtle_libraries"),
        "generic":
        join(testing_utils.LIBRARY_SM_PATH, "generic")
    }

    testing_utils.run_gui(gui_config=change_in_gui_config, libraries=libraries)

    try:
        trigger_logging_view_gui_signals()
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog,
                                           expected_warnings=0,
                                           expected_errors=0)
コード例 #7
0
def test_drag_and_drop_test(caplog):
    testing_utils.run_gui(
        gui_config={
            'AUTO_BACKUP_ENABLED': False,
            'HISTORY_ENABLED': False
        },
        runtime_config={
            'MAIN_WINDOW_MAXIMIZED': False,
            'MAIN_WINDOW_SIZE': (1500, 800),
            'MAIN_WINDOW_POS': (0, 0),
            'LEFT_BAR_WINDOW_UNDOCKED': False,
            'RIGHT_BAR_WINDOW_UNDOCKED': False,
            'CONSOLE_WINDOW_UNDOCKED': False,
            'LEFT_BAR_HIDDEN': True,
            'RIGHT_BAR_HIDDEN': True,
            'CONSOLE_HIDDEN': True,
        },
        libraries={
            "unit_test_state_machines":
            testing_utils.get_test_sm_path("unit_test_state_machines")
        })
    import rafcon.core.singleton
    call_gui_callback(create_models)

    try:
        trigger_drag_and_drop_tests(
            rafcon.gui.singleton.state_machine_manager_model,
            rafcon.gui.singleton.main_window_controller)
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog,
                                           expected_warnings=1,
                                           expected_errors=0)
コード例 #8
0
def test_gui(caplog):
    from os.path import join

    change_in_gui_config = {
        'AUTO_BACKUP_ENABLED': False,
        'HISTORY_ENABLED': False
    }

    libraries = {
        "ros":
        join(testing_utils.EXAMPLES_PATH, "libraries", "ros_libraries"),
        "turtle_libraries":
        join(testing_utils.EXAMPLES_PATH, "libraries", "turtle_libraries"),
        "generic":
        join(testing_utils.LIBRARY_SM_PATH, "generic")
    }
    testing_utils.run_gui(gui_config=change_in_gui_config, libraries=libraries)

    try:
        trigger_gui_signals()
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog,
                                           expected_warnings=0,
                                           expected_errors=1)
コード例 #9
0
def test_semantic_data(caplog):
    testing_utils.run_gui(gui_config={
        'HISTORY_ENABLED': False,
        'AUTO_BACKUP_ENABLED': False
    })
    try:
        change_semantic_data_values()
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog)
コード例 #10
0
def test_user_input_gaphas(caplog):
    run_gui(gui_config={'HISTORY_ENABLED': False, 'AUTO_BACKUP_ENABLED': False},
            libraries={'unit_test_state_machines': testing_utils.get_test_sm_path("unit_test_state_machines")})
    try:
        create_and_resize_state()
    except Exception as e:
        raise
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog)
コード例 #11
0
def test_state_type_change_test(caplog):
    testing_utils.run_gui(gui_config={
        'HISTORY_ENABLED': False,
        'AUTO_BACKUP_ENABLED': False
    })
    try:
        trigger_state_type_change_tests(with_gui=True)
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog)
コード例 #12
0
def test_notification_debugging_example(caplog):
    testing_utils.run_gui(gui_config={
        'HISTORY_ENABLED': False,
        'AUTO_BACKUP_ENABLED': False
    })
    try:
        patch_notifications()
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog,
                                           expected_warnings=0,
                                           expected_errors=0)
コード例 #13
0
def test_bug_issue_586(caplog):
    testing_utils.run_gui(gui_config={
        'AUTO_BACKUP_ENABLED': False,
        'HISTORY_ENABLED': True
    },
                          libraries={})

    try:
        trigger_issue_586_reproduction_sequence()
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog)
コード例 #14
0
def test_dynamic_state_insertion_and_deletion_inside_library(caplog):
    testing_utils.run_gui(
        gui_config={'HISTORY_ENABLED': False, 'AUTO_BACKUP_ENABLED': False},
        libraries={'unit_test_state_machines': testing_utils.get_test_sm_path("unit_test_state_machines")}
    )
    try:
        execute_dynamic_state_insertion("dynamic_state_deletion_inside_library")
    except Exception:
        raise
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog, expected_warnings=23)
コード例 #15
0
def test_execution_modes(caplog):
    testing_utils.run_gui(gui_config={
        'HISTORY_ENABLED': False,
        'AUTO_BACKUP_ENABLED': False
    })
    call_gui_callback(initialize_global_variables)
    try:
        iter_execution_modes()
    except Exception as e:
        raise
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog, expected_warnings=1)
コード例 #16
0
def test_copy_delete_bug(caplog):
    from os.path import join

    libraries = {"ros": join(testing_utils.EXAMPLES_PATH, "libraries", "ros_libraries"),
                 "turtle_libraries": join(testing_utils.EXAMPLES_PATH, "libraries", "turtle_libraries"),
                 "generic": join(testing_utils.LIBRARY_SM_PATH, "generic")}
    change_in_gui_config = {'AUTO_BACKUP_ENABLED': False, 'HISTORY_ENABLED': False}
    testing_utils.run_gui(gui_config=change_in_gui_config, libraries=libraries,)

    try:
        trigger_copy_delete_bug_signals()
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog)
コード例 #17
0
def test_gui_tests(monkeypatch, caplog):
    # let the gui thread create the gui singletons by opening and closing an empty gui
    testing_utils.run_gui(gui_config={
        'HISTORY_ENABLED': False,
        'AUTO_BACKUP_ENABLED': False
    })

    try:
        pass
    except:
        raise
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog)
コード例 #18
0
ファイル: test_dialogs.py プロジェクト: alexanderdurr/RAFCON
def test_dialog_test(caplog):
    testing_utils.run_gui(gui_config={
        'HISTORY_ENABLED': False,
        'AUTO_BACKUP_ENABLED': False
    })
    logger.debug("Dialog test started.")
    try:
        trigger_dialog_tests()
    except Exception:
        raise
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog,
                                           expected_warnings=0,
                                           expected_errors=0)
コード例 #19
0
def test_gui(caplog):

    testing_utils.run_gui(gui_config={
        'HISTORY_ENABLED': False,
        'AUTO_BACKUP_ENABLED': False
    })
    try:
        trigger_gvm_signals()
    except:
        raise
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog,
                                           expected_warnings=0,
                                           expected_errors=1)
コード例 #20
0
def test_backward_compatibility_storage(caplog):
    """This test ensures that old state machines storage formats can still be opened with the current RAFCON version"""
    path = get_backward_compatibility_state_machines_path()

    if not os.path.exists(path):
        logger.info(
            "test_backward_compatibility_storage: the current python interpreter version is not supported"
        )
        return

    run_gui(gui_config={
        'HISTORY_ENABLED': False,
        'AUTO_BACKUP_ENABLED': False
    },
            libraries={
                'unit_test_state_machines':
                testing_utils.get_test_sm_path("unit_test_state_machines")
            })

    try:
        logger.info("Run backward compatibility state machine for own version")
        run_backward_compatibility_state_machines(path)

        logger.info(
            "Run backward compatibility state machine for other versions")
        all_versions_path = testing_utils.get_test_sm_path(
            os.path.join("unit_test_state_machines", "backward_compatibility"))
        for python_version_folder in os.listdir(all_versions_path):
            full_python_version_path = os.path.join(all_versions_path,
                                                    python_version_folder)
            if os.path.isdir(full_python_version_path):
                if full_python_version_path == path:
                    pass
                else:
                    run_backward_compatibility_state_machines(
                        full_python_version_path)

    except Exception:
        raise
    finally:
        # two warning per minor version lower than the current RAFCON version
        state_machines = len([
            filename for filename in os.listdir(path)
            if os.path.isdir(os.path.join(path, filename))
        ])
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog, expected_warnings=0)
コード例 #21
0
def test_repetitive_ungroup_state_and_group_states(caplog):
    """Check if repetitive group and ungroup works"""
    libraries = {
        "unit_test_state_machines":
        testing_utils.get_test_sm_path("unit_test_state_machines")
    }
    testing_utils.run_gui(gui_config={'HISTORY_ENABLED': True},
                          libraries=libraries)
    try:
        trigger_repetitive_group_ungroup()
    except Exception:
        raise
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog,
                                           expected_warnings=0,
                                           expected_errors=1)
コード例 #22
0
ファイル: test_baking.py プロジェクト: alexanderdurr/RAFCON
def test_state_machine_baking(caplog):
    testing_utils.dummy_gui(caplog)

    testing_utils.run_gui(
        gui_config={
            'HISTORY_ENABLED': False,
            'AUTO_BACKUP_ENABLED': False
        },
        libraries={
            'unit_test_state_machines':
            testing_utils.get_test_sm_path("unit_test_state_machines")
        })
    try:
        trigger_baking_commands()
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog)
コード例 #23
0
def test_thread_observer_creation_list(caplog):
    # The side bars have been hidden in the state_resize test; here we show them again
    testing_utils.run_gui(
        runtime_config={
            'LEFT_BAR_HIDDEN': False,
            'RIGHT_BAR_HIDDEN': False,
            'CONSOLE_HIDDEN': False,
        })

    try:
        run_create()
    except:
        raise
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog,
                                           expected_warnings=0,
                                           expected_errors=0)
コード例 #24
0
def test_ungroup(caplog):
    testing_utils.run_gui(gui_config={
        'AUTO_BACKUP_ENABLED': False,
        'HISTORY_ENABLED': False
    },
                          libraries={
                              "ros":
                              join(testing_utils.EXAMPLES_PATH, "libraries",
                                   "ros_libraries"),
                              "turtle_libraries":
                              join(testing_utils.EXAMPLES_PATH, "libraries",
                                   "turtle_libraries"),
                              "generic":
                              join(testing_utils.LIBRARY_SM_PATH, "generic")
                          })

    try:
        trigger_ungroup_signals()
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog)
コード例 #25
0
def test_bug_issue_539(caplog):
    testing_utils.run_gui(gui_config={
        'AUTO_BACKUP_ENABLED': False,
        'HISTORY_ENABLED': False
    },
                          libraries={
                              "ros":
                              join(testing_utils.EXAMPLES_PATH, "libraries",
                                   "ros_libraries"),
                              "turtle_libraries":
                              join(testing_utils.EXAMPLES_PATH, "libraries",
                                   "turtle_libraries"),
                              "generic":
                              join(testing_utils.LIBRARY_SM_PATH, "generic")
                          })

    try:
        trigger_issue_539_reproduction_sequence()
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog)
コード例 #26
0
def test_gui(caplog):
    from os.path import join

    change_in_gui_config = {
        'AUTO_BACKUP_ENABLED': False,
        'HISTORY_ENABLED': False,
        'MAX_VISIBLE_LIBRARY_HIERARCHY': 1,
        'NOT_FULLY_RECURSIVE_LIBRARY_MODEL': True
    }

    libraries = {"generic": join(testing_utils.LIBRARY_SM_PATH, "generic")}

    testing_utils.run_gui(gui_config=change_in_gui_config, libraries=libraries)

    try:
        trigger_gui_signals()
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog,
                                           expected_warnings=0,
                                           expected_errors=0)
コード例 #27
0
def test_all_generic_libraries_in_a_row(caplog):
    testing_utils.run_gui(gui_config={
        'HISTORY_ENABLED': False,
        'AUTO_BACKUP_ENABLED': False
    },
                          libraries={
                              'generic':
                              os.path.join(testing_utils.LIBRARY_SM_PATH,
                                           'generic')
                          })
    call_gui_callback(initialize_global_variables)
    try:
        with pytest.warns(
                log.RAFCONDeprecationWarning) as deprecations_warnings:
            execute_all_generic_libraries_with_keyboard_only()
        assert len([
            record for record in deprecations_warnings
            if record.category is log.RAFCONDeprecationWarning
        ]) == 4
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog, expected_warnings=0)
コード例 #28
0
def test_cut_of_multiple_states(caplog):
    """Check if order of selection and deselection while a cut operation can create a problem with 
    the states editor generation and destruction
    
    - covers bug issue #631 cut multiple states fails
    """

    libraries = {
        "unit_test_state_machines":
        testing_utils.get_test_sm_path("unit_test_state_machines")
    }
    testing_utils.run_gui(gui_config={'HISTORY_ENABLED': True},
                          libraries=libraries)
    try:
        trigger_cut_multiple_states()
    except Exception:
        raise
    finally:
        testing_utils.close_gui()
        testing_utils.shutdown_environment(caplog=caplog,
                                           expected_warnings=0,
                                           expected_errors=0)
コード例 #29
0
ファイル: test_i18n.py プロジェクト: alexanderdurr/RAFCON
def test_gtk_translation(caplog, monkeypatch):
    create_mo_files()
    with use_locale("de_DE.UTF-8", monkeypatch):
        # i18n.setup_l10n() is called inside run_gui()
        testing_utils.run_gui()

        try:

            import rafcon.gui.singleton
            main_window_controller = rafcon.gui.singleton.main_window_controller
            gvm_controller = main_window_controller.get_controller(
                'global_variable_manager_ctrl')
            gvm_view = gvm_controller.view
            remove_button = gvm_view["delete_global_variable_button"]

            print("Found text in label is: ", _("Remove"),
                  remove_button.get_label())
            assert _("Remove") == "Entfernen" == remove_button.get_label()

        finally:
            testing_utils.close_gui()
            testing_utils.shutdown_environment(caplog=caplog)
コード例 #30
0
ファイル: conftest.py プロジェクト: ylshimp/RAFCON
 def restart(self, force_quit=False):
     utils.close_gui(force_quit=force_quit)
     utils.shutdown_environment()
     utils.run_gui(**deepcopy(self.config))