# Copyright 2022 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Unit tests for run_all_tests script.""" import itertools import os import unittest import run_all_tests class RunAllUnitTests(unittest.TestCase): """Unit tests to verify run_all_tests tool.""" def _scene_folders_exist(self, scene_folders): """Asserts all scene_folders exist in tests directory.""" for scene_folder in scene_folders: scene_path = os.path.join(os.environ['CAMERA_ITS_TOP'], 'tests', scene_folder) self.assertTrue(os.path.exists(scene_path), msg=f'{scene_path} does not exist!') def test_sub_camera_tests(self): """Ensures SUB_CAMERA_TESTS matches test files in tests directory.""" for scene_folder in run_all_tests.SUB_CAMERA_TESTS: for test in run_all_tests.SUB_CAMERA_TESTS[scene_folder]: test_path = os.path.join(os.environ['CAMERA_ITS_TOP'], 'tests', scene_folder, f'{test}.py') self.assertTrue(os.path.exists(test_path), msg=f'{test_path} does not exist!') def test_all_scenes(self): """Ensures _ALL_SCENES list matches scene folders in test directory.""" self._scene_folders_exist(run_all_tests._ALL_SCENES) def test_tablet_scenes(self): """Ensures _TABLET_SCENES list matches scene folders in test directory.""" self._scene_folders_exist(run_all_tests._TABLET_SCENES) def test_scene_req(self): """Ensures _SCENE_REQ scenes match scene folders in test directory.""" self._scene_folders_exist(run_all_tests._SCENE_REQ.keys()) def test_grouped_scenes(self): """Ensures _GROUPED_SCENES scenes match scene folders in test directory.""" # flatten list of scene folder lists stored as values of a dictionary scene_folders = list(itertools.chain.from_iterable( run_all_tests._GROUPED_SCENES.values())) self._scene_folders_exist(scene_folders) if __name__ == '__main__': unittest.main()