def test_doc_examples(): env = { 'mnt_info': Mount(context_wrap(MOUNT_DOC)), 'proc_mnt_info': ProcMounts(context_wrap(PROC_MOUNT_DOC)), 'mounts': Mount(context_wrap(MOUNT_DOC)) } failed, total = doctest.testmod(mount, globs=env) assert failed == 0
def test_mount_with_special_mnt_point(): results = Mount(context_wrap(MOUNT_DATA_WITH_SPECIAL_MNT_POINT)) assert len(results) == 6 sr0 = results.search(filesystem='/dev/sr0')[0] sr1 = results.search(filesystem='/dev/sr1')[0] assert sr0['mount_point'] == '/run/media/root/VMware Tools' assert sr1['mount_point'] == '/run/media/Disk on C type NFS' assert sr0.get('mount_label') == '[VMware Tools]' assert sr1.get('mount_label') == '[C type Disk]' assert results['/run/media/Disk on C type NFS'].get( 'mount_label') == '[C type Disk]'
def test_mount_exception2(): with pytest.raises(ParseException) as exc: Mount(context_wrap(MOUNT_WITHOUT_ROOT)) assert "Input for mount must contain '/' mount point." in str(exc)
def test_mount_exception1(): # Test parse failure with pytest.raises(ParseException) as pe: Mount(context_wrap(MOUNT_ERR_DATA)) assert 'Unable to parse' in str(pe.value)
def test_mount(): results = Mount(context_wrap(MOUNT_DATA)) assert results is not None assert len(results) == 13 sr0 = results.search(filesystem='/dev/sr0')[0] sda1 = results.search(filesystem='/dev/sda1')[0] assert sr0 is not None assert sr0['mount_point'] == '/run/media/root/VMware Tools' # test get method assert sr0.get('mount_point') == '/run/media/root/VMware Tools' assert sr0.get('does not exist', 'failure') == 'failure' assert sr0['mount_type'] == 'iso9660' assert 'ro' in sr0['mount_options'] assert sr0.mount_options.ro assert 'relatime' in sr0['mount_options'] assert sr0['mount_options']['uhelper'] == 'udisks2' assert sr0['mount_label'] == '[VMware Tools]' assert sda1 is not None assert sda1['mount_point'] == '/boot' assert sda1['mount_type'] == 'ext4' assert 'rw' in sda1['mount_options'] assert 'seclabel' in sda1['mount_options'] assert sda1['mount_options']['data'] == 'ordered' assert sda1.mount_options.data == 'ordered' assert 'mount_label' not in sda1 # Test iteration for mnt in results: assert hasattr(mnt, 'filesystem') assert hasattr(mnt, 'mount_point') assert hasattr(mnt, 'mount_type') assert hasattr(mnt, 'mount_options') # Test getitem assert results[12] == sr0 assert results['/etc/shadow'] == results[11] # Index only by string or number with pytest.raises(TypeError) as exc: assert results[set([1, 2, 3])] is None assert "Mounts can only be indexed by mount string or line number" in str( exc) # Test mounts dictionary assert results.mounts['/run/media/root/VMware Tools'] == sr0 # Test get_dir assert results.get_dir('/run/media/root/VMware Tools') == sr0 assert results.get_dir('/boot/grub2/grub.cfg') == sda1 assert results.get_dir('/etc') == results['/'] assert results.get_dir('relative/paths/fail') is None # Test search assert results.search(filesystem='/dev/sr0') == [sr0] assert results.search(mount_type='tmpfs') == [ results.rows[n] for n in (0, 7, 8) ] assert results.search(mount_options__contains='seclabel') == [ results.rows[n] for n in (0, 1, 3, 4, 5, 7, 8, 11) ]