def test_float_value_with_non_zero_decimal(self): badge = Badge('float str no decimal', value='10.01') self.assertFalse(badge.value_is_int) self.assertTrue(badge.value_is_float) badge.write_badge('test_badge_float-str-no-decimal.svg', overwrite=True)
def generate_badge(config_file, badge_file, session_file): """Generate badge file.""" with use_db(session_file, WorkDB.Mode.open) as db: config = load_config(config_file) percent = 100 - survival_rate(db) config = config["badge"] badge = Badge( label=config["label"], value=percent, value_format=config["format"], thresholds=config["thresholds"], ) log.info("Generating badge: " + config["format"], percent) # pylint: disable=logging-not-lazy try: os.unlink(badge_file) except OSError: pass badge.write_badge(badge_file)
def test_badge_with_thresholds(self): """Test generating a badge using thresholds.""" thresholds = {2: 'red', 4: 'orange', 6: 'green', 8: 'brightgreen'} badge = Badge('test', '2.22', value_suffix='%', thresholds=thresholds) badge.write_badge('test_badge_8.svg', overwrite=True)
def test_font_name(self): font = 'Arial, Helvetica, sans-serif' badge = Badge('font', value=font, font_name=font) badge.write_badge('test_badge_font.svg', overwrite=True) badge_repr = repr(badge) self.assertTrue( "font_name='Arial, Helvetica, sans-serif'" in badge_repr)
def test_badge_width_with_medium_value_text(self): """Test the width of a badge generated with a medium text value.""" badge = Badge(label='medium', value='89.67%', default_color='green') badge.write_badge('test_badge_medium.svg', overwrite=True) self.assertLessEqual(badge.badge_width, 138)
def test_badge_width_with_tiny_value_text(self): """Test the width of a badge generated with a short text value.""" badge = Badge(label='a', value='1', default_color='green') badge.write_badge('test_badge_tiny_text_value.svg', overwrite=True) self.assertLessEqual(badge.badge_width, 76)
def make_badge(views, color='green'): badge = Badge('views', views, thresholds={views: color}) try: remove('badge.svg') except FileNotFoundError: pass badge.write_badge('badge.svg')
def test_badge_with_text_color(self): """Test generating a badge with alternate text_color.""" badge = Badge('text color', '2.22', value_suffix='%', text_color='#010101,#101010') badge.write_badge('test_badge_text_color.svg', overwrite=True)
def test_invalid_write_path(self): badge = Badge('label', 'value') with self.assertRaisesRegexp( ValueError, r'File location may not be a directory\.'): badge.write_badge('tests/') with self.assertRaisesRegexp( RuntimeError, r'File ".*tests\/exists\.svg" already exists\.'): badge.write_badge('tests/exists') badge.write_badge('tests/exists')
def create_badge( self, ver: str, badge_file: str, badge_label: str, badge_color: str, ) -> None: """This functions will create badge as per run results""" badge = Badge(label=badge_label, value=ver, default_color=badge_color) badge.write_badge(badge_file, overwrite=True)
def test_badge_width_with_long_value_text(self): """Test the width of a badge generated with a long text value.""" badge = Badge(label='CppCheck', value='err: 2 | warn: 9 | info: 99 | style: 365', default_color='red') badge.write_badge('test_badge_1.svg', overwrite=True) self.assertLessEqual(badge.badge_width, 326)
def test_badge_width_with_medium_value_text_zero_pad(self): """Test the width of a badge generated with a medium text value.""" badge = Badge(label='medium no padding', value='89.67%', default_color='green', num_padding_chars=0) badge.write_badge('test_badge_medium_no_padding.svg', overwrite=True) self.assertLessEqual(badge.badge_width, 156)
def test_badge_width_with_short_value_text_zero_pad(self): """Test the width of a badge generated with a short text value.""" badge = Badge(label='short value no padding', value='1', default_color='green', num_padding_chars=0) badge.write_badge('test_badge_short_no_padding.svg', overwrite=True) self.assertLessEqual(badge.badge_width, 143)
class Badge(Result): def __init__(self, filename, png=False, **any_badge_kwargs): self.badge = AnyBadge(**any_badge_kwargs) self.filename = filename self.png = png def _to(self, dest): badge_path = dest / "{}.svg".format(self.filename) self.badge.write_badge(str(badge_path), overwrite=True) badges = [badge_path] if self.png: png_path = dest / "{}.png".format(self.filename) cairosvg.svg2png(url=str(badge_path), write_to=str(png_path)) badges.append(png_path) return badges
def generate_badge(): """cr-badge Usage: cr-badge [--config <config_file>] <badge_file> <session-file> Generate badge file. options: --config <config_file> Configuration file to use instead of session configuration """ arguments = docopt.docopt(generate_badge.__doc__, version='cr-format 0.1') config_file = arguments['--config'] badge_filename = arguments['<badge_file>'] with use_db(arguments['<session-file>'], WorkDB.Mode.open) as db: assert isinstance(db, WorkDB) if config_file: config = load_config(config_file) else: config = db.get_config() percent = 100 - survival_rate(db) config = config['badge'] badge = Badge( label=config['label'], value=percent, value_format=config['format'], thresholds=config['thresholds'], ) log.info("Generating badge: " + config['format'], percent) # pylint: disable=logging-not-lazy try: os.unlink(badge_filename) except OSError: pass badge.write_badge(badge_filename)
def test_padding_label(self): badge = Badge('label padding', value='10.01', num_label_padding_chars=2) badge.write_badge('test_badge_padding_label.svg', overwrite=True)
def test_integer_int_value_is_handled_as_integer(self): badge = Badge('integer', value=1234) self.assertTrue(badge.value_is_int) self.assertFalse(badge.value_is_float) badge.write_badge('test_badge_int.svg', overwrite=True)
def test_float_value_is_handled_as_float(self): badge = Badge('float int', value=1234.1) self.assertFalse(badge.value_is_int) self.assertTrue(badge.value_is_float) badge.write_badge('test_badge_float.svg', overwrite=True)
def test_float_value_with_zero_decimal(self): badge = Badge('float with zeros', value='10.00') self.assertFalse(badge.value_is_int) self.assertTrue(badge.value_is_float) badge.write_badge('test_badge_float_zeros.svg', overwrite=True)
def test_padding_value(self): badge = Badge('value padding', value='10.01', num_value_padding_chars=2) badge.write_badge('test_badge_padding_value.svg', overwrite=True)
def test_font_size(self): for size in [10, 11, 12]: badge = Badge('font size', value=size, font_size=size) badge.write_badge('test_badge_font_size_%s.svg' % size, overwrite=True)