def test_fail_grubenv_to_file(monkeypatch):
    monkeypatch.setattr(api, 'consume', lambda x: iter([HybridImage()]))
    monkeypatch.setattr(grubenvtofile, 'run', run_mocked(raise_err=True))
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    grubenvtofile.grubenv_to_file()
    assert grubenvtofile.run.called == 1
    assert api.current_logger.warnmsg[0].startswith('Could not unlink')
def test_no_network_renaming(monkeypatch):
    """
    This should cover OAMG-4243.
    """
    # this mock should be needed, as this function should be called, but just
    # for a check..
    monkeypatch.setattr(persistentnetnamesconfig, 'generate_link_file',
                        generate_link_file_mocked)

    interfaces = generate_interfaces(4)
    for i in range(4):
        interfaces[i].name = 'myinterface{}'.format(i)
    msgs = [PersistentNetNamesFacts(interfaces=interfaces)]
    interfaces[0].name = 'changedinterfacename0'
    msgs.append(PersistentNetNamesFactsInitramfs(interfaces=interfaces))
    mocked_actor = CurrentActorMocked(
        msgs=msgs, envars={'LEAPP_NO_NETWORK_RENAMING': '1'})
    monkeypatch.setattr(persistentnetnamesconfig.api, 'current_actor',
                        mocked_actor)
    monkeypatch.setattr(persistentnetnamesconfig.api, 'current_logger',
                        logger_mocked())
    monkeypatch.setattr(persistentnetnamesconfig.api, 'produce',
                        produce_mocked())
    persistentnetnamesconfig.process()

    ilog = 'Skipping handling of possibly renamed network interfaces: leapp executed with LEAPP_NO_NETWORK_RENAMING=1'
    assert ilog in persistentnetnamesconfig.api.current_logger.infomsg
    assert not persistentnetnamesconfig.api.produce.called
def test_remove_boot_files(monkeypatch):
    # BootContent message available
    def consume_message_mocked(*models):
        yield BootContent(kernel_path='/abc', initram_path='/def')

    monkeypatch.setattr('leapp.libraries.stdlib.api.consume',
                        consume_message_mocked)
    monkeypatch.setattr(removebootfiles, 'remove_file', remove_file_mocked())

    removebootfiles.remove_boot_files()

    assert removebootfiles.remove_file.files_to_remove == ['/abc', '/def']

    # No BootContent message available
    def consume_no_message_mocked(*models):
        yield None

    monkeypatch.setattr('leapp.libraries.stdlib.api.consume',
                        consume_no_message_mocked)
    monkeypatch.setattr(removebootfiles, 'remove_file', remove_file_mocked())
    monkeypatch.setattr('leapp.libraries.stdlib.api.current_logger',
                        logger_mocked())

    with pytest.raises(StopActorExecution):
        removebootfiles.remove_boot_files()

    assert removebootfiles.remove_file.called == 0
    assert any("Did not receive a message" in msg
               for msg in api.current_logger.warnmsg)
def test_bz_1899455_crash_iface(monkeypatch, current_actor_context, adjust_cwd):
    """
    Cover situation when network device is discovered on the src sys but not
    inside the upgrade environment.

    This typically happens when the network device needs specific drivers which
    are not present inside the upgrade initramfs. Usually it points to a missing
    actors that should influence the upgrade initramfs in a way the drivers are
    installed. In this situation, only correct thing we can do in this actor
    is print warning / report that we couldn't located particular devices so
    we cannot handle interface names related to this devices.
    """
    with open(os.path.join(CUR_DIR, 'files/crashed_ifaces.json')) as fp:
        json_msgs = json.load(fp)
    msgs = [
        PersistentNetNamesFacts.create(json_msgs["PersistentNetNamesFacts"]),
        PersistentNetNamesFactsInitramfs.create(json_msgs["PersistentNetNamesFactsInitramfs"]),
    ]
    monkeypatch.setattr(persistentnetnamesconfig, 'generate_link_file', generate_link_file_mocked)
    monkeypatch.setattr(persistentnetnamesconfig.api, 'current_actor', CurrentActorMocked(msgs=msgs))
    monkeypatch.setattr(persistentnetnamesconfig.api, 'current_logger', logger_mocked())
    monkeypatch.setattr(persistentnetnamesconfig.api, 'produce', produce_mocked())
    persistentnetnamesconfig.process()

    for prod_models in [RenamedInterfaces, InitrdIncludes]:
        any(isinstance(i, prod_models) for i in persistentnetnamesconfig.api.produce.model_instances)
    assert any(['Some network devices' in x for x in persistentnetnamesconfig.api.current_logger.warnmsg])
