Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/sugar/tutorius/tests/propertiestests.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/sugar/tutorius/tests/propertiestests.py')
-rw-r--r--src/sugar/tutorius/tests/propertiestests.py199
1 files changed, 116 insertions, 83 deletions
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