From 9fafb49af210e956d43d6a00106558d1a00d13df Mon Sep 17 00:00:00 2001 From: Simon Poirier Date: Thu, 02 Jul 2009 05:27:27 +0000 Subject: * Modularized actions and event filters through add-on components * Working serialization * Working editor with addons * began refactoring actions and events ** fixed some tests to work with addons ** filters and actions tests won't pass until refactoring is done --- (limited to 'src/sugar/tutorius/tests/propertiestests.py') diff --git a/src/sugar/tutorius/tests/propertiestests.py b/src/sugar/tutorius/tests/propertiestests.py index d53ad38..46346c4 100644 --- a/src/sugar/tutorius/tests/propertiestests.py +++ b/src/sugar/tutorius/tests/propertiestests.py @@ -21,63 +21,66 @@ from sugar.tutorius.properties import * # Helper function to test the wrong types on a property, given its type def try_wrong_values(obj): - if type(obj).prop.type != "int": + typ = type(obj).prop.type + if typ != "int": try: obj.prop = 3 - assert False, "Able to insert int value in property of type %s"%prop.type - except ValueConstraint: + assert False, "Able to insert int value in property of type %s"%typ + except: pass - if type(obj).prop.type != "float": + if typ != "float": try: obj.prop = 1.1 - assert False, "Able to insert float value in property of type %s"%prop.type - except ValueConstraint: + assert False, "Able to insert float value in property of type %s"%typ + except: pass - if type(obj).prop.type != "string": + if typ != "string": try: obj.prop = "Fake string" - assert False, "Able to insert string value in property of type %s"%prop.type - except ValueConstraint: + assert False, "Able to insert string value in property of type %s"%typ + except: pass - if type(obj).prop.type != "array": + if typ != "array": try: obj.prop = [1, 2000, 3, 400] - assert False, "Able to insert array value in property of type %s"%prop.type - except ValueConstraint: + assert False, "Able to insert array value in property of type %s"%typ + except: pass - if type(obj).prop.type != "color": + if typ != "color": try: obj.prop = [1,2,3] - if prop.type != "array": - assert False, "Able to insert color value in property of type %s"%prop.type - except ValueConstraint: + if typ != "array": + assert False, "Able to insert color value in property of type %s"%typ + except: pass - if type(obj).prop.type != "boolean": + if typ != "boolean": try: obj.prop = True - if prop.type != "boolean": - assert False, "Able to set boolean value in property of type %s"%prop.type - except ValueConstraint: + if typ != "boolean": + assert False, "Able to set boolean value in property of type %s"%typ + except: pass class BasePropertyTest(unittest.TestCase): def test_base_class(self): - prop = TutoriusProperty() + class klass(TPropContainer): + prop = TutoriusProperty() + obj = klass() - assert prop.default == None, "There should not be an initial value in the base property" + assert klass.prop.default == None, "There should not be an initial value in the base property" - assert prop.type == None, "There should be no type associated with the base property" + assert klass.prop.type == None, "There should be no type associated with the base property" - assert prop.get_constraints() == [], "There should be no constraints on the base property" + assert klass.prop.get_constraints() == [], "There should be no constraints on the base property" - prop.set(2) + obj.prop = 2 - assert prop.value == 2, "Unable to set a value on base class" + assert obj.prop == 2, "Unable to set a value on base class" class TIntPropertyTest(unittest.TestCase): def test_int_property(self): @@ -91,9 +94,9 @@ class TIntPropertyTest(unittest.TestCase): cons = klass.prop.get_constraints() assert len(cons) == 2, "Not enough constraints on the int property" - obj.prop.set(12) + obj.prop = 12 - assert obj.prop.value == 12, "Could not set value" + assert obj.prop == 12, "Could not set value" def test_wrong_values(self): class klass(TPropContainer): @@ -101,7 +104,7 @@ class TIntPropertyTest(unittest.TestCase): obj = klass() # Try setting values of other types - try_wrong_values(prop) + try_wrong_values(obj) def test_limit_constructor(self): class klass(TPropContainer): @@ -140,32 +143,38 @@ class TIntPropertyTest(unittest.TestCase): pass except: assert False, "Wrong exception type on failed constructor" - def test_instance_assign(self): class TFloatPropertyTest(unittest.TestCase): def test_float_property(self): - prop = TFloatProperty(22) + class klass(TPropContainer): + prop = TFloatProperty(22) + obj = klass() - assert prop.value == 22, "Could not set value on property via constructor" + assert obj.prop == 22, "Could not set value on property via constructor" - assert prop.type == "float", "Wrong type on float property : %s" % prop.type - cons = prop.get_constraints() + assert klass.prop.type == "float", "Wrong type on float property : %s" % klass.prop.type + cons = klass.prop.get_constraints() assert len(cons) == 2, "Not enough constraints on the float property" - prop.set(12) + obj.prop = 12 - assert prop.value == 12, "Could not set value" + assert obj.prop == 12, "Could not set value" def test_wrong_values(self): - prop = TFloatProperty(33) + class klass(TPropContainer): + prop = TFloatProperty(33) + obj = klass() + # Try setting values of other types - try_wrong_values(prop) + try_wrong_values(obj) def test_limit_constructor(self): - prop = TFloatProperty(22.4, 0.1, 30.5223) + class klass(TPropContainer): + prop = TFloatProperty(22.4, 0.1, 30.5223) + obj = klass() try: - prop.set(-22.8) + obj.prop = -22.8 assert False, "Assigning an out-of-range value should trigger LowerLimitConstraint" except LowerLimitConstraintError: pass @@ -173,7 +182,7 @@ class TFloatPropertyTest(unittest.TestCase): assert False, "Wrong exception triggered by assignation" try: - prop.set(222.2) + obj.prop = 222.2 assert False, "Assigning an out-of-range value should trigger UpperLimitConstraint" except UpperLimitConstraintError: pass @@ -199,17 +208,21 @@ class TFloatPropertyTest(unittest.TestCase): class TStringPropertyTest(unittest.TestCase): def test_basic_string(self): - prop = TStringProperty("Starter string") + class klass(TPropContainer): + prop = TStringProperty("Starter string") + obj = klass() - assert prop.value == "Starter string", "Could not set string value via constructor" + assert obj.prop == "Starter string", "Could not set string value via constructor" - assert prop.type == "string", "Wrong type for string property : %s" % prop.type + assert klass.prop.type == "string", "Wrong type for string property : %s" % klass.prop.type def test_size_limit(self): - prop = TStringProperty("Small", 10) + class klass(TPropContainer): + prop = TStringProperty("Small", 10) + obj = klass() try: - prop.set("My string is too big!") + obj.prop = "My string is too big!" assert False, "String should not set to longer than max size" except MaxSizeConstraintError: pass @@ -217,9 +230,11 @@ class TStringPropertyTest(unittest.TestCase): assert False, "Wrong exception type thrown" def test_wrong_values(self): - prop = TStringProperty("Beginning") + class klass(TPropContainer): + prop = TStringProperty("Beginning") + obj = klass() - try_wrong_values(prop) + try_wrong_values(obj) def test_failing_constructor(self): try: @@ -232,30 +247,38 @@ class TStringPropertyTest(unittest.TestCase): class TArrayPropertyTest(unittest.TestCase): def test_basic_array(self): - prop = TArrayProperty([1, 2, 3, 4]) + class klass(TPropContainer): + prop = TArrayProperty([1, 2, 3, 4]) + obj = klass() - assert prop.value == [1,2,3,4], "Unable to set initial value via constructor" + assert obj.prop == [1,2,3,4], "Unable to set initial value via constructor" - assert prop.type == "array", "Wrong type for array : %s"%prop.type + assert klass.prop.type == "array", "Wrong type for array : %s"%klass.prop.type def test_wrong_values(self): - prop = TArrayProperty([1,2,3,4,5]) + class klass(TPropContainer): + prop = TArrayProperty([1,2,3,4,5]) + obj = klass() - try_wrong_values(prop) + try_wrong_values(obj) def test_size_limits(self): - prop = TArrayProperty([1,2], None, 4) + class klass(TPropContainer): + prop = TArrayProperty([1,2], None, 4) + obj = klass() try: - prop.set([1,2,4,5,6,7]) + obj.prop = [1,2,4,5,6,7] assert False, "Maximum size limit constraint was not properly applied" except MaxSizeConstraintError: pass - prop = TArrayProperty([1,2,3,4], 2) + class klass(TPropContainer): + prop = TArrayProperty([1,2,3,4], 2) + obj = klass() try: - prop.set([1]) + obj.prop = [1] assert False, "Minimum size limit constraint was not properly applied" except MinSizeConstraintError: pass @@ -274,16 +297,20 @@ class TArrayPropertyTest(unittest.TestCase): class TColorPropertyTest(unittest.TestCase): def test_basic_color(self): - prop = TColorProperty(20, 40, 60) + class klass(TPropContainer): + prop = TColorProperty(20, 40, 60) + obj = klass() - assert prop.value == [20, 40, 60], "Could not set initial value with constructor" + assert obj.prop == [20, 40, 60], "Could not set initial value with constructor" - assert prop.type == "color", "Wrong type on color : %s"%prop.type + assert klass.prop.type == "color", "Wrong type on color : %s"%klass.prop.type def test_wrong_values(self): - prop = TColorProperty(250, 250, 250) + class klass(TPropContainer): + prop = TColorProperty(250, 250, 250) + obj = klass() - try_wrong_values(prop) + try_wrong_values(obj) def test_failing_constructor(self): try: @@ -296,23 +323,25 @@ class TColorPropertyTest(unittest.TestCase): class TBooleanPropertyTest(unittest.TestCase): def setUp(self): - self.prop = TBooleanProperty(False) + class klass(TPropContainer): + prop = TBooleanProperty(False) + self.obj = klass() def test_basic_boolean(self): - assert self.prop.value == False, "Could not set initial value via constructor" + assert self.obj.prop == False, "Could not set initial value via constructor" - assert self.prop.type == "boolean", "Wrong type for TBooleanProperty : %s"%self.prop.type + assert self.obj.__class__.prop.type == "boolean", "Wrong type for TBooleanProperty : %s"%self.obj.__class__.prop.type - self.prop.set(True) + self.obj.prop = True - assert self.prop.value == True, "Could not change the value via set" + assert self.obj.prop == True, "Could not change the value via set" - self.prop.set(False) + self.obj.prop = False - assert self.prop.value == False, "Could not change the value via set" + assert self.obj.prop == False, "Could not change the value via set" def test_wrong_types(self): - try_wrong_values(self.prop) + try_wrong_values(self.obj) def test_failing_constructor(self): try: @@ -325,41 +354,45 @@ class TBooleanPropertyTest(unittest.TestCase): class TEnumPropertyTest(unittest.TestCase): def setUp(self): - self.prop = TEnumProperty("hello", [1, 2, "hello", "world", True, None]) + class klass(TPropContainer): + prop = TEnumProperty("hello", [1, 2, "hello", "world", True, None]) + self.obj = klass() def test_basic_enum(self): - assert self.prop.value == "hello", "Could not set initial value on property" + assert self.obj.prop == "hello", "Could not set initial value on property" - assert self.prop.type == "enum", "Wrong type for TEnumProperty : %s"%self.prop.type + assert type(self.obj).prop.type == "enum", "Wrong type for TEnumProperty : %s"%type(self.obj).prop.type - self.prop.set(True) + self.obj.prop = True - assert self.prop.value, "Could not change the value via set" + assert self.obj.prop, "Could not change the value via set" try: - self.prop.set(4) + self.obj.prop = 4 assert False, "Switched to a value outside the enum" except EnumConstraintError: pass def test_wrong_type(self): - try_wrong_values(self.prop) + try_wrong_values(self.obj) class TFilePropertyTest(unittest.TestCase): def setUp(self): - self.prop = TFileProperty("propertiestests.py") + class klass(TPropContainer): + prop = TFileProperty("propertiestests.py") + self.obj = klass() def test_basic_file(self): - assert self.prop.value == "propertiestests.py", "Could not set initial value" + assert self.obj.prop == "propertiestests.py", "Could not set initial value" - assert self.prop.type == "file", "Wrong type for TFileProperty : %s"%self.prop.type + assert type(self.obj).prop.type == "file", "Wrong type for TFileProperty : %s"%type(self.obj).prop.type - self.prop.set("run-tests.py") + self.obj.prop = "run-tests.py" - assert self.prop.value == "run-tests.py", "Could not change value" + assert self.obj.prop == "run-tests.py", "Could not change value" try: - self.prop.set("unknown/file/on/disk.gif") + self.obj.prop = "unknown/file/on/disk.gif" assert False, "An exception should be thrown on unknown file" except FileConstraintError: pass -- cgit v0.9.1