diff options
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | test/__init__.py | 52 | ||||
-rwxr-xr-x | test/all_benchmarks.py (renamed from all_benchmarks.py) | 0 | ||||
-rwxr-xr-x | test/all_tests.py (renamed from all_tests.py) | 17 | ||||
-rw-r--r-- | test/bm_loader.py | 2 | ||||
l--------- | test/ranger | 1 | ||||
-rw-r--r-- | test/tc_bookmarks.py | 2 | ||||
-rw-r--r-- | test/tc_colorscheme.py | 2 | ||||
-rw-r--r-- | test/tc_direction.py | 2 | ||||
-rw-r--r-- | test/tc_directory.py | 2 | ||||
-rw-r--r-- | test/tc_displayable.py | 4 | ||||
-rw-r--r-- | test/tc_ext.py | 1 | ||||
-rw-r--r-- | test/tc_history.py | 2 | ||||
-rw-r--r-- | test/tc_keyapi.py | 2 | ||||
-rw-r--r-- | test/tc_loader.py | 4 | ||||
-rw-r--r-- | test/tc_newkeys.py | 3 | ||||
-rw-r--r-- | test/tc_signal.py | 1 | ||||
-rw-r--r-- | test/tc_ui.py | 6 | ||||
-rw-r--r-- | test/tc_utfwidth.py | 2 | ||||
-rw-r--r-- | test/testlib.py (renamed from test/test.py) | 33 |
20 files changed, 44 insertions, 98 deletions
diff --git a/Makefile b/Makefile index 6a103a02..a5589803 100644 --- a/Makefile +++ b/Makefile @@ -100,10 +100,10 @@ cleandoc: test -d $(DOCDIR) && rm -f -- $(DOCDIR)/*.html test: - @$(PYTHON) all_tests.py 1 + @$(PYTHON) test/all_tests.py 1 bm: - @$(PYTHON) all_benchmarks.py $(BMCOUNT) + @$(PYTHON) test/all_benchmarks.py $(BMCOUNT) snapshot: git archive HEAD | gzip > $(NAME)-$(VERSION)-$(shell git rev-parse HEAD | cut -b 1-8).tar.gz diff --git a/test/__init__.py b/test/__init__.py index d87d1fc2..e69de29b 100644 --- a/test/__init__.py +++ b/test/__init__.py @@ -1,52 +0,0 @@ -# Copyright (C) 2009, 2010 Roman Zimbelmann <romanz@lavabit.com> -# -# 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 3 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, see <http://www.gnu.org/licenses/>. - -import os, sys - -__all__ = [ x[0:x.index('.')] \ - for x in os.listdir(os.path.dirname(__file__)) \ - if x.startswith('tc_') or x.startswith('bm_')] - -def TODO(fnc): - def result(*arg, **kw): - try: - fnc(*arg, **kw) - except: - pass # failure expected - return result - -def init(): - sys.path.append(os.path.abspath(os.path.join(sys.path[0], '..'))) - -class Fake(object): - def __getattr__(self, attrname): - val = Fake() - self.__dict__[attrname] = val - return val - - def __call__(self, *_, **__): - return Fake() - - def __clear__(self): - self.__dict__.clear() - - def __iter__(self): - return iter(()) - -class OK(Exception): - pass - -def raise_ok(*_, **__): - raise OK() diff --git a/all_benchmarks.py b/test/all_benchmarks.py index 73316658..73316658 100755 --- a/all_benchmarks.py +++ b/test/all_benchmarks.py diff --git a/all_tests.py b/test/all_tests.py index 90926918..dff49b60 100755 --- a/all_tests.py +++ b/test/all_tests.py @@ -17,20 +17,17 @@ """Run all the tests inside the test/ directory as a test suite.""" if __name__ == '__main__': import unittest - from test import * - from sys import exit, argv + import sys + import os try: - verbosity = int(argv[1]) + verbosity = int(sys.argv[1]) except IndexError: verbosity = 2 - tests = [] - for key, val in vars().copy().items(): - if key.startswith('tc_'): - tests.extend(v for k,v in vars(val).items() if type(v) == type) - - suite = unittest.TestSuite(map(unittest.makeSuite, tests)) + ls = os.listdir(sys.path[0]) + paths = [p[:-3] for p in ls if p[:3] == 'tc_' and p[-3:] == '.py'] + suite = unittest.TestLoader().loadTestsFromNames(paths) result = unittest.TextTestRunner(verbosity=verbosity).run(suite) if len(result.errors) + len(result.failures) > 0: - exit(1) + sys.exit(1) diff --git a/test/bm_loader.py b/test/bm_loader.py index 745e6f3b..968640a5 100644 --- a/test/bm_loader.py +++ b/test/bm_loader.py @@ -18,7 +18,7 @@ from ranger.fsobject import Directory, File from ranger.ext.openstruct import OpenStruct import os.path from ranger.shared import FileManagerAware, SettingsAware -from test import Fake +from testlib import Fake from os.path import realpath, join, dirname from subprocess import Popen, PIPE TESTDIR = realpath(join(dirname(__file__), '/usr/include')) diff --git a/test/ranger b/test/ranger new file mode 120000 index 00000000..5459458c --- /dev/null +++ b/test/ranger @@ -0,0 +1 @@ +../ranger \ No newline at end of file diff --git a/test/tc_bookmarks.py b/test/tc_bookmarks.py index f45ba061..9b41f1c6 100644 --- a/test/tc_bookmarks.py +++ b/test/tc_bookmarks.py @@ -13,8 +13,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -if __name__ == '__main__': from __init__ import init; init() - from os.path import realpath, join, dirname import unittest import os diff --git a/test/tc_colorscheme.py b/test/tc_colorscheme.py index dbaac1f9..8d6adee6 100644 --- a/test/tc_colorscheme.py +++ b/test/tc_colorscheme.py @@ -13,8 +13,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -if __name__ == '__main__': from __init__ import init; init() - from unittest import TestCase, main import random import ranger.colorschemes diff --git a/test/tc_direction.py b/test/tc_direction.py index f45b4b36..5c1776cf 100644 --- a/test/tc_direction.py +++ b/test/tc_direction.py @@ -13,8 +13,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -if __name__ == '__main__': from __init__ import init; init() - import unittest from ranger.ext.direction import Direction from ranger.ext.openstruct import OpenStruct diff --git a/test/tc_directory.py b/test/tc_directory.py index 024ebc9d..a702c4db 100644 --- a/test/tc_directory.py +++ b/test/tc_directory.py @@ -13,8 +13,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -if __name__ == '__main__': from __init__ import init; init() - import sys from os.path import realpath, join, dirname diff --git a/test/tc_displayable.py b/test/tc_displayable.py index 50f37845..1c66a40e 100644 --- a/test/tc_displayable.py +++ b/test/tc_displayable.py @@ -13,14 +13,12 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -if __name__ == '__main__': from __init__ import init; init() - import unittest import curses from random import randint from ranger.gui.displayable import Displayable, DisplayableContainer -from test import Fake, OK, raise_ok, TODO +from testlib import Fake, OK, raise_ok, TODO class TestWithFakeCurses(unittest.TestCase): def setUp(self): diff --git a/test/tc_ext.py b/test/tc_ext.py index b8094233..919f35a2 100644 --- a/test/tc_ext.py +++ b/test/tc_ext.py @@ -13,7 +13,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -if __name__ == '__main__': from __init__ import init; init() import unittest from collections import deque diff --git a/test/tc_history.py b/test/tc_history.py index d027231a..33784e14 100644 --- a/test/tc_history.py +++ b/test/tc_history.py @@ -13,8 +13,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -if __name__ == '__main__': from __init__ import init; init() - from ranger.container import History from unittest import TestCase, main import unittest diff --git a/test/tc_keyapi.py b/test/tc_keyapi.py index 2f522173..48282a7d 100644 --- a/test/tc_keyapi.py +++ b/test/tc_keyapi.py @@ -13,8 +13,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -if __name__ == '__main__': from __init__ import init; init() - from unittest import TestCase, main class Test(TestCase): diff --git a/test/tc_loader.py b/test/tc_loader.py index 53ac5617..9f7f7322 100644 --- a/test/tc_loader.py +++ b/test/tc_loader.py @@ -13,13 +13,11 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -if __name__ == '__main__': from __init__ import init; init() - import unittest import os from os.path import realpath, join, dirname -from test import Fake +from testlib import Fake from ranger.shared import FileManagerAware, SettingsAware from ranger.core.loader import Loader from ranger.fsobject import Directory, File diff --git a/test/tc_newkeys.py b/test/tc_newkeys.py index c7a33025..fd856f17 100644 --- a/test/tc_newkeys.py +++ b/test/tc_newkeys.py @@ -14,10 +14,9 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -if __name__ == '__main__': from __init__ import init; init() from unittest import TestCase, main -from test import TODO +from testlib import TODO from ranger.ext.tree import Tree from ranger.container.keymap import * from ranger.container.keybuffer import KeyBuffer diff --git a/test/tc_signal.py b/test/tc_signal.py index 35b4eebe..f31681f4 100644 --- a/test/tc_signal.py +++ b/test/tc_signal.py @@ -13,7 +13,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -if __name__ == '__main__': from __init__ import init; init() import unittest import gc from ranger.ext.signal_dispatcher import * diff --git a/test/tc_ui.py b/test/tc_ui.py index 3c659459..dc8d669d 100644 --- a/test/tc_ui.py +++ b/test/tc_ui.py @@ -13,14 +13,12 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -if __name__ == '__main__': from __init__ import init; init() - import unittest import curses from ranger.gui import ui -from test import Fake, OK, raise_ok +from testlib import Fake, OK, raise_ok ui.curses = Fake() @@ -39,7 +37,7 @@ class Test(unittest.TestCase): def tearDown(self): self.ui.destroy() - + def test_passing(self): # Test whether certain method calls are passed to widgets widget = self.ui.widget diff --git a/test/tc_utfwidth.py b/test/tc_utfwidth.py index d8ffbe1d..2aa5fa6d 100644 --- a/test/tc_utfwidth.py +++ b/test/tc_utfwidth.py @@ -14,8 +14,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -if __name__ == '__main__': from __init__ import init; init() - from unittest import TestCase, main from ranger.ext.utfwidth import * diff --git a/test/test.py b/test/testlib.py index d0a69e5a..29dd9e07 100644 --- a/test/test.py +++ b/test/testlib.py @@ -13,8 +13,31 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -"""Workaround to allow running single test cases directly""" -try: - from __init__ import init, Fake, OK, raise_ok, TODO -except: - from test import init, Fake, OK, raise_ok, TODO +def TODO(fnc): + def result(*arg, **kw): + try: + fnc(*arg, **kw) + except: + pass # failure expected + return result + +class Fake(object): + def __getattr__(self, attrname): + val = Fake() + self.__dict__[attrname] = val + return val + + def __call__(self, *_, **__): + return Fake() + + def __clear__(self): + self.__dict__.clear() + + def __iter__(self): + return iter(()) + +class OK(Exception): + pass + +def raise_ok(*_, **__): + raise OK() |