示例#1
0
 def test(self):
     user_input("Please Push the Red Button\n")
     chk_passes("Red Button Pushed")
示例#2
0
 def test(self):
     get_input = user_input("What is 1 + 1?\n")
     chk_equal(int(get_input), 2)
示例#3
0
    def ui_run(self):

        asyncio.set_event_loop(self.loop)
        serial_number = None
        test_selector = None
        self.start = True

        try:
            # args = parser.parse_args()
            if self.args.dev:
                fixate.config.DEBUG = True
            if self.args.index is None:
                test_selector = user_input("Please enter test selector string")
                self.args.index = test_selector[1]
                if test_selector == "ABORT_FORCE":
                    return
            if self.args.serial_number is None:
                serial_number = user_serial("Please enter serial number")
                self.sequencer.context_data["serial_number"] = serial_number[1]
                if serial_number == "ABORT_FORCE":
                    return
            else:
                self.sequencer.context_data[
                    "serial_number"] = self.args.serial_number
            if self.test_script_path is None:
                self.test_script_path = self.args.path
            # parse script params
            for param in self.args.script_params:
                k, v = param.split("=")
                self.sequencer.context_data[k] = v

                self.sequencer.context_data["index"] = self.args.index
            # Load test suite
            test_suite = load_test_suite(self.args.path, self.args.zip,
                                         self.args.zip_selector)
            test_data = retrieve_test_data(test_suite, self.args.index)
            self.sequencer.load(test_data)

            if self.args.local_log:
                try:
                    fixate.config.plg_csv["tpl_csv_path"] = [
                        "{tpl_time_stamp}-{index}.csv"
                    ]
                except (AttributeError, KeyError):
                    pass
            register_csv()
            self.sequencer.status = 'Running'

            def init_tasks():
                pass

            def cancel_tasks():
                for task in ASYNC_TASKS:
                    task.cancel()

            def finished_test_run(future):
                self.loop.call_soon(cancel_tasks)
                self.loop.call_later(
                    1, self.loop.stop
                )  # Max 1 second to clean up tasks before aborting

            init_tasks()
            self.loop.run_in_executor(
                None, self.sequencer.run_sequence).add_done_callback(
                    finished_test_run)

            try:
                self.loop.run_forever()
            finally:
                self.loop.close()
        except BaseException:
            import traceback
            input(traceback.print_exc())
            raise
        finally:
            unregister_csv()
            if serial_number == "ABORT_FORCE" or test_selector == "ABORT_FORCE":
                return 11
            save_local_config()
            self.clean = True  # Let the supervisor know that the program is finishing normally
            if self.sequencer.end_status == "FAILED":
                return 10
            elif self.sequencer.status == "Aborted":
                return 11
            elif self.sequencer.end_status == "ERROR":
                return 12
            else:
                return 5