#!/usr/bin/env python """Unit tests for model.Element/FeatureClass, etc.""" import unittest from peak.api import * from peak.model.features import FeatureClass from peak.util import fmtparse from model_support import Mapping class Thing(model.Element): class inThing(model.Attribute): referencedType = 'Thing' defaultValue = None class namedThings(Mapping): singularName = 'namedThing' referencedType = 'Thing' referencedEnd = 'inThing' referencedKeyType = model.String class immutableNamedThings(Mapping): singularName = 'immutableNamedThing' referencedType = 'Thing' referencedKeyType = model.String isChangeable = False class ThingTestCase(unittest.TestCase): def testStuff(self): thing = Thing() thing.setNamedThingForKey('myself', thing) assert 'myself' in thing.namedThings assert thing.namedThings['myself'] == thing assert thing.getNamedThingForKey('myself') == thing anotherThing = Thing(immutableNamedThings = thing.namedThings) assert anotherThing.immutableNamedThings['myself'] == thing assert thing.inThing is thing thing.unsetNamedThings() assert thing.inThing is None if __name__ == '__main__': unittest.main()