about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--ranger/container/commandlist.py5
-rw-r--r--test/tc_commandlist.py9
2 files changed, 14 insertions, 0 deletions
diff --git a/ranger/container/commandlist.py b/ranger/container/commandlist.py
index eca73f23..2ba22ef7 100644
--- a/ranger/container/commandlist.py
+++ b/ranger/container/commandlist.py
@@ -141,7 +141,12 @@ class CommandList(object):
 		for k in keys:
 			del self.paths[k]
 
+	def clear(self):
+		"""remove all bindings"""
+		self.paths.clear()
+		del self.commandlist[:]
 	
+
 class Command(object):
 	"""Command objects store information about a command"""
 
diff --git a/test/tc_commandlist.py b/test/tc_commandlist.py
index ed9b1bd7..86afdc99 100644
--- a/test/tc_commandlist.py
+++ b/test/tc_commandlist.py
@@ -51,4 +51,13 @@ class Test(TestCase):
 		self.assertEqual(dmy, cl['aaa'])
 		self.assertEqual(fnc, cl['aaaa'].execute)
 
+		cl.clear()
+		self.assertKeyError(cl, 'a')
+		self.assertKeyError(cl, 'aa')
+		self.assertKeyError(cl, 'aaa')
+		self.assertKeyError(cl, 'aaaa')
+		self.assertKeyError(cl, 'aab')
+		self.assertKeyError(cl, 'aabb')
+
+
 if __name__ == '__main__': main()