|
4 | 4 | import pytest |
5 | 5 |
|
6 | 6 | from leapp import reporting |
7 | | -from leapp.libraries.actor.checkmountoptions import check_mount_options |
| 7 | +from leapp.libraries.actor.checkmountoptions import check_mount_options, check_netdev_mounts |
8 | 8 | from leapp.libraries.common.testutils import create_report_mocked, CurrentActorMocked |
9 | 9 | from leapp.libraries.stdlib import api |
10 | 10 | from leapp.models import FstabEntry, MountEntry, StorageInfo |
@@ -59,3 +59,42 @@ def test_var_mounted_with_noexec_is_detected(monkeypatch, fstab_entries, mounts, |
59 | 59 | check_mount_options() |
60 | 60 |
|
61 | 61 | assert bool(created_reports.called) == should_inhibit |
| 62 | + |
| 63 | + |
| 64 | +def _make_fstab_entry(fs_spec, fs_file, fs_mntops, fs_vfstype='ext4'): |
| 65 | + return FstabEntry(fs_spec=fs_spec, fs_file=fs_file, fs_vfstype=fs_vfstype, |
| 66 | + fs_mntops=fs_mntops, fs_freq='0', fs_passno='0') |
| 67 | + |
| 68 | + |
| 69 | +@pytest.mark.parametrize( |
| 70 | + ('fstab_mntops', 'initram_network_envar', 'should_inhibit'), |
| 71 | + [ |
| 72 | + ('_netdev,defaults', None, True), |
| 73 | + ('defaults,_netdev', None, True), |
| 74 | + ('_netdev', None, True), |
| 75 | + ('defaults', None, False), |
| 76 | + ('netdev,defaults', None, False), |
| 77 | + ('_netdev,defaults', '1', False), |
| 78 | + ('_netdev,nofail', None, False), |
| 79 | + ('nofail,_netdev,defaults', None, False), |
| 80 | + ('_netdev,nofail,defaults', None, False), |
| 81 | + ] |
| 82 | +) |
| 83 | +def test_netdev_in_fstab_is_detected(monkeypatch, fstab_mntops, initram_network_envar, should_inhibit): |
| 84 | + fstab_entries = [ |
| 85 | + _make_fstab_entry('UUID=abc123', '/var/lib/psa/dumps', fstab_mntops), |
| 86 | + _make_fstab_entry('/dev/sda1', '/', 'defaults'), |
| 87 | + ] |
| 88 | + storage_info = StorageInfo(fstab=fstab_entries) |
| 89 | + |
| 90 | + envars = {'LEAPP_DEVEL_INITRAM_NETWORK': initram_network_envar} if initram_network_envar else {} |
| 91 | + created_reports = create_report_mocked() |
| 92 | + monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(envars=envars)) |
| 93 | + monkeypatch.setattr(reporting, 'create_report', created_reports) |
| 94 | + |
| 95 | + check_netdev_mounts(storage_info) |
| 96 | + |
| 97 | + assert bool(created_reports.called) == should_inhibit |
| 98 | + if should_inhibit: |
| 99 | + assert '_netdev' in created_reports.report_fields['title'] |
| 100 | + assert 'UUID=abc123' in created_reports.report_fields['summary'] |
0 commit comments