I really don't like these changes, other than tests there's absolutely no reason for these to be virtual and therefore to allow the scope to override them. Can't we do something different, like setting a special envvar for the tests and have the impl look at that first? Yes, making it virtual does make it easily unit-testable, but imo such a test is really just testing itself.
374 - std::string scope_directory() const;
377 + virtual std::string scope_directory() const;
412 - VariantMap settings() const;
413 + virtual VariantMap settings() const;
I really don't like these changes, other than tests there's absolutely no reason for these to be virtual and therefore to allow the scope to override them. Can't we do something different, like setting a special envvar for the tests and have the impl look at that first? Yes, making it virtual does make it easily unit-testable, but imo such a test is really just testing itself.