From 11d09d02d3168fd6e264de9a5f649bcb6d95af95 Mon Sep 17 00:00:00 2001 From: hut Date: Tue, 26 Jan 2010 20:34:18 +0100 Subject: added testcase for openstruct --- test/tc_ext.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'test') diff --git a/test/tc_ext.py b/test/tc_ext.py index ea82bbfe..2ee4a407 100644 --- a/test/tc_ext.py +++ b/test/tc_ext.py @@ -89,6 +89,32 @@ class TestCases(unittest.TestCase): # self.assertEqual('/media/foo', # mount_path('/media/bar/some_link_to_a_foo_subdirectory')) + def test_openstruct(self): + from ranger.ext.openstruct import OpenStruct + from random import randint, choice + from string import ascii_letters + + os = OpenStruct(a='a') + self.assertEqual(os.a, 'a') + self.assertRaises(AttributeError, getattr, os, 'b') + + dictionary = {'foo': 'bar', 'zoo': 'zar'} + os = OpenStruct(dictionary) + self.assertEqual(os.foo, 'bar') + self.assertEqual(os.zoo, 'zar') + self.assertRaises(AttributeError, getattr, os, 'sdklfj') + + for i in range(100): + attr_name = ''.join(choice(ascii_letters) \ + for x in range(randint(3,9))) + value = randint(100,999) + if not attr_name in os: + self.assertRaises(AttributeError, getattr, os, attr_name) + setattr(os, attr_name, value) + value2 = randint(100,999) + setattr(os, attr_name, value2) + self.assertEqual(value2, getattr(os, attr_name)) + if __name__ == '__main__': unittest.main() -- cgit 1.4.1-2-gfad0