def test_ascii(self): config = { 'Image': { 'Background': [0, 0, 0], 'Palette': '$8o:. ', 'Resize': 'none', 'Src': ['logo-mini.png'], 'Type': 'ascii', } } returned = image.draw(config) expected = image.ImageOutput( **{ 'out': [ ' ', ' :8$8o..88: ', ' .oo. .oo. ', ' .::. :88: ', ' .o8$$o: .oo. ', ' :8$8o. ', ' .:oo88o. ', ' ', ], 'width': 16 }) self.assertEqual(returned, expected)
def test_text(self): config = {'Image': {'Type': 'text', 'Src': ['img.txt']}} returned = image.draw(config) expected = image.ImageOutput( **{ 'out': [ ' ', '\x1b[1;30;40m▄\x1b[1;31;41m▄\x1b[1;32;42m▄\x1b[1;34;44m▄\x1b[0m', '\x1b[1;37;47m▄\x1b[1;33;43m▀\x1b[1;36;46m▀\x1b[1;35;45m▀\x1b[0m', ' ', '' ], 'width': 4 }) self.assertEqual(returned, expected)
def test_file_error(self): config = { 'Image': { 'Src': ['/dev/null/fail'], 'Type': 'ASCII', } } returned = image.draw(config) expected = image.ImageOutput( **{ 'err': [ ('W', "Unable to open file '/dev/null/fail'"), ('E', 'Could not open any file'), ] }) self.assertEqual(returned, expected)
def test_background(self): config = { 'Image': { 'Background': [255, 255, 255], 'Palette': '$8o:. ', 'Resize': 'none', 'Src': ['logo-mini.png'], 'Type': 'ascii', } } returned = image.draw(config) expected = image.ImageOutput( **{ 'out': [ '$$$$$8. .8$', '$8. .ooo: .oo. ', ' .::. .::. ', ' .::. .oo. ', '$8. :ooo:. .::. ', '$$$8. .ooo: .8$', '$$$8. .::oo: .8$', '$$$$$8. .8$$$' ], 'width': 16 }) self.assertEqual(returned, expected)
def test_resize_stretch(self): config = { 'Image': { 'Background': [0, 0, 0], 'Lines': 4, 'Palette': '$8o:. ', 'Resize': 'stretch', 'Src': ['logo-mini.png'], 'Type': 'ascii', 'Width': 8, } } returned = image.draw(config) expected = image.ImageOutput( **{ 'out': [ ' . 8o.8 ', ' $.o:$: ', ' .o8$8o ', ' o88 ', ], 'width': 8 }) self.assertEqual(returned, expected)
def test_ansi(self): config = { 'Image': { 'Background': [0, 0, 0], 'Force_Truecolor': True, 'Resize': 'none', 'Src': ['logo-mini.png'], 'Type': 'ansi', } } returned = image.draw(config) expected = image.ImageOutput( **{ 'out': [ '\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;170;170;170m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;170;170m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;170;170;170m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02', '\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;170;170m\x02\x01\x1b[48;2;85;85;85m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;170;170m\x02\x01\x1b[48;2;170;170;170m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02', '\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;170;170m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;170;170;170m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;85;85;85m\x02\x01\x1b[48;2;170;170;170m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;170;170m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;170;170m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02', '\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;85;85;85m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;170;170m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;170;170m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02\x01\x1b[38;2;0;0;0m\x02\x01\x1b[48;2;0;0;0m\x02▀' + '\x01\x1b[0m\x02' ], 'width': 8 }) self.assertEqual(returned, expected)
def test_no_image(self): config = {'Image': {'Type': 'None'}} returned = image.draw(config) expected = image.ImageOutput() self.assertEqual(returned, expected)