Beispiel #5
0
def test_consume_data(monkeypatch, raised, no_rhsm, testdata):
    # do not write never into testdata inside the test !!
    xfs = testdata.xfs
    custom_repofiles = testdata.custom_repofiles
    _exp_pkgs = {'dnf', 'dnf-command(config-manager)'}
    _exp_files = []

    def _get_pkgs(msg):
        if isinstance(msg, models.TargetUserSpacePreupgradeTasks):
            return msg.install_rpms
        return msg.packages

    def _get_files(msg):
        if isinstance(msg, models.TargetUserSpacePreupgradeTasks):
            return msg.copy_files
        return []

    def _cfiles2set(cfiles):
        return {(i.src, i.dst) for i in cfiles}

    if isinstance(testdata.pkg_msgs, list):
        for msg in testdata.pkg_msgs:
            _exp_pkgs.update(_get_pkgs(msg))
            _exp_files += _get_files(msg)
    else:
        _exp_pkgs.update(_get_pkgs(testdata.pkg_msgs))
        _exp_files += _get_files(testdata.pkg_msgs)
    mocked_consume = MockedConsume(testdata.pkg_msgs, testdata.rhsm_info,
                                   testdata.rhui_info, xfs, testdata.storage,
                                   custom_repofiles)

    monkeypatch.setattr(userspacegen.api, 'consume', mocked_consume)
    monkeypatch.setattr(userspacegen.api, 'current_logger', logger_mocked())
    monkeypatch.setattr(userspacegen.api, 'current_actor',
                        CurrentActorMocked(envars={'LEAPP_NO_RHSM': no_rhsm}))
    if not xfs:
        xfs = models.XFSPresence()
    if not custom_repofiles:
        custom_repofiles = []
    if not raised:
        result = userspacegen._InputData()
        assert result.packages == _exp_pkgs
        assert _cfiles2set(result.files) == _cfiles2set(_exp_files)
        assert result.rhsm_info == testdata.rhsm_info
        assert result.rhui_info == testdata.rhui_info
        assert result.xfs_info == xfs
        assert result.storage_info == testdata.storage
        assert result.custom_repofiles == custom_repofiles
        assert not userspacegen.api.current_logger.warnmsg
        assert not userspacegen.api.current_logger.errmsg
    else:
        with pytest.raises(raised[0]) as err:
            userspacegen._InputData()
        if isinstance(err.value, StopActorExecutionError):
            assert raised[1] in err.value.message
        else:
            assert userspacegen.api.current_logger.warnmsg
            assert any([
                raised[1] in x for x in userspacegen.api.current_logger.warnmsg
            ])
Beispiel #6
0
def test_enable_repos_skip_rhsm(monkeypatch):
    monkeypatch.setattr(api, 'current_actor',
                        CurrentActorMocked(envars={'LEAPP_NO_RHSM': '1'}))
    monkeypatch.setattr(enablerhsmtargetrepos, 'run', run_mocked())
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    enablerhsmtargetrepos.enable_rhsm_repos()
    assert not enablerhsmtargetrepos.run.called
    assert api.current_logger.dbgmsg
Beispiel #7
0
def test_inhibit_on_duplicate_repos_no_dups(monkeypatch):
    monkeypatch.setattr(reporting, 'create_report', create_report_mocked())
    monkeypatch.setattr(api, 'current_logger', logger_mocked())

    rhsm._inhibit_on_duplicate_repos([_gen_repofile("foo")])

    assert not api.current_logger.warnmsg
    assert reporting.create_report.called == 0
