1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-06-17 00:07:37 +02:00
Files
jc/tests/test_asciitable_m.py

223 lines
9.3 KiB
Python
Raw Normal View History

2022-03-21 17:57:14 -07:00
import os
import unittest
import jc.parsers.asciitable_m
THIS_DIR = os.path.dirname(os.path.abspath(__file__))
class MyTests(unittest.TestCase):
def test_asciitable_m_nodata(self):
"""
Test 'asciitable_m' with no data
"""
self.assertEqual(jc.parsers.asciitable_m.parse('', quiet=True), [])
def test_asciitable_m_pure_ascii(self):
"""
Test 'asciitable_m' with a pure ASCII table
"""
input = '''
+========+========+========+========+========+========+========+
| type | tota | used | fr ee | shar | buff | avai |
| | l | | | ed | _cac | labl |
| | | | | | he | e |
+========+========+========+========+========+========+========+
| Mem | 3861 | 2228 | 3364 | 1183 | 2743 | 3389 |
| | 332 | 20 | 176 | 2 | 36 | 588 |
+--------+--------+--------+--------+--------+--------+--------+
| | | | | | | |
| | | | | test 2 | | |
+--------+--------+--------+--------+--------+--------+--------+
| last | last | last | ab cde | | | final |
+========+========+========+========+========+========+========+
'''
expected = [
{
"type": "Mem",
"tota_l": "3861\n332",
"used": "2228\n20",
"fr_ee": "3364\n176",
"shar_ed": "1183\n2",
"buff_cac_he": "2743\n36",
"avai_labl_e": "3389\n588"
},
{
"type": "",
"tota_l": "",
"used": "",
"fr_ee": "",
"shar_ed": "test 2",
"buff_cac_he": "",
"avai_labl_e": ""
},
{
"type": "last",
"tota_l": "last",
"used": "last",
"fr_ee": "ab cde",
"shar_ed": "",
"buff_cac_he": "",
"avai_labl_e": "final"
}
]
self.assertEqual(jc.parsers.asciitable_m.parse(input, quiet=True), expected)
def test_asciitable_m_unicode(self):
"""
Test 'asciitable_m' with a unicode table
"""
input = '''
type tota used fr ee shar buff avai
l ed _cac labl
he e
Mem 3861 2228 3364 1183 2743 3389
332 20 176 2 36 588
Swap 2097 0 2097
148 148
kb
last last last ab cde final
'''
expected = [
{
"type": "Mem",
"tota_l": "3861\n332",
"used": "2228\n20",
"fr_ee": "3364\n176",
"shar_ed": "1183\n2",
"buff_cac_he": "2743\n36",
"avai_labl_e": "3389\n588"
},
{
"type": "Swap",
"tota_l": "2097\n148",
"used": "0",
"fr_ee": "2097\n148\nkb",
"shar_ed": "",
"buff_cac_he": "",
"avai_labl_e": ""
},
{
"type": "last",
"tota_l": "last",
"used": "last",
"fr_ee": "ab cde",
"shar_ed": "",
"buff_cac_he": "",
"avai_labl_e": "final"
}
]
self.assertEqual(jc.parsers.asciitable_m.parse(input, quiet=True), expected)
def test_asciitable_m_pure_ascii_extra_spaces(self):
"""
Test 'asciitable_m' with a pure ASCII table that has heading and
trailing spaces and newlines.
"""
input = '''
+========+========+========+========+========+========+========+
| type | tota | used | fr ee | shar | buff | avai
| | l | | | ed | _cac | labl
| | | | | | he | e |
+========+========+========+========+========+========+========+
| Mem | 3861 | 2228 | 3364 | 1183 | 2743 | 3389 |
| | 332 | 20 | 176 | 2 | 36 | 588 |
+--------+--------+--------+--------+--------+--------+--------+
| | | | | | | |
| | | | | test 2 | | |
+--------+--------+--------+--------+--------+--------+--------+
| last | last | last | ab cde | | | final
+========+========+========+========+========+========+========+
'''
expected = [
{
"type": "Mem",
"tota_l": "3861\n332",
"used": "2228\n20",
"fr_ee": "3364\n176",
"shar_ed": "1183\n2",
"buff_cac_he": "2743\n36",
"avai_labl_e": "3389\n588"
},
{
"type": "",
"tota_l": "",
"used": "",
"fr_ee": "",
"shar_ed": "test 2",
"buff_cac_he": "",
"avai_labl_e": ""
},
{
"type": "last",
"tota_l": "last",
"used": "last",
"fr_ee": "ab cde",
"shar_ed": "",
"buff_cac_he": "",
"avai_labl_e": "final"
}
]
self.assertEqual(jc.parsers.asciitable_m.parse(input, quiet=True), expected)
def test_asciitable_m_unicode_extra_spaces(self):
"""
Test 'asciitable_m' with a pure ASCII table that has heading and
trailing spaces and newlines.
"""
input = '''
type tota used free shar buff avai
l ed _cac labl
he e
Mem 3861 2228 3364 1183 2743 3389
332 20 176 2 36 588
Swap 2097 0 2097
148 148
'''
expected = [
{
"type": "Mem",
"tota_l": "3861\n332",
"used": "2228\n20",
"free": "3364\n176",
"shar_ed": "1183\n2",
"buff_cac_he": "2743\n36",
"avai_labl_e": "3389\n588"
},
{
"type": "Swap",
"tota_l": "2097\n148",
"used": "0",
"free": "2097\n148",
"shar_ed": "",
"buff_cac_he": "",
"avai_labl_e": ""
}
]
self.assertEqual(jc.parsers.asciitable_m.parse(input, quiet=True), expected)
if __name__ == '__main__':
unittest.main()