DevHeads.net

How to temporarily change KConfig-data for a unit test?

Hi!

Currently I'm working on baloo-widgets. For a unit test I need to
temporarily change KConfig data.

My approach would be like this:

initTestCase()

    KConfig config("baloofileinformationrc", KConfig::NoGlobals);
    KConfigGroup settings = config.group("Show");

        set everything to true here.

Revert the changes incleanupTestCase();

How is this done most efficiently and without messing too much with
baloofileinformationrc?

Cheers,

Michael

Comments

Re: How to temporarily change KConfig-data for a unit test?

By Aleix Pol at 02/13/2018 - 10:42

On Tue, Feb 13, 2018 at 1:14 PM, Michael Heidelbach < ... at gmail dot com> wrote:
Ideally you should QStandardPaths::setTestModeEnabled(true), then you
can do as you please with config files which should end up in
~/.qttest.

Aleix

Re: How to temporarily change KConfig-data for a unit test?

By Martin =?ISO-88... at 02/13/2018 - 15:38

Am 2018-02-13 15:42, schrieb Aleix Pol:
A different approach could be to use a
KSharedConfig::openConfig(QString(), KConfig::SimpleConfig)

This creates an in-memory KConfig not backed by a file. That's what I
use in KWin to mock config. All the objects interacting with config have
a setConfig(KSharedConfigPtr) method which I can use to inject the
mocked config.

Cheers
Martin

Re: How to temporarily change KConfig-data for a unit test?

By Michael Heidelbach at 02/13/2018 - 16:44

On 13.02.2018 20:38, Martin Flöser wrote:

Re: How to temporarily change KConfig-data for a unit test?

By Martin =?ISO-88... at 02/14/2018 - 16:51

Am 2018-02-13 21:44, schrieb Michael Heidelbach:
find yourself: git grep ::setConfig

Multiple examples are directly in KWin's main.h file

Cheers
Martin

Re: How to temporarily change KConfig-data for a unit test?

By Michael Heidelbach at 02/13/2018 - 13:11

On 13.02.2018 15:42, Aleix Pol wrote: