diff --git a/Makefile.am b/Makefile.am index 7ce39765..8bb0e965 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,9 +1,6 @@ ACLOCAL_AMFLAGS = -I m4 DISTCHECK_CONFIGURE_FLAGS = --enable-introspection -TESTS_TMPDIR=$(abs_builddir)/tests-tmp -TESTS_PYTHONPATH=$(abs_srcdir)/src:$(PYTHONPATH) - DISTCLEANFILES = \ intltool-extract \ intltool-merge \ @@ -21,10 +18,4 @@ check: test pep8 $(top_srcdir) test: - mkdir -p $(TESTS_TMPDIR) - cd $(top_srcdir)/tests; \ - TMPDIR=$(TESTS_TMPDIR) PYTHONPATH=$(TESTS_PYTHONPATH) \ - python -m unittest discover; \ - status=$$?; \ - rm -rf $(TESTS_TMPDIR); \ - exit $$status + python -m sugar3.test.discover $(top_srcdir)/tests diff --git a/src/sugar3/test/Makefile.am b/src/sugar3/test/Makefile.am index 3070730a..2ccac022 100644 --- a/src/sugar3/test/Makefile.am +++ b/src/sugar3/test/Makefile.am @@ -1,5 +1,6 @@ sugardir = $(pythondir)/sugar3/test sugar_PYTHON = \ __init__.py \ + discover.py \ uitree.py \ unittest.py diff --git a/src/sugar3/test/discover.py b/src/sugar3/test/discover.py new file mode 100644 index 00000000..8de28f8c --- /dev/null +++ b/src/sugar3/test/discover.py @@ -0,0 +1,51 @@ +# Copyright (C) 2013, Daniel Narvaez +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +""" +UNSTABLE. +""" + +from __future__ import absolute_import + +import argparse +import sys +import os +import tempfile +import shutil +import unittest + + +def main(): + parser = argparse.ArgumentParser(description="Discover unit tests.") + parser.add_argument("tests_dir", help="Base tests directory") + args = parser.parse_args() + + temp_dir = tempfile.mkdtemp() + + os.chdir(args.tests_dir) + os.environ["TMPDIR"] = temp_dir + + try: + test = unittest.defaultTestLoader.discover(".") + result = unittest.TextTestRunner().run(test) + if not result.wasSuccessful(): + sys.exit(1) + finally: + shutil.rmtree(temp_dir) + + +if __name__ == "__main__": + main()