import gi gi.require_version('Gdk', '3.0') from gi.repository import Gdk from chrysacase import ChrysalideTestCase from pychrysalide.glibext import ConfigParam class TestConfiguration(ChrysalideTestCase): """TestCase for configuration related items.*""" def testCfgParamValues(self): """Set and unset configuration parameter values.""" color = Gdk.RGBA() color.parse('#3465A4') param = ConfigParam('config.color', ConfigParam.ConfigParamType.COLOR, color) self.assertEqual(param.value, color) param.make_empty() void = Gdk.RGBA(red=0, green=0, blue=0, alpha=0) self.assertEqual(param.value, void) param.value = color self.assertEqual(param.value, color) def testCfgParamStates(self): """Validate all states of an evolving parameter.""" param = ConfigParam('config.int', ConfigParam.ConfigParamType.INTEGER) self.assertEqual(param.state, ConfigParam.ConfigParamState.EMPTY | ConfigParam.ConfigParamState.DEFAULT) param.make_empty() self.assertEqual(param.state, ConfigParam.ConfigParamState.EMPTY | ConfigParam.ConfigParamState.DEFAULT) param = ConfigParam('config.int', ConfigParam.ConfigParamType.INTEGER, 0x123) self.assertEqual(param.value, 0x123) self.assertEqual(param.state, ConfigParam.ConfigParamState.DEFAULT) param.make_empty() self.assertEqual(param.state, ConfigParam.ConfigParamState.EMPTY | ConfigParam.ConfigParamState.CHANGED) param.value = 0x1 self.assertEqual(param.state, ConfigParam.ConfigParamState.CHANGED) param.reset() self.assertEqual(param.state, ConfigParam.ConfigParamState.DEFAULT) def testCfgParamDesc(self): """Export types and states as strings when needed.""" param = ConfigParam('config.int', ConfigParam.ConfigParamType.INTEGER) self.assertTrue('|' in str(param.state)) self.assertTrue('.' in str(param.type))