blob: 80fd8c393b096cfbd38acfdefd7aac9101212413 [file] [log] [blame]
#!/usr/bin/env python2
# Copyright 2017 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.
# pylint: disable=module-missing-docstring,class-missing-docstring
from __future__ import print_function
import os
import unittest
import tempfile
import generate_schema_doc
this_dir = os.path.dirname(__file__)
class SchemaTests(unittest.TestCase):
def testActualSchemaAgainstReadme(self):
output = tempfile.mktemp()
generate_schema_doc.Main(
os.path.join(this_dir, 'cros_config_schema.yaml'),
output)
with open(output, 'r') as output_stream:
output_lines = output_stream.readlines()
with open(os.path.join(this_dir, '../README.md')) as readme_stream:
readme_lines = readme_stream.readlines()
readme_schema_lines = []
in_section = False
for line in readme_lines:
if 'begin_definitions' in line:
in_section = True
if in_section:
readme_schema_lines.append(line)
if 'end_definitions' in line:
break
self.assertEqual(
output_lines,
readme_schema_lines,
'Schema does not match README.\n'
'Please run: python -m cros_config_host.generate_schema_doc '
'-o README.md')
os.remove(output)
if __name__ == '__main__':
unittest.main()