#!/usr/bin/env python
# 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.

"""A wrapper around typ (test your projects)."""

import os
import sys


def Run(top_level_dir, path=None):
  """Runs a set of Python tests using typ.

  Args:
    top_level_dir: Directory to look for Python unit tests in.
    path: A list of extra paths to add to sys.path when running the tests.

  Returns:
    An exit code (0 for success, otherwise non-zero).
  """
  typ_path = os.path.abspath(os.path.join(
      os.path.dirname(__file__), os.path.pardir, 'third_party', 'typ'))
  _AddToPathIfNeeded(typ_path)
  import typ
  return typ.main(
      top_level_dir=top_level_dir,
      path=(path or []),
      coverage_source=[top_level_dir])


def _AddToPathIfNeeded(path):
  if path not in sys.path:
    sys.path.insert(0, path)