"""Test runner and related functions."""

import logging
import Omni.App as App
import Omni.Log as Log
import typing
import unittest


def run(area: App.Area, tests: list[typing.Any]) -> None:
    """Run the given tests with loglevel determined by area."""
    Log.setup(logging.DEBUG if area == App.Area.Test else logging.ERROR)
    suite = unittest.TestSuite()
    suite.addTests([
        unittest.defaultTestLoader.loadTestsFromTestCase(tc) for tc in tests
    ])
    unittest.TextTestRunner(verbosity=2).run(suite)