| #!/usr/bin/python2 |
| # Copyright (c) 2019 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| from __future__ import print_function |
| from __future__ import unicode_literals |
| import unittest |
| import common |
| from autotest_lib.site_utils import stable_version_classify as sv |
| |
| |
| class StableVersionClassifyModelBoard(unittest.TestCase): |
| """test that classify board and classify model report the |
| correct information source based on the config values""" |
| def test_empty_config(self): |
| fc = _FakeConfig(enable=False, boards=[], models=[]) |
| self.assertEqual( |
| sv.classify_board('xxx-board', _config_override=fc), |
| sv.FROM_AFE, |
| ) |
| self.assertEqual( |
| sv.classify_model('xxx-model', _config_override=fc), |
| sv.FROM_AFE |
| ) |
| |
| def test_empty_config_but_enabled(self): |
| fc = _FakeConfig(enable=True, boards=[], models=[]) |
| self.assertEqual( |
| sv.classify_board('xxx-board', _config_override=fc), |
| sv.FROM_AFE, |
| ) |
| self.assertEqual( |
| sv.classify_model('xxx-model', _config_override=fc), |
| sv.FROM_AFE |
| ) |
| |
| def test_just_nocturne_config(self): |
| fc = _FakeConfig(enable=True, boards=[u'nocturne'], models=[u'nocturne']) |
| self.assertEqual( |
| sv.classify_board('xxx-board', _config_override=fc), |
| sv.FROM_AFE, |
| ) |
| self.assertEqual( |
| sv.classify_model('xxx-model', _config_override=fc), |
| sv.FROM_AFE, |
| ) |
| self.assertEqual( |
| sv.classify_board('nocturne', _config_override=fc), |
| sv.FROM_HOST_CONFIG, |
| ) |
| self.assertEqual( |
| sv.classify_model('nocturne', _config_override=fc), |
| sv.FROM_HOST_CONFIG, |
| ) |
| |
| |
| def test_enable_all(self): |
| fc = _FakeConfig(enable=True, boards=[u':all'], models=[u':all']) |
| self.assertEqual( |
| sv.classify_board('xxx-board', _config_override=fc), |
| sv.FROM_HOST_CONFIG, |
| ) |
| self.assertEqual( |
| sv.classify_model('xxx-model', _config_override=fc), |
| sv.FROM_HOST_CONFIG, |
| ) |
| self.assertEqual( |
| sv.classify_board('nocturne', _config_override=fc), |
| sv.FROM_HOST_CONFIG, |
| ) |
| self.assertEqual( |
| sv.classify_model('nocturne', _config_override=fc), |
| sv.FROM_HOST_CONFIG, |
| ) |
| |
| |
| _TEXT = (type(u''), type(b'')) |
| |
| |
| class _FakeConfig(object): |
| def __init__(self, boards=None, models=None, enable=None): |
| assert isinstance(boards, list) |
| assert isinstance(models, list) |
| assert isinstance(enable, bool) |
| self.boards = boards |
| self.models = models |
| self.enable = enable |
| |
| def get_config_value(self, namespace, key, type=None, default=None): |
| assert isinstance(namespace, _TEXT) |
| assert isinstance(key, _TEXT) |
| assert namespace == 'CROS' |
| if key == 'stable_version_config_repo_enable': |
| return self.enable |
| if key == 'stable_version_config_repo_opt_in_boards': |
| return self.boards |
| if key == 'stable_version_config_repo_opt_in_models': |
| return self.models |
| assert False, "unrecognized key %s" % key |
| |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |