R [web test] rewrite schema with a single python module
authorSylvain Thénault <sylvain.thenault@logilab.fr>
Sat, 01 Aug 2009 17:20:26 +0200
changeset 2636 104291d9bd00
parent 2635 c94df21f7ab2
child 2637 07103211e511
R [web test] rewrite schema with a single python module
web/test/data/schema.py
web/test/data/schema/Personne.sql
web/test/data/schema/Societe.sql
web/test/data/schema/__init__.py
web/test/data/schema/relations.rel
web/test/data/schema/testschema.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)
+
--- 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
--- 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)
--- 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
--- 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',),
-        }