| #!/usr/bin/env python3.8 |
| # Copyright 2021 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import os |
| import tempfile |
| import unittest |
| from unittest import mock |
| |
| import gen_fidldocs |
| |
| |
| class GenReferenceDocsTest(unittest.TestCase): |
| |
| def setUp(self): |
| # Create a temporary directory |
| self.temp_dir = tempfile.mkdtemp() |
| |
| def test_read_fidl_docs(self): |
| with mock.patch("builtins.open", mock.mock_open( |
| read_data='[{"ir":"fakefidl_a"},{"ir":"fakefidl_b"}]')): |
| files = gen_fidldocs.read_fidl_packages(self.temp_dir) |
| self.assertEquals(files, ["fakefidl_a", "fakefidl_b"]) |
| |
| def test_run_fidl_doc(self): |
| build_dir = os.path.join(self.temp_dir, 'out') |
| out_dir = os.path.join(self.temp_dir, 'gen') |
| mock_files = ['a', 'b', 'c'] |
| with mock.patch.object(gen_fidldocs.subprocess, 'run') as mock_run: |
| fidldoc_path = os.path.join(build_dir, 'host-tools', 'fidldoc') |
| out_fidl = os.path.join(out_dir, 'fidldoc') |
| gen_fidldocs.run_fidl_doc(build_dir, out_dir, mock_files) |
| mock_run.assert_called_once_with( |
| [ |
| fidldoc_path, "--silent", "--path", "/reference/fidl/", |
| "--out", out_fidl |
| ] + mock_files) |