2020-03-08 13:35:01 -07:00
|
|
|
import unittest
|
2020-07-10 12:23:48 -07:00
|
|
|
import pygments
|
|
|
|
from pygments.token import (Name, Number, String, Keyword)
|
2020-03-08 13:35:01 -07:00
|
|
|
import jc.cli
|
|
|
|
|
|
|
|
|
|
|
|
class MyTests(unittest.TestCase):
|
2020-07-10 12:23:48 -07:00
|
|
|
def test_cli_generate_magic_command(self):
|
2020-03-08 13:35:01 -07:00
|
|
|
commands = {
|
2020-03-08 14:02:54 -07:00
|
|
|
'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',
|
|
|
|
'jc -p pip list': 'pip list | jc --pip-list -p',
|
|
|
|
'jc -p pip3 list': 'pip3 list | jc --pip-list -p',
|
|
|
|
'jc -p pip show jc': 'pip show jc | jc --pip-show -p',
|
|
|
|
'jc -p pip3 show jc': 'pip3 show jc | jc --pip-show -p',
|
|
|
|
'jc -prd last': 'last | jc --last -prd',
|
|
|
|
'jc -prd lastb': 'lastb | jc --last -prd',
|
2020-03-11 09:21:14 -07:00
|
|
|
'jc -p airport -I': 'airport -I | jc --airport -p',
|
|
|
|
'jc -p -r airport -I': 'airport -I | jc --airport -pr',
|
|
|
|
'jc -prd airport -I': 'airport -I | jc --airport -prd',
|
2020-03-08 14:02:54 -07:00
|
|
|
'jc -p nonexistent command': 'nonexistent command',
|
|
|
|
'jc -ap': None
|
2020-03-08 13:35:01 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
for command, expected_command in commands.items():
|
2020-03-08 14:02:54 -07:00
|
|
|
self.assertEqual(jc.cli.generate_magic_command(command.split(' '))[1], expected_command)
|
2020-07-10 12:23:48 -07:00
|
|
|
|
|
|
|
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)
|