mirror of
https://github.com/kellyjonbrazil/jc.git
synced 2025-08-08 22:36:48 +02:00
add iwconfig raw vs process + tests
This commit is contained in:
@ -56,12 +56,16 @@ def _process(proc_data: List[JSONDictType]) -> List[JSONDictType]:
|
||||
|
||||
List of Dictionaries. Structured to conform to the schema.
|
||||
"""
|
||||
int_list = {
|
||||
'flags', 'mtu', 'ipv6_mask', 'rx_packets', 'rx_bytes', 'rx_errors', 'rx_dropped',
|
||||
'rx_overruns', 'rx_frame', 'tx_packets', 'tx_bytes', 'tx_errors', 'tx_dropped',
|
||||
'tx_overruns', 'tx_carrier', 'tx_collisions', 'metric', 'nd6_options', 'lane'
|
||||
}
|
||||
float_list = {'rx_power_mw', 'rx_power_dbm', 'tx_bias_ma'}
|
||||
int_list = ['signal_level', 'rx_invalid_nwid', 'rx_invalid_crypt', 'rx_invalid_frag',
|
||||
'tx_excessive_retries', 'invalid_misc', 'missed_beacon', 'tx_power', 'retry_short_limit']
|
||||
float_list = ['frequency', 'bit_rate']
|
||||
bool_list = ['rts_threshold', 'fragment_threshold', 'power_management']
|
||||
|
||||
|
||||
proc_data = [ { key: int(value) if key in int_list else value for key, value in proc_data_item.items() } for proc_data_item in proc_data ]
|
||||
proc_data = [ { key: float(value) if key in float_list else value for key, value in proc_data_item.items() } for proc_data_item in proc_data ]
|
||||
proc_data = [ { key: value == 'on' if key in bool_list else value for key, value in proc_data_item .items() } for proc_data_item in proc_data ]
|
||||
|
||||
return proc_data
|
||||
|
||||
def parse(
|
||||
|
28
tests/fixtures/ubuntu-20.10/iwconfig-raw.json
vendored
Normal file
28
tests/fixtures/ubuntu-20.10/iwconfig-raw.json
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
[
|
||||
{
|
||||
"name": "wlp5s0",
|
||||
"protocol": "IEEE 802.11",
|
||||
"essid": "BLABLABLA",
|
||||
"mode": "Managed",
|
||||
"frequency": "5.18",
|
||||
"frequency_unit": "GHz",
|
||||
"access_point": "E6:63:DA:16:50:BF",
|
||||
"bit_rate": "6",
|
||||
"bit_rate_unit": "Mb/s",
|
||||
"tx_power": "30",
|
||||
"tx_power_unit": "dBm",
|
||||
"retry_short_limit": "7",
|
||||
"rts_threshold": "off",
|
||||
"fragment_threshold": "off",
|
||||
"power_management": "on",
|
||||
"link_quality": "58/70",
|
||||
"signal_level": "-52",
|
||||
"signal_level_unit": "dBm",
|
||||
"rx_invalid_nwid": "0",
|
||||
"rx_invalid_crypt": "0",
|
||||
"rx_invalid_frag": "0",
|
||||
"tx_excessive_retries": "0",
|
||||
"invalid_misc": "1766",
|
||||
"missed_beacon": "0"
|
||||
}
|
||||
]
|
28
tests/fixtures/ubuntu-20.10/iwconfig.json
vendored
28
tests/fixtures/ubuntu-20.10/iwconfig.json
vendored
@ -4,25 +4,25 @@
|
||||
"protocol": "IEEE 802.11",
|
||||
"essid": "BLABLABLA",
|
||||
"mode": "Managed",
|
||||
"frequency": "5.18",
|
||||
"frequency": 5.18,
|
||||
"frequency_unit": "GHz",
|
||||
"access_point": "E6:63:DA:16:50:BF",
|
||||
"bit_rate": "6",
|
||||
"bit_rate": 6.0,
|
||||
"bit_rate_unit": "Mb/s",
|
||||
"tx_power": "30",
|
||||
"tx_power": 30,
|
||||
"tx_power_unit": "dBm",
|
||||
"retry_short_limit": "7",
|
||||
"rts_threshold": "off",
|
||||
"fragment_threshold": "off",
|
||||
"power_management": "on",
|
||||
"retry_short_limit": 7,
|
||||
"rts_threshold": false,
|
||||
"fragment_threshold": false,
|
||||
"power_management": true,
|
||||
"link_quality": "58/70",
|
||||
"signal_level": "-52",
|
||||
"signal_level": -52,
|
||||
"signal_level_unit": "dBm",
|
||||
"rx_invalid_nwid": "0",
|
||||
"rx_invalid_crypt": "0",
|
||||
"rx_invalid_frag": "0",
|
||||
"tx_excessive_retries": "0",
|
||||
"invalid_misc": "1766",
|
||||
"missed_beacon": "0"
|
||||
"rx_invalid_nwid": 0,
|
||||
"rx_invalid_crypt": 0,
|
||||
"rx_invalid_frag": 0,
|
||||
"tx_excessive_retries": 0,
|
||||
"invalid_misc": 1766,
|
||||
"missed_beacon": 0
|
||||
}
|
||||
]
|
@ -16,18 +16,27 @@ class iwconfigTests(unittest.TestCase):
|
||||
with open(os.path.join(THIS_DIR, 'fixtures/ubuntu-20.10/iwconfig.json'), 'r', encoding='utf-8') as f:
|
||||
ubuntu_20_10_iwconfig_json= json.loads(f.read())
|
||||
|
||||
with open(os.path.join(THIS_DIR, 'fixtures/ubuntu-20.10/iwconfig-raw.json'), 'r', encoding='utf-8') as f:
|
||||
ubuntu_20_10_iwconfig_raw_json= json.loads(f.read())
|
||||
|
||||
|
||||
def test_iwconfig_nodata(self):
|
||||
"""
|
||||
Test 'iwconfig' with no data
|
||||
"""
|
||||
self.assertEqual(jc.parsers.iwconfig.parse('', quiet=True), [])
|
||||
|
||||
def test_iwconfig_ubuntu_20_04(self):
|
||||
"""
|
||||
Test 'iwconfig' raw on Ubuntu 20.10
|
||||
"""
|
||||
self.assertEqual(jc.parsers.iwconfig.parse(self.ubuntu_20_10_iwconfig, quiet=True, raw=True), self.ubuntu_20_10_iwconfig_raw_json)
|
||||
|
||||
def test_iwconfig_ubuntu_20_04(self):
|
||||
"""
|
||||
Test 'iwconfig' on Ubuntu 20.10
|
||||
"""
|
||||
self.assertEqual(jc.parsers.iwconfig.parse(self.ubuntu_20_10_iwconfig, quiet=True), self.ubuntu_20_10_iwconfig_json)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
Reference in New Issue
Block a user