| # Copyright 2015 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Unit tests for tools/validate_config.py.""" |
| |
| import mock |
| import os |
| import unittest |
| |
| from cq_client import cq_pb2 |
| from cq_client import validate_config |
| |
| |
| TEST_DIR = os.path.dirname(os.path.abspath(__file__)) |
| |
| |
| class TestValidateConfig(unittest.TestCase): |
| def test_is_valid(self): |
| with open(os.path.join(TEST_DIR, 'cq_example.cfg'), 'r') as test_config: |
| self.assertTrue(validate_config.IsValid(test_config.read())) |
| |
| def test_has_field(self): |
| config = cq_pb2.Config() |
| |
| self.assertFalse(validate_config._HasField(config, 'version')) |
| config.version = 1 |
| self.assertTrue(validate_config._HasField(config, 'version')) |
| |
| self.assertFalse(validate_config._HasField( |
| config, 'rietveld.project_bases')) |
| config.rietveld.project_bases.append('foo://bar') |
| self.assertTrue(validate_config._HasField( |
| config, 'rietveld.project_bases')) |
| |
| self.assertFalse(validate_config._HasField( |
| config, 'verifiers.try_job.buckets')) |
| self.assertFalse(validate_config._HasField( |
| config, 'verifiers.try_job.buckets.name')) |
| |
| bucket = config.verifiers.try_job.buckets.add() |
| bucket.name = 'tryserver.chromium.linux' |
| |
| |
| self.assertTrue(validate_config._HasField( |
| config, 'verifiers.try_job.buckets')) |
| self.assertTrue(validate_config._HasField( |
| config, 'verifiers.try_job.buckets.name')) |
| |
| config.verifiers.try_job.buckets.add() |
| self.assertFalse(validate_config._HasField( |
| config, 'verifiers.try_job.buckets.name')) |