def testTransformConfig_FilterMatch(self): result = cros_config_test_schema.TransformConfig( BASIC_CONFIG, device_filter='nautilus') json_dict = json.loads(result) json_obj = libcros_schema.GetNamedTuple(json_dict) self.assertEqual(1, len(json_obj.chromeos.devices)) device = json_obj.chromeos.devices[0] self.assertEqual('nautilus', device.device_name) self.assertEqual(3, len(device.command_groups))
def testMainImportFilterNautilusLte(self): output = os.path.join(self.tempdir, 'output.json') cros_config_test_schema.Start( os.path.join(this_dir, 'test_data/cros_config_test_device.yaml'), 'nautiluslte', output, None) json_dict = json.loads(osutils.ReadFile(output)) json_obj = libcros_schema.GetNamedTuple(json_dict) self.assertEqual(1, len(json_obj.chromeos.devices)) device = json_obj.chromeos.devices[0] self.assertEqual('nautiluslte', device.device_name) self.assertEqual(4, len(device.command_groups))
def testBasicTransform(self): result = cros_config_schema.TransformConfig(BASIC_CONFIG) json_dict = json.loads(result) self.assertEqual(len(json_dict), 1) json_obj = libcros_schema.GetNamedTuple(json_dict) self.assertEqual(1, len(json_obj.chromeos.configs)) model = json_obj.chromeos.configs[0] self.assertEqual('basking', model.name) self.assertEqual('basking', model.audio.main.cras_config_dir) # Check multi-level template variable evaluation self.assertEqual('/etc/cras/basking/dsp.ini', model.audio.main.files[0].destination)
def testTransformConfig_FilterMatch(self): scoped_config = """ reef-9042-fw: &reef-9042-fw bcs-overlay: 'overlay-reef-private' ec-ro-image: 'Reef_EC.9042.87.1.tbz2' main-ro-image: 'Reef.9042.87.1.tbz2' main-rw-image: 'Reef.9042.110.0.tbz2' build-targets: coreboot: 'reef' chromeos: devices: - $name: 'foo' products: - $key-id: 'OEM2' skus: - config: identity: sku-id: 0 audio: main: cras-config-dir: '{{$name}}' ucm-suffix: '{{$name}}' name: '{{$name}}' firmware: *reef-9042-fw firmware-signing: key-id: '{{$key-id}}' signature-id: '{{$name}}' - $name: 'bar' products: - $key-id: 'OEM2' skus: - config: identity: sku-id: 0 audio: main: cras-config-dir: '{{$name}}' ucm-suffix: '{{$name}}' name: '{{$name}}' firmware: *reef-9042-fw firmware-signing: key-id: '{{$key-id}}' signature-id: '{{$name}}' """ result = cros_config_schema.TransformConfig(scoped_config, model_filter_regex='bar') json_dict = json.loads(result) json_obj = libcros_schema.GetNamedTuple(json_dict) self.assertEqual(1, len(json_obj.chromeos.configs)) model = json_obj.chromeos.configs[0] self.assertEqual('bar', model.name)
def testTemplateVariableScope(self): scoped_config = """ audio_common: &audio_common main: $ucm: "default" $cras: "default" ucm-suffix: "{{$ucm}}" cras-config-dir: "{{$cras}}" chromeos: devices: - $name: "some" $ucm: "overridden-by-device-scope" products: - $key-id: 'SOME-KEY' $brand-code: 'SOME-BRAND' $cras: "overridden-by-product-scope" skus: - $sku-id: 0 config: audio: *audio_common brand-code: '{{$brand-code}}' identity: platform-name: "Some" smbios-name-match: "Some" name: '{{$name}}' firmware: no-firmware: True """ result = cros_config_schema.TransformConfig(scoped_config) json_dict = json.loads(result) json_obj = libcros_schema.GetNamedTuple(json_dict) config = json_obj.chromeos.configs[0] self.assertEqual('overridden-by-product-scope', config.audio.main.cras_config_dir) self.assertEqual('overridden-by-device-scope', config.audio.main.ucm_suffix)
def testTransformConfig_NoMatch(self): result = cros_config_test_schema.TransformConfig( BASIC_CONFIG, device_filter='abc123') json_dict = json.loads(result) json_obj = libcros_schema.GetNamedTuple(json_dict) self.assertEqual(0, len(json_obj.chromeos.devices))
def testDashesReplacedWithUnderscores(self): val = {'a-b': 1} val_tuple = libcros_schema.GetNamedTuple(val) self.assertEqual(val['a-b'], val_tuple.a_b)
def testListInRecursiveDicts(self): val = {'a': {'b': [{'c': 2}]}} val_tuple = libcros_schema.GetNamedTuple(val) self.assertEqual(val['a']['b'][0]['c'], val_tuple.a.b[0].c)
def testRecursiveDicts(self): val = {'a': {'b': 1, 'c': 2}} val_tuple = libcros_schema.GetNamedTuple(val) self.assertEqual(val['a']['b'], val_tuple.a.b) self.assertEqual(val['a']['c'], val_tuple.a.c)