2019-10-29 07:55:26 -07:00
import os
2019-11-08 17:08:41 -08:00
import json
2019-10-29 07:55:26 -07:00
import unittest
import jc.parsers.lsblk
THIS_DIR = os . path . dirname ( os . path . abspath ( __file__ ))
class MyTests ( unittest . TestCase ):
def setUp ( self ):
2019-11-08 17:08:41 -08:00
# input
2020-03-04 19:30:30 -08:00
with open ( os . path . join ( THIS_DIR , os . pardir , 'tests/fixtures/centos-7.7/lsblk.out' ), 'r' , encoding = 'utf-8' ) as f :
2019-10-29 07:55:26 -07:00
self . centos_7_7_lsblk = f . read ()
2020-03-04 19:30:30 -08:00
with open ( os . path . join ( THIS_DIR , os . pardir , 'tests/fixtures/ubuntu-18.04/lsblk.out' ), 'r' , encoding = 'utf-8' ) as f :
2019-10-29 07:55:26 -07:00
self . ubuntu_18_4_lsblk = f . read ()
2020-03-04 19:30:30 -08:00
with open ( os . path . join ( THIS_DIR , os . pardir , 'tests/fixtures/centos-7.7/lsblk-allcols.out' ), 'r' , encoding = 'utf-8' ) as f :
2019-11-11 13:00:17 -08:00
self . centos_7_7_lsblk_allcols = f . read ()
2020-03-04 19:30:30 -08:00
with open ( os . path . join ( THIS_DIR , os . pardir , 'tests/fixtures/ubuntu-18.04/lsblk-allcols.out' ), 'r' , encoding = 'utf-8' ) as f :
2019-11-11 13:00:17 -08:00
self . ubuntu_18_4_lsblk_allcols = f . read ()
2019-11-08 17:08:41 -08:00
# output
2020-03-04 19:30:30 -08:00
with open ( os . path . join ( THIS_DIR , os . pardir , 'tests/fixtures/centos-7.7/lsblk.json' ), 'r' , encoding = 'utf-8' ) as f :
2019-11-08 17:08:41 -08:00
self . centos_7_7_lsblk_json = json . loads ( f . read ())
2020-03-04 19:30:30 -08:00
with open ( os . path . join ( THIS_DIR , os . pardir , 'tests/fixtures/ubuntu-18.04/lsblk.json' ), 'r' , encoding = 'utf-8' ) as f :
2019-11-08 17:08:41 -08:00
self . ubuntu_18_4_lsblk_json = json . loads ( f . read ())
2020-03-04 19:30:30 -08:00
with open ( os . path . join ( THIS_DIR , os . pardir , 'tests/fixtures/centos-7.7/lsblk-allcols.json' ), 'r' , encoding = 'utf-8' ) as f :
2019-11-11 13:00:17 -08:00
self . centos_7_7_lsblk_allcols_json = json . loads ( f . read ())
2020-03-04 19:30:30 -08:00
with open ( os . path . join ( THIS_DIR , os . pardir , 'tests/fixtures/ubuntu-18.04/lsblk-allcols.json' ), 'r' , encoding = 'utf-8' ) as f :
2019-11-11 13:00:17 -08:00
self . ubuntu_18_4_lsblk_allcols_json = json . loads ( f . read ())
2020-06-11 17:09:51 -07:00
def test_lsblk_nodata ( self ):
"""
Test 'lsblk' with no data
"""
self . assertEqual ( jc . parsers . lsblk . parse ( '' , quiet = True ), [])
2019-10-29 07:55:26 -07:00
def test_lsblk_centos_7_7 ( self ):
"""
Test 'lsblk' on Centos 7.7
"""
2019-11-08 17:08:41 -08:00
self . assertEqual ( jc . parsers . lsblk . parse ( self . centos_7_7_lsblk , quiet = True ), self . centos_7_7_lsblk_json )
2019-10-29 07:55:26 -07:00
def test_lsblk_ubuntu_18_4 ( self ):
"""
Test 'lsblk' on Ubuntu 18.4
"""
2019-11-08 17:08:41 -08:00
self . assertEqual ( jc . parsers . lsblk . parse ( self . ubuntu_18_4_lsblk , quiet = True ), self . ubuntu_18_4_lsblk_json )
2019-10-29 07:55:26 -07:00
2019-11-11 13:00:17 -08:00
def test_lsblk_allcols_centos_7_7 ( self ):
"""
Test 'lsblk -o +KNAME,FSTYPE,LABEL,UUID,PARTLABEL,PARTUUID,RA,MODEL,SERIAL,STATE,OWNER,GROUP,MODE,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,ROTA,SCHED,RQ-SIZE,DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO,WSAME,WWN,RAND,PKNAME,HCTL,TRAN,REV,VENDOR' on Centos 7.7
"""
self . assertEqual ( jc . parsers . lsblk . parse ( self . centos_7_7_lsblk_allcols , quiet = True ), self . centos_7_7_lsblk_allcols_json )
def test_lsblk_allcols_ubuntu_18_4 ( self ):
"""
Test 'lsblk -o +KNAME,FSTYPE,LABEL,UUID,PARTLABEL,PARTUUID,RA,MODEL,SERIAL,STATE,OWNER,GROUP,MODE,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,ROTA,SCHED,RQ-SIZE,DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO,WSAME,WWN,RAND,PKNAME,HCTL,TRAN,REV,VENDOR' on Ubuntu 18.4
"""
self . assertEqual ( jc . parsers . lsblk . parse ( self . ubuntu_18_4_lsblk_allcols , quiet = True ), self . ubuntu_18_4_lsblk_allcols_json )
2019-10-29 07:55:26 -07:00
if __name__ == '__main__' :
unittest . main ()