#!/usr/bin/python
# runTests.py -- Portage Unit Test Functionality
# Copyright 2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$


import os, sys
import os.path as osp

# Insert our parent dir so we can do shiny import "tests"
# This line courtesy of Marienz and Pkgcore ;)
sys.path.insert(0, osp.dirname(osp.dirname(osp.abspath(__file__))))

# Grab SVN portage files instead of normal ones.
sys.path.insert(0, os.path.join(sys.path[0], "pym"))

import tests
if __name__ == "__main__":
	result = tests.main()
	if result.failures:
		sys.exit(1)