Beispiel #8
0
def test_non_ibmz_arch(monkeypatch, isfile):
    monkeypatch.setattr(scandasd.architecture, 'matches_architecture',
                        lambda dummy: False)
    monkeypatch.setattr(scandasd.api, 'current_logger', logger_mocked())
    monkeypatch.setattr(scandasd.api, 'produce', produce_mocked())
    monkeypatch.setattr(os.path, 'isfile', lambda dummy: isfile)
    scandasd.process()
    assert not scandasd.api.current_logger.warnmsg
    assert not scandasd.api.produce.called
Beispiel #9
0
def test_no_includes(monkeypatch):
    run_mocked = RunMocked()
    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(msgs=[]))
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    monkeypatch.setattr(targetinitramfsgenerator, 'run', run_mocked)

    targetinitramfsgenerator.process()
    assert NO_INCLUDE_MSG in api.current_logger.dbgmsg
    assert not run_mocked.called
def test_no_includes(monkeypatch):
    run_mocked = RunMocked()
    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(msgs=[]))
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    monkeypatch.setattr(initrdinclude, 'run', run_mocked)

    initrdinclude.process()
    assert "No additional files required to add into the initrd." in api.current_logger.dbgmsg
    assert not run_mocked.called
Beispiel #11
0
def test_setrelease_skip_rhsm(monkeypatch, product):
    commands_called, _ = not_isolated_actions()
    monkeypatch.setattr(api, 'current_actor',
                        CurrentActorMocked(envars={'LEAPP_NO_RHSM': '1'}))
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    monkeypatch.setattr(config, 'get_product_type', lambda dummy: product)
    # To make this work we need to re-apply the decorator, so it respects the environment variable
    monkeypatch.setattr(rhsm, 'set_release', rhsm.with_rhsm(rhsm.set_release))
    enablerhsmtargetrepos.set_rhsm_release()
    assert not commands_called
Beispiel #12
0
def test_device_no_grub_library(monkeypatch):
    run_mocked = RunMocked()
    monkeypatch.setattr(grub, 'run', run_mocked)
    monkeypatch.setattr(os, 'open', open_invalid)
    monkeypatch.setattr(os, 'read', read_mocked)
    monkeypatch.setattr(os, 'close', close_mocked)
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    result = grub.get_grub_device()
    assert grub.run.called == 2
    assert not result
Beispiel #13
0
def test_etc_releasever_neither(monkeypatch):
    mocked_report = create_report_mocked()
    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked())
    monkeypatch.setattr(reporting, 'create_report', mocked_report)
    monkeypatch.setattr(api, 'current_logger', logger_mocked())

    checketcreleasever.process()

    assert not reporting.create_report.called
    assert api.current_logger.dbgmsg
def test_remove_file_that_does_not_exist(monkeypatch):
    def remove_mocked(filepath):
        raise OSError

    monkeypatch.setattr('os.remove', remove_mocked)
    monkeypatch.setattr(api, 'current_logger', logger_mocked())

    removebootfiles.remove_file('/filepath')

    assert any("Could not remove /filepath" in msg
               for msg in api.current_logger.errmsg)
def test_newest_kernel(monkeypatch):
    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(kernel='3.10.0-1234.21.1.el7.x86_64'))
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    monkeypatch.setattr(api, 'consume', mocked_consume(versioned_kernel_pkgs))
    monkeypatch.setattr(reporting, 'create_report', create_report_mocked())
    checkinstalledkernels.process()
    assert not reporting.create_report.called

    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(kernel='3.10.0-456.43.1.el7.x86_64'))
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    monkeypatch.setattr(api, 'consume', mocked_consume(versioned_kernel_pkgs))
    monkeypatch.setattr(reporting, 'create_report', create_report_mocked())
    checkinstalledkernels.process()
    assert reporting.create_report.called
    assert reporting.create_report.report_fields['title'] == 'Newest installed kernel not in use'

    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(kernel='3.10.0-789.35.2.el7.x86_64'))
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    monkeypatch.setattr(api, 'consume', mocked_consume(versioned_kernel_pkgs))
    monkeypatch.setattr(reporting, 'create_report', create_report_mocked())
    checkinstalledkernels.process()
    assert reporting.create_report.called
    assert reporting.create_report.report_fields['title'] == 'Newest installed kernel not in use'

    # put the kernel in the middle of the list so that its position doesn't guarantee its rank
    versioned_kernel_pkgs.insert(2, ('kernel', '4.14.0', 115))

    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(kernel='4.14.0-115.29.1.el7a.ppc64le'))
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    monkeypatch.setattr(api, 'consume', mocked_consume(versioned_kernel_pkgs))
    monkeypatch.setattr(reporting, 'create_report', create_report_mocked())
    checkinstalledkernels.process()
    assert not reporting.create_report.called

    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(kernel='3.10.0-1234.21.1.el7.x86_64'))
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    monkeypatch.setattr(api, 'consume', mocked_consume(versioned_kernel_pkgs))
    monkeypatch.setattr(reporting, 'create_report', create_report_mocked())
    checkinstalledkernels.process()
    assert reporting.create_report.called
    assert reporting.create_report.report_fields['title'] == 'Newest installed kernel not in use'
Beispiel #16
0
def test_get_grub_device_fail_library(monkeypatch):
    run_mocked = RunMocked(raise_err=True)
    monkeypatch.setattr(grub, 'run', run_mocked)
    monkeypatch.setattr(os, 'open', open_mocked)
    monkeypatch.setattr(os, 'read', read_mocked)
    monkeypatch.setattr(os, 'close', close_mocked)
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    with pytest.raises(StopActorExecution):
        grub.get_grub_device()
    assert grub.run.called == 1
    err = 'Could not get name of underlying /boot partition'
    assert err in api.current_logger.warnmsg
Beispiel #17
0
def test_get_grub_device_library(monkeypatch):
    run_mocked = RunMocked()
    monkeypatch.setattr(grub, 'run', run_mocked)
    monkeypatch.setattr(os, 'open', open_mocked)
    monkeypatch.setattr(os, 'read', read_mocked)
    monkeypatch.setattr(os, 'close', close_mocked)
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    result = grub.get_grub_device()
    assert grub.run.called == 2
    assert BOOT_DEVICE == result
    assert not api.current_logger.warnmsg
    assert 'GRUB is installed on {}'.format(result) in api.current_logger.infomsg
def test_scaninstalledkernel_missing(monkeypatch):
    result = []
    old_kver = '0.1.2-3.rt4.5.el7.x86_64'
    monkeypatch.setattr(api, 'current_actor',
                        CurrentActorMocked(kernel=old_kver))
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    monkeypatch.setattr(api, 'produce', result.append)
    monkeypatch.setattr(scankernel, 'run', MockedRun({}))
    scankernel.process()
    assert api.current_logger.warnmsg
    assert api.current_logger.errmsg
    assert not result
def test_scaninstalledkernel_missing_rt(monkeypatch):
    result = []
    old_kver = '0.1.2-3.rt4.5.el7.x86_64'
    stdouts = {'kernel': [TARGET_KERNEL], 'kernel-rt': [OLD_RT_KERNEL]}
    monkeypatch.setattr(api, 'current_actor',
                        CurrentActorMocked(kernel=old_kver))
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    monkeypatch.setattr(api, 'produce', result.append)
    monkeypatch.setattr(scankernel, 'run', MockedRun(stdouts))
    scankernel.process()
    assert api.current_logger.warnmsg
    assert len(result) == 1 and result[0].version == TARGET_KERNEL_VERSION
def test_single_kernel_s390x(monkeypatch):
    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked())
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    monkeypatch.setattr(api, 'consume', mocked_consume(s390x_pkgs_single))
    monkeypatch.setattr(reporting, 'create_report', create_report_mocked())
    checkinstalledkernels.process()
    assert not reporting.create_report.called

    monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(arch=architecture.ARCH_S390X))
    monkeypatch.setattr(api, 'consume', mocked_consume(s390x_pkgs_single))
    checkinstalledkernels.process()
    assert not reporting.create_report.called
def test_invalid_fstab_info(monkeypatch):
    monkeypatch.setattr(reporting, "create_report", create_report_mocked())
    monkeypatch.setattr(api, 'current_logger', logger_mocked())

    storagescanner._get_fstab_info(os.path.join(CUR_DIR,
                                                'files/invalid_fstab'))
    assert reporting.create_report.called == 1
    assert reporting.create_report.report_fields['severity'] == 'high'
    assert 'Problems with parsing data in /etc/fstab' in reporting.create_report.report_fields[
        'title']
    assert 'inhibitor' in reporting.create_report.report_fields['flags']
    assert any("The fstab configuration file seems to be invalid" in msg
               for msg in api.current_logger.errmsg)
def test_no_set_releasever(monkeypatch, current_actor_context):

    expected_rel_ver = '8.0'
    monkeypatch.setattr(setetcreleasever, '_set_releasever',
                        mocked_set_releasever())
    monkeypatch.setattr(api, 'current_actor',
                        CurrentActorMocked(dst_ver=expected_rel_ver))
    monkeypatch.setattr(api, 'current_logger', logger_mocked())

    setetcreleasever.process()

    assert not setetcreleasever._set_releasever.content
    assert api.current_logger.dbgmsg
Beispiel #23
0
def test_running_submgr_fail(monkeypatch):
    monkeypatch.setattr(
        api,
        'current_actor',
        CurrentActorMocked(dst_ver='8.0', envars={'LEAPP_NO_RHSM': '0'}),
    )
    monkeypatch.setattr(enablerhsmtargetrepos, 'get_repos_to_enable',
                        lambda: {'some-repo'})
    monkeypatch.setattr(enablerhsmtargetrepos, 'run',
                        run_mocked(raise_err=True))
    monkeypatch.setattr(api, 'current_logger', logger_mocked())
    enablerhsmtargetrepos.enable_rhsm_repos()
    assert enablerhsmtargetrepos.run.called
    assert api.current_logger.warnmsg
Beispiel #24
0
def test_etc_releasever_empty(monkeypatch):
    pkg_mgr_msg = [PkgManagerInfo(etc_releasever=None)]
    expected_rel_ver = '6.10'

    mocked_report = create_report_mocked()
    monkeypatch.setattr(
        api, 'current_actor',
        CurrentActorMocked(msgs=pkg_mgr_msg, dst_ver=expected_rel_ver))
    monkeypatch.setattr(reporting, 'create_report', mocked_report)
    monkeypatch.setattr(api, 'current_logger', logger_mocked())

    checketcreleasever.process()

    assert not reporting.create_report.called
    assert api.current_logger.dbgmsg
def test_set_releasever(monkeypatch, current_actor_context):

    msgs = [RHUIInfo(provider='aws'), PkgManagerInfo(etc_releasever='7.7')]

    expected_rel_ver = '8.0'
    monkeypatch.setattr(setetcreleasever, '_set_releasever',
                        mocked_set_releasever())
    monkeypatch.setattr(
        api, 'current_actor',
        CurrentActorMocked(msgs=msgs, dst_ver=expected_rel_ver))
    monkeypatch.setattr(api, 'current_logger', logger_mocked())

    setetcreleasever.process()

    assert expected_rel_ver == setetcreleasever._set_releasever.content
    assert not api.current_logger.dbgmsg
Beispiel #26
0
def test_etc_releasever_both(monkeypatch):
    msgs = [RHUIInfo(provider='aws'), PkgManagerInfo(etc_releasever='7.7')]
    expected_rel_ver = '6.10'

    mocked_report = create_report_mocked()
    monkeypatch.setattr(
        api, 'current_actor',
        CurrentActorMocked(msgs=msgs, dst_ver=expected_rel_ver))
    monkeypatch.setattr(reporting, 'create_report', mocked_report)
    monkeypatch.setattr(api, 'current_logger', logger_mocked())

    checketcreleasever.process()

    assert reporting.create_report.called == 1
    assert expected_rel_ver in mocked_report.report_fields['summary']
    assert not api.current_logger.dbgmsg
Beispiel #27
0
def test_dasd_not_found(monkeypatch):
    monkeypatch.setattr(scandasd.architecture, 'matches_architecture',
                        lambda dummy: True)
    monkeypatch.setattr(scandasd.api, 'current_logger', logger_mocked())
    monkeypatch.setattr(os.path, 'isfile', lambda dummy: False)
    monkeypatch.setattr(scandasd.api, 'produce', produce_mocked())
    scandasd.process()
    assert scandasd.api.current_logger.warnmsg
    assert scandasd.api.produce.called == 1
    assert len(scandasd.api.produce.model_instances) == 1
    assert isinstance(scandasd.api.produce.model_instances[0],
                      TargetUserSpaceUpgradeTasks)
    assert scandasd.api.produce.model_instances[0].install_rpms == [
        's390utils-core'
    ]
    assert not scandasd.api.produce.model_instances[0].copy_files
Beispiel #28
0
def test_dasd_exists(monkeypatch):
    monkeypatch.setattr(scandasd.architecture, 'matches_architecture',
                        lambda dummy: True)
    monkeypatch.setattr(scandasd.api, 'current_logger', logger_mocked())
    monkeypatch.setattr(scandasd.api, 'produce', produce_mocked())
    monkeypatch.setattr(os.path, 'isfile', lambda dummy: True)
    scandasd.process()
    assert not scandasd.api.current_logger.warnmsg
    assert scandasd.api.produce.called == 2
    tusut_flag = False
    uit_flag = False
    for msg in scandasd.api.produce.model_instances:
        if isinstance(msg, TargetUserSpaceUpgradeTasks):
            assert [CopyFile(src=scandasd.DASD_CONF)] == msg.copy_files
            tusut_flag = True
        elif isinstance(msg, UpgradeInitramfsTasks):
            assert [scandasd.DASD_CONF] == msg.include_files
            uit_flag = True
    assert tusut_flag and uit_flag
Beispiel #29
0
def test_etc_releasever(monkeypatch, exists):
    pkg_mgr_msg = [PkgManagerInfo(etc_releasever='7.7')] if exists else []
    expected_rel_ver = '6.10'

    mocked_report = create_report_mocked()
    monkeypatch.setattr(
        api, 'current_actor',
        CurrentActorMocked(msgs=pkg_mgr_msg, dst_ver=expected_rel_ver))
    monkeypatch.setattr(reporting, 'create_report', mocked_report)
    monkeypatch.setattr(api, 'current_logger', logger_mocked())

    checketcreleasever.process()

    if exists:
        assert reporting.create_report.called == 1
        assert expected_rel_ver in mocked_report.report_fields['summary']
        assert not api.current_logger.dbgmsg
    else:
        assert not reporting.create_report.called
        assert api.current_logger.dbgmsg
Beispiel #30
0
def test_etc_releasever_rhui(monkeypatch, is_rhui):
    rhui_msg = [RHUIInfo(provider='aws')] if is_rhui else []
    expected_rel_ver = '6.10'

    mocked_report = create_report_mocked()
    monkeypatch.setattr(
        api, 'current_actor',
        CurrentActorMocked(msgs=rhui_msg, dst_ver=expected_rel_ver))
    monkeypatch.setattr(reporting, 'create_report', mocked_report)
    monkeypatch.setattr(api, 'current_logger', logger_mocked())

    checketcreleasever.process()

    if is_rhui:
        assert reporting.create_report.called == 1
        assert expected_rel_ver in mocked_report.report_fields['summary']
        assert not api.current_logger.dbgmsg
    else:
        assert not reporting.create_report.called
        assert api.current_logger.dbgmsg