# HG changeset patch # User Sylvain Thénault # Date 1249140026 -7200 # Node ID 104291d9bd00d3d2576e4bcd7143812a2750486c # Parent c94df21f7ab2dc89f1aea3906251bd9de3ee689c R [web test] rewrite schema with a single python module diff -r c94df21f7ab2 -r 104291d9bd00 web/test/data/schema.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/test/data/schema.py Sat Aug 01 17:20:26 2009 +0200 @@ -0,0 +1,62 @@ +""" + +:organization: Logilab +:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. +:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr +:license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses +""" + +from yams.buildobjs import (EntityType, RelationType, RelationDefinition, + SubjectRelation, ObjectRelation, + String, Int, Datetime, Boolean, Float) +from yams.constraints import IntervalBoundConstraint + +class Salesterm(EntityType): + described_by_test = SubjectRelation('File', cardinality='1*', composite='subject') + amount = Int(constraints=[IntervalBoundConstraint(0, 100)]) + reason = String(maxsize=20, vocabulary=[u'canceled', u'sold']) + +class tags(RelationDefinition): + subject = 'Tag' + object = ('BlogEntry', 'CWUser') + +class checked_by(RelationType): + subject = 'BlogEntry' + object = 'CWUser' + cardinality = '?*' + permissions = { + 'add': ('managers',), + 'read': ('managers', 'users'), + 'delete': ('managers',), + } + +class Personne(EntityType): + nom = String(fulltextindexed=True, required=True, maxsize=64) + prenom = String(fulltextindexed=True, maxsize=64) + sexe = String(maxsize=1, default='M') + promo = String(vocabulary=('bon','pasbon')) + titre = String(fulltextindexed=True, maxsize=128) + ass = String(maxsize=128) + web = String(maxsize=128) + tel = Int() + fax = Int() + datenaiss = Datetime() + test = Boolean() + description = String() + salary = Float() + travaille = SubjectRelation('Societe') + connait = ObjectRelation('CWUser') + +class Societe(EntityType): + nom = String(maxsize=64, fulltextindexed=True) + web = String(maxsize=128) + type = String(maxsize=128) # attribute in common with Note + tel = Int() + fax = Int() + rncs = String(maxsize=128) + ad1 = String(maxsize=128) + ad2 = String(maxsize=128) + ad3 = String(maxsize=128) + cp = String(maxsize=12) + ville= String(maxsize=32) + diff -r c94df21f7ab2 -r 104291d9bd00 web/test/data/schema/Personne.sql --- a/web/test/data/schema/Personne.sql Sat Aug 01 16:54:40 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -nom ivarchar(64) NOT NULL -prenom ivarchar(64) -sexe char(1) DEFAULT 'M' -promo choice('bon','pasbon') -titre ivarchar(128) -ass varchar(128) -web varchar(128) -tel integer -fax integer -datenaiss datetime -test boolean -description text -salary float diff -r c94df21f7ab2 -r 104291d9bd00 web/test/data/schema/Societe.sql --- a/web/test/data/schema/Societe.sql Sat Aug 01 16:54:40 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -nom ivarchar(64) -web varchar(128) -tel integer -fax integer -rncs varchar(32) -ad1 varchar(128) -ad2 varchar(128) -ad3 varchar(128) -cp varchar(12) -ville varchar(32) diff -r c94df21f7ab2 -r 104291d9bd00 web/test/data/schema/__init__.py diff -r c94df21f7ab2 -r 104291d9bd00 web/test/data/schema/relations.rel --- a/web/test/data/schema/relations.rel Sat Aug 01 16:54:40 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -Personne travaille Societe -CWUser connait Personne diff -r c94df21f7ab2 -r 104291d9bd00 web/test/data/schema/testschema.py --- a/web/test/data/schema/testschema.py Sat Aug 01 16:54:40 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -""" - -:organization: Logilab -:copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. -:contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr -:license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses -""" - -from yams.buildobjs import (EntityType, RelationDefinition, RelationType, String, - Int, SubjectRelation) -from yams.constraints import IntervalBoundConstraint - -class Salesterm(EntityType): - described_by_test = SubjectRelation('File', cardinality='1*', composite='subject') - amount = Int(constraints=[IntervalBoundConstraint(0, 100)]) - reason = String(maxsize=20, vocabulary=[u'canceled', u'sold']) - -class tags(RelationDefinition): - subject = 'Tag' - object = ('BlogEntry', 'CWUser') - -class checked_by(RelationType): - subject = 'BlogEntry' - object = 'CWUser' - cardinality = '?*' - permissions = { - 'add': ('managers',), - 'read': ('managers', 'users'), - 'delete': ('managers',), - }