diff --git a/tests/test_cli.py b/tests/test_cli.py index d1a3a7d8..f9e792f0 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -1,9 +1,11 @@ import unittest +import pygments +from pygments.token import (Name, Number, String, Keyword) import jc.cli class MyTests(unittest.TestCase): - def test_cli(self): + def test_cli_generate_magic_command(self): commands = { 'jc -p systemctl list-sockets': 'systemctl list-sockets | jc --systemctl-ls -p', 'jc -p systemctl list-unit-files': 'systemctl list-unit-files | jc --systemctl-luf -p', @@ -22,3 +24,98 @@ class MyTests(unittest.TestCase): for command, expected_command in commands.items(): self.assertEqual(jc.cli.generate_magic_command(command.split(' '))[1], expected_command) + + def test_cli_set_env_colors(self): + if pygments.__version__.startswith('2.3.'): + env = { + '': { + Name.Tag: 'bold #ansidarkblue', + Keyword: '#ansidarkgray', + Number: '#ansipurple', + String: '#ansidarkgreen' + }, + ' ': { + Name.Tag: 'bold #ansidarkblue', + Keyword: '#ansidarkgray', + Number: '#ansipurple', + String: '#ansidarkgreen' + }, + 'default,default,default,default': { + Name.Tag: 'bold #ansidarkblue', + Keyword: '#ansidarkgray', + Number: '#ansipurple', + String: '#ansidarkgreen' + }, + 'red,red,red,red': { + Name.Tag: 'bold #ansidarkred', + Keyword: '#ansidarkred', + Number: '#ansidarkred', + String: '#ansidarkred' + }, + 'red,red,yada,red': { + Name.Tag: 'bold #ansidarkblue', + Keyword: '#ansidarkgray', + Number: '#ansipurple', + String: '#ansidarkgreen' + }, + 'red,red,red': { + Name.Tag: 'bold #ansidarkblue', + Keyword: '#ansidarkgray', + Number: '#ansipurple', + String: '#ansidarkgreen' + }, + 'red,red,red,red,red,red': { + Name.Tag: 'bold #ansidarkblue', + Keyword: '#ansidarkgray', + Number: '#ansipurple', + String: '#ansidarkgreen' + } + } + else: + env = { + '': { + Name.Tag: 'bold ansiblue', + Keyword: 'ansibrightblack', + Number: 'ansimagenta', + String: 'ansigreen' + }, + ' ': { + Name.Tag: 'bold ansiblue', + Keyword: 'ansibrightblack', + Number: 'ansimagenta', + String: 'ansigreen' + }, + 'default,default,default,default': { + Name.Tag: 'bold ansiblue', + Keyword: 'ansibrightblack', + Number: 'ansimagenta', + String: 'ansigreen' + }, + 'red,red,red,red': { + Name.Tag: 'bold ansired', + Keyword: 'ansired', + Number: 'ansired', + String: 'ansired' + }, + 'red,red,yada,red': { + Name.Tag: 'bold ansiblue', + Keyword: 'ansibrightblack', + Number: 'ansimagenta', + String: 'ansigreen' + }, + 'red,red,red': { + Name.Tag: 'bold ansiblue', + Keyword: 'ansibrightblack', + Number: 'ansimagenta', + String: 'ansigreen' + }, + 'red,red,red,red,red,red': { + Name.Tag: 'bold ansiblue', + Keyword: 'ansibrightblack', + Number: 'ansimagenta', + String: 'ansigreen' + } + } + + for jc_colors, expected_colors in env.items(): + self.assertEqual(jc.cli.set_env_colors(jc_colors), expected_colors)