Example #1
0
    def __tests_from_requests(self):
        filename = self.engine.create_artifact("test_requests", ".py")
        test_mode = self.execution.get("test-mode", "apiritif")
        scenario = self.get_scenario()

        if test_mode == "apiritif":
            builder = ApiritifScriptGenerator(self.engine,
                                              scenario,
                                              self.label,
                                              self.log,
                                              test_mode=test_mode)
            builder.verbose = self.__is_verbose()
        else:
            wdlog = self.engine.create_artifact('webdriver', '.log')

            generate_markers = self.settings.get('generate-flow-markers', None)
            generate_markers = scenario.get('generate-flow-markers',
                                            generate_markers)

            scenario_caps = scenario.get("capabilities")

            # todo: just for legacy support, remove it later
            if isinstance(scenario_caps, list):
                self.log.warning(
                    "Obsolete format of capabilities found (list), should be dict"
                )
                scenario["capabilities"] = {
                    item.keys()[0]: item.values()[0]
                    for item in scenario_caps
                }

            configs = (self.settings, scenario, self.execution)

            capabilities = get_assembled_value(configs, "capabilities")
            remote = get_assembled_value(configs, "remote")

            builder = ApiritifScriptGenerator(
                self.engine,
                scenario,
                self.label,
                self.log,
                wdlog,
                utils_file=os.path.join(RESOURCES_DIR,
                                        "selenium_taurus_extras.py"),
                ignore_unknown_actions=self.settings.get(
                    "ignore-unknown-actions", False),
                generate_markers=generate_markers,
                capabilities=capabilities,
                wd_addr=remote,
                test_mode=test_mode)

        builder.build_source_code()
        builder.save(filename)
        if isinstance(self.engine.aggregator,
                      ConsolidatingAggregator) and isinstance(
                          builder, ApiritifScriptGenerator):
            self.engine.aggregator.ignored_labels.extend(
                builder.service_methods)
        return filename
Example #2
0
    def __write_props_file(self):
        def write_prop(name, val):
            if val:
                if isinstance(val, list):
                    val = ",".join(val)

                fds.write("{name}={val}\n".format(name=name, val=val))

        props = get_assembled_value(configs=[self.settings, self.get_scenario(), self.execution], key="properties")
        props = props or BetterDict()

        junit_version = str(self.settings.get("junit-version", "4"))
        if junit_version == "5":
            props.merge({"junit_version": 5})

        with open(self.props_file, 'wt') as fds:
            for key in sorted(props.keys()):
                write_prop(key, props[key])

            fds.write("report_file=%s\n" % self.report_file)

            load = self.get_load()

            write_prop("iterations", load.iterations)
            write_prop("hold_for", load.hold)
            write_prop("concurrency", load.concurrency)
            write_prop("ramp_up", load.ramp_up)
            write_prop("steps", load.steps)

            write_prop("run_items", self._get_items_list("run-items"))
            write_prop("include_category", self._get_items_list("include-categories"))
            write_prop("exclude_category", self._get_items_list("exclude-categories"))
Example #3
0
    def __tests_from_requests(self):
        filename = self.engine.create_artifact("test_requests", ".py")
        test_mode = self.execution.get("test-mode", "apiritif")
        scenario = self.get_scenario()

        if test_mode == "apiritif":
            builder = ApiritifScriptGenerator(scenario, self.label, executor=self, test_mode=test_mode)
            builder.verbose = self.__is_verbose()
        else:
            wdlog = self.engine.create_artifact('webdriver', '.log')

            generate_markers = self.settings.get('generate-flow-markers', None)
            generate_markers = scenario.get('generate-flow-markers', generate_markers)

            scenario_caps = scenario.get("capabilities")

            # todo: just for legacy support, remove it later
            if isinstance(scenario_caps, list):
                self.log.warning("Obsolete format of capabilities found (list), should be dict")
                scenario["capabilities"] = {item.keys()[0]: item.values()[0] for item in scenario_caps}

            if scenario.get("external-logging", False):
                self.log.warning("'external-logging' is deprecated and unsupported now. Use 'plugins-path' instead.")

            configs = (self.settings, scenario, self.execution)

            capabilities = get_assembled_value(configs, "capabilities")
            remote = get_assembled_value(configs, "remote")

            builder = ApiritifScriptGenerator(
                scenario, self.label, wdlog, executor=self,
                ignore_unknown_actions=self.settings.get("ignore-unknown-actions", False),
                generate_markers=generate_markers,
                capabilities=capabilities,
                wd_addr=remote, test_mode=test_mode,
                generate_external_handler=True if self.settings.get('plugins-path', False) else False)

        builder.build_source_code()
        builder.save(filename)
        if isinstance(self.engine.aggregator, ConsolidatingAggregator) and isinstance(builder, ApiritifScriptGenerator):
            self.engine.aggregator.ignored_labels.extend(builder.service_methods)
        return filename