about summary refs log tree commit diff stats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/tc_colorscheme.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/tc_colorscheme.py b/test/tc_colorscheme.py
new file mode 100644
index 00000000..b7725b92
--- /dev/null
+++ b/test/tc_colorscheme.py
@@ -0,0 +1,31 @@
+if __name__ == '__main__': from __init__ import init; init()
+
+from unittest import TestCase, main
+import random
+import ranger.colorschemes
+from ranger.gui.colorscheme import ColorScheme, CONTEXT_KEYS
+
+class Test(TestCase):
+	def setUp(self):
+		import random
+		schemes = []
+		for key, mod in vars(ranger.colorschemes).items():
+			if type(mod) == type(random):
+				for key, var in vars(mod).items():
+					if type(var) == type and issubclass(var, ColorScheme) \
+							and var != ColorScheme:
+						schemes.append(var)
+		self.schemes = set(schemes)
+
+	def test_colorschemes(self):
+		def test(scheme):
+			scheme.get()  # test with no arguments
+
+			for i in range(300):  # test with a bunch of random (valid) arguments
+				sample = random.sample(CONTEXT_KEYS, random.randint(2, 9))
+				scheme.get(*sample)
+
+		for scheme in self.schemes:
+			test(scheme())
+
+if __name__ == '__main__': main()