Skip to content
  • Michael Hanselmann's avatar
    Refactor QA configuration code · 8a96c5a6
    Michael Hanselmann authored
    Ever since its introduction (sometime before commit cec9845c
    
     in September
    2007), the QA configuration was stored in a dictionary at module-level
    in “qa/qa_config.py”. The configuration was loaded, verified and
    evaluated using module-level functions. Since then the configuration has
    become more complicated and more functionality has been added. This
    patch refactors handling the configuration to use a class and provides
    unittests.
    
    - The configuration is loaded through a class method which also verifies
      it for consistency
    - Wrapper methods are provided in “qa_config” to not change the
      interface
    - Unit tests are provided for the new configuration class
    - The configuration object is still stored in a module-level variable
      and can be retrieved using “GetConfig” (direct access should be
      avoided so an uninitialized configuration can be detected)
    
    Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
    Reviewed-by: default avatarHelga Velroyen <helgav@google.com>
    8a96c5a6