class ConsoleOnlinePlugin(AbstractPlugin, AggregateResultListener): ''' Console plugin ''' SECTION = 'console' def __init__(self, core): AbstractPlugin.__init__(self, core) self.screen = None self.render_exception = None self.console_markup = None self.remote_translator = None self.info_panel_width = '33' self.short_only = 0 @staticmethod def get_key(): return __file__ def get_available_options(self): return ["info_panel_width", "short_only", "disable_all_colors", "disable_colors"] def configure(self): self.info_panel_width = self.get_option("info_panel_width", self.info_panel_width) self.short_only = int(self.get_option("short_only", '0')) if not int(self.get_option("disable_all_colors", '0')): self.console_markup = RealConsoleMarkup() else: self.console_markup = NoConsoleMarkup() for color in self.get_option("disable_colors", '').split(' '): self.console_markup.__dict__[color] = '' self.screen = Screen(self.info_panel_width, self.console_markup) try: aggregator = self.core.get_plugin_of_type(AggregatorPlugin) aggregator.add_result_listener(self) except KeyError: self.log.debug("No aggregator for console") self.screen.block_rows = [] self.screen.info_panel_percent = 100 def is_test_finished(self): try: console_view = self.screen.render_screen().encode('utf-8') except Exception, ex: self.log.warn("Exception inside render: %s", traceback.format_exc(ex)) self.render_exception = ex console_view = "" if console_view: if not self.short_only: self.log.debug("Writing console view to STDOUT") sys.stdout.write(self.console_markup.clear) sys.stdout.write(console_view) sys.stdout.write(self.console_markup.TOTAL_RESET) if self.remote_translator: self.remote_translator.send_console(console_view) return -1
def configure(self): self.info_panel_width = self.get_option("info_panel_width", self.info_panel_width) self.short_only = int(self.get_option("short_only", '0')) if not int(self.get_option("disable_all_colors", '0')): self.console_markup = RealConsoleMarkup() else: self.console_markup = NoConsoleMarkup() for color in self.get_option("disable_colors", '').split(' '): self.console_markup.__dict__[color] = '' self.screen = Screen(self.info_panel_width, self.console_markup) try: aggregator = self.core.get_plugin_of_type(AggregatorPlugin) aggregator.add_result_listener(self) except KeyError: self.log.debug("No aggregator for console") self.screen.block_rows = [] self.screen.info_panel_percent = 100
class ConsoleOnlinePlugin(AbstractPlugin, AggregateResultListener): ''' Console plugin ''' SECTION = 'console' def __init__(self, core): AbstractPlugin.__init__(self, core) self.screen = None self.render_exception = None self.console_markup = None self.remote_translator = None self.info_panel_width = '33' self.short_only = 0 @staticmethod def get_key(): return __file__ def configure(self): self.info_panel_width = self.get_option("info_panel_width", self.info_panel_width) self.short_only = int(self.get_option("short_only", '0')) if not int(self.get_option("disable_all_colors", '0')): self.console_markup = RealConsoleMarkup() else: self.console_markup = NoConsoleMarkup() for color in self.get_option("disable_colors", '').split(' '): self.console_markup.__dict__[color] = '' self.screen = Screen(self.info_panel_width, self.console_markup) try: aggregator = self.core.get_plugin_of_type(AggregatorPlugin) aggregator.add_result_listener(self) except KeyError: self.log.debug("No aggregator for console") self.screen.block_rows = [] self.screen.info_panel_percent = 100 def is_test_finished(self): try: console_view = self.screen.render_screen().encode('utf-8') except Exception, ex: self.log.warn("Exception inside render: %s", traceback.format_exc(ex)) self.render_exception = ex console_view = "" if console_view: if not self.short_only: sys.stdout.write(self.console_markup.clear) sys.stdout.write(console_view) sys.stdout.write(self.console_markup.TOTAL_RESET) if self.remote_translator: self.remote_translator.send_console(console_view) return -1
def configure(self): self.info_panel_width = self.get_option("info_panel_width", self.info_panel_width) self.short_only = int(self.get_option("short_only", '0')) if sys.stdout.isatty() and not int(self.get_option("disable_all_colors", '0')): self.console_markup = RealConsoleMarkup() else: self.console_markup = NoConsoleMarkup() for color in self.get_option("disable_colors", '').split(' '): self.console_markup.__dict__[color] = '' self.screen = Screen(self.info_panel_width, self.console_markup) try: aggregator = self.core.get_plugin_of_type(AggregatorPlugin) aggregator.add_result_listener(self) except KeyError: self.log.debug("No aggregator for console") self.screen.block_rows = [] self.screen.info_panel_percent = 100
def test_HTTP(self): screen = Screen(50, FakeConsoleMarkup()) block = CurrentHTTPBlock(screen) block.render() print block.lines self.assertEquals('<w>HTTP for 0 RPS: <rst>', block.lines[0].strip()) self.assertEquals(1, len(block.lines)) data = self.get_aggregate_data('data/preproc_single.txt') data.overall.planned_requests = 100 data.overall.http_codes = {'400': 10} block.add_second(data) block.render() print block.lines self.assertEquals(2, len(block.lines)) data.overall.http_codes = {'200': 4} block.add_second(data) block.render() print block.lines self.assertEquals(3, len(block.lines))