def draw_banner_first_line(self, lines, data): status = data.get('HealthStatus', 'Unknown') refresh_time = data.get('RefreshedAt', None) if refresh_time is None: timestamp = '-' countdown = ' ( now )' else: timestamp = utils.get_local_time_as_string(refresh_time) delta = utils.get_delta_from_now_and_datetime(refresh_time) diff = 11 - delta.seconds if not self.refresh: countdown = '' elif self.frozen: countdown = ' (frozen +{})'.format(delta.seconds) elif diff < 0: countdown = ' ( now )' else: countdown = " ({} secs)".format(diff) env_name = data.get('EnvironmentName') pad_length = (term.width() - len(env_name) - len(timestamp) - len(countdown) - 1) if lines > 2: banner = io.bold(' {env_name}{status}{time}{cd} ') \ .format(env_name=env_name, status=status.center(pad_length), time=timestamp, cd=countdown, ) if not self.mono: banner = io.on_color(data.get('Color', 'Grey'), banner) term.echo_line(banner) lines -= 1 return lines
def reverse(self, string): """ Windows doesn't support reverse. But since you cant change terminal colors on windows, we can safely assume that white background and black text will be a reverse Its not quite reverse on powershell, but it works """ return io.on_color('white', io.color('black', string))
def test_on_color__term_is_not_colorable( self, term_is_colorable_mock, init_mock ): term_is_colorable_mock.return_value = False self.assertEqual('ßßßßß', io.on_color('ORANGE', u'ßßßßß')) init_mock.assert_not_called()
def test_on_color( self, term_is_colorable_mock, init_mock ): term_is_colorable_mock.return_value = True self.assertEqual('\x1b[43mßßßßß\x1b[49m', io.on_color('ORANGE', u'ßßßßß')) init_mock.assert_called_once()
def draw_banner_first_line(self, lines, data): if lines > 2: app_name = 'Application Name: {}'.format(self.poller.app_name) env_name = self.poller.env_name if env_name is None: env_name = 'No Environment Specified' pad_length = term.width() - len(env_name) banner = io.bold(' {env_name}{app_name} ') \ .format(env_name=env_name, app_name=app_name.center(pad_length), ) if not self.mono: banner = io.on_color(data.get('Color', 'Grey'), banner) term.echo_line(banner) lines -= 1 return lines
def draw_banner_first_line(self, lines, data): if lines > 2: app_name = 'Application Name: {}'.format(self.poller.app_name) env_name = self.poller.env_name if env_name is None: env_name = 'No Environment Specified' pad_length = term.width() - len(env_name) banner = io.bold(' {env_name}{app_name} ') \ .format(env_name=env_name, app_name=app_name.center(pad_length), ) if not self.mono: banner = io.on_color(data.get('Color', 'Grey'), banner) term.echo_line(banner) lines -= 1 return lines
def draw_banner_first_line(self, lines, data): status = data.get('HealthStatus', 'Unknown') refresh_time = data.get('RefreshedAt', None) if refresh_time is None: timestamp = '-' countdown = ' ( now )' else: timestamp = utils.get_local_time_as_string(refresh_time) delta = utils.get_delta_from_now_and_datetime(refresh_time) diff = 11 - delta.seconds if not self.refresh: countdown = '' elif self.frozen: countdown = ' (frozen +{})'.format(delta.seconds) elif diff < 0: countdown = ' ( now )' else: countdown = " ({} secs)".format(diff) env_name = data.get('EnvironmentName') pad_length = term.width() \ - len(env_name) \ - len(timestamp) \ - len(countdown) \ - 1 if lines > 2: banner = io.bold(' {env_name}{status}{time}{cd} ') \ .format(env_name=env_name, status=status.center(pad_length), time=timestamp, cd=countdown, ) if not self.mono: banner = io.on_color(data.get('Color', 'Grey'), banner) term.echo_line(banner) lines -= 1 return lines
def get_color_data(self, data): if self.screen.mono: return data.get('Color', ' ')[:1] else: return io.on_color(data.get('Color', 'RESET'), ' ')