From da4e3670b1f400c3bfb8cf1df08ca94ebc3e02d1 Mon Sep 17 00:00:00 2001 From: papparapa Date: Tue, 20 Sep 2022 13:02:14 +0000 Subject: [PATCH] fix free -w parse --- jc/parsers/free.py | 2 +- tests/fixtures/centos-7.7/free-w.json | 1 + tests/fixtures/centos-7.7/free-w.out | 3 +++ tests/fixtures/ubuntu-18.04/free-w.json | 1 + tests/fixtures/ubuntu-18.04/free-w.out | 3 +++ tests/test_free.py | 24 ++++++++++++++++++++++++ 6 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 tests/fixtures/centos-7.7/free-w.json create mode 100644 tests/fixtures/centos-7.7/free-w.out create mode 100644 tests/fixtures/ubuntu-18.04/free-w.json create mode 100644 tests/fixtures/ubuntu-18.04/free-w.out diff --git a/jc/parsers/free.py b/jc/parsers/free.py index ec6e5844..d54beab8 100644 --- a/jc/parsers/free.py +++ b/jc/parsers/free.py @@ -96,7 +96,7 @@ def _process(proc_data): List of Dictionaries. Structured data to conform to the schema. """ - int_list = {'total', 'used', 'free', 'shared', 'buff_cache', 'available'} + int_list = {'total', 'used', 'free', 'shared', 'buff_cache', 'buffers', 'cache', 'available'} for entry in proc_data: for key in entry: diff --git a/tests/fixtures/centos-7.7/free-w.json b/tests/fixtures/centos-7.7/free-w.json new file mode 100644 index 00000000..8992dbdb --- /dev/null +++ b/tests/fixtures/centos-7.7/free-w.json @@ -0,0 +1 @@ +[{"type": "Mem", "total": 8053804, "used": 1262704, "free": 5830864, "shared": 60576, "buffers": 61596, "cache": 898640, "available": 6483996}, {"type": "Swap", "total": 2097152, "used": 0, "free": 2097152}] diff --git a/tests/fixtures/centos-7.7/free-w.out b/tests/fixtures/centos-7.7/free-w.out new file mode 100644 index 00000000..bdb41d53 --- /dev/null +++ b/tests/fixtures/centos-7.7/free-w.out @@ -0,0 +1,3 @@ + total used free shared buffers cache available +Mem: 8053804 1262704 5830864 60576 61596 898640 6483996 +Swap: 2097152 0 2097152 diff --git a/tests/fixtures/ubuntu-18.04/free-w.json b/tests/fixtures/ubuntu-18.04/free-w.json new file mode 100644 index 00000000..8992dbdb --- /dev/null +++ b/tests/fixtures/ubuntu-18.04/free-w.json @@ -0,0 +1 @@ +[{"type": "Mem", "total": 8053804, "used": 1262704, "free": 5830864, "shared": 60576, "buffers": 61596, "cache": 898640, "available": 6483996}, {"type": "Swap", "total": 2097152, "used": 0, "free": 2097152}] diff --git a/tests/fixtures/ubuntu-18.04/free-w.out b/tests/fixtures/ubuntu-18.04/free-w.out new file mode 100644 index 00000000..bdb41d53 --- /dev/null +++ b/tests/fixtures/ubuntu-18.04/free-w.out @@ -0,0 +1,3 @@ + total used free shared buffers cache available +Mem: 8053804 1262704 5830864 60576 61596 898640 6483996 +Swap: 2097152 0 2097152 diff --git a/tests/test_free.py b/tests/test_free.py index 40a031e4..0bfb8f47 100644 --- a/tests/test_free.py +++ b/tests/test_free.py @@ -22,6 +22,12 @@ class MyTests(unittest.TestCase): with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/free-h.out'), 'r', encoding='utf-8') as f: self.ubuntu_18_4_free_h = f.read() + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/free-w.out'), 'r', encoding='utf-8') as f: + self.centos_7_7_free_w = f.read() + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/free-w.out'), 'r', encoding='utf-8') as f: + self.ubuntu_18_4_free_w = f.read() + # output with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/free.json'), 'r', encoding='utf-8') as f: self.centos_7_7_free_json = json.loads(f.read()) @@ -35,6 +41,12 @@ class MyTests(unittest.TestCase): with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/free-h.json'), 'r', encoding='utf-8') as f: self.ubuntu_18_4_free_h_json = json.loads(f.read()) + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/free-w.json'), 'r', encoding='utf-8') as f: + self.centos_7_7_free_w_json = json.loads(f.read()) + + with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/free-w.json'), 'r', encoding='utf-8') as f: + self.ubuntu_18_4_free_w_json = json.loads(f.read()) + def test_free_nodata(self): """ Test 'free' with no data @@ -65,6 +77,18 @@ class MyTests(unittest.TestCase): """ self.assertEqual(jc.parsers.free.parse(self.ubuntu_18_4_free_h, quiet=True), self.ubuntu_18_4_free_h_json) + def test_free_h_centos_7_7(self): + """ + Test 'free -w' on Centos 7.7 + """ + self.assertEqual(jc.parsers.free.parse(self.centos_7_7_free_w, quiet=True), self.centos_7_7_free_w_json) + + def test_free_h_ubuntu_18_4(self): + """ + Test 'free -w' on Ubuntu 18.4 + """ + self.assertEqual(jc.parsers.free.parse(self.ubuntu_18_4_free_w, quiet=True), self.ubuntu_18_4_free_w_json) + if __name__ == '__main__': unittest.main()