blob: 72cbf3296bde93432a05fb7a74c8aa467a6f8017 [file] [log] [blame]
# Copyright 2020 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Tests for check_model_sku_json."""
import json
import os
import pathlib
import tempfile
import unittest
from checker.common_checks.check_model_sku_json import CheckModelSkuJsonConstraintSuite
class CheckModelSkuTest(unittest.TestCase):
"""Tests for check_model_sku_json."""
def setUp(self):
self.factory_dir = pathlib.Path(tempfile.mkdtemp())
generated_dir = self.factory_dir / 'generated'
os.mkdir(generated_dir)
model_sku = {
'model': [{
"milkyway": {
"component.audio_card_name": "audiocard1",
"component.has_front_camera": True,
"component.has_lte": None,
}
}]
}
with open(generated_dir / 'model_sku.json', 'w') as f:
json.dump(model_sku, f)
def test_check_model_present(self):
"""Tests check_model_present with valid configs."""
CheckModelSkuJsonConstraintSuite().check_model_present(
program_config=None, project_config=None, factory_dir=self.factory_dir)
def test_check_model_present_violated(self):
"""Tests check_model_present with invalid configs."""
with open(self.factory_dir / 'generated' / 'model_sku.json', 'w') as f:
json.dump({'a': 1}, f)
with self.assertRaisesRegex(
AssertionError, "'model' must be present and have at least one item."):
CheckModelSkuJsonConstraintSuite().check_model_present(
program_config=None,
project_config=None,
factory_dir=self.factory_dir)