Initial import from Docker volume
This commit is contained in:
193
tests/model.py
Executable file
193
tests/model.py
Executable file
@@ -0,0 +1,193 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
from trytond.model import (
|
||||
ModelSingleton, ModelSQL, UnionMixin, fields, sequence_ordered)
|
||||
from trytond.pool import Pool
|
||||
from trytond.pyson import Eval
|
||||
|
||||
|
||||
class Model(ModelSQL):
|
||||
'Model'
|
||||
__name__ = 'test.model'
|
||||
name = fields.Char('Name')
|
||||
selection = fields.Selection([
|
||||
('foo', "Foo"),
|
||||
('bar', "Bar"),
|
||||
(None, ""),
|
||||
], "Selection")
|
||||
multiselection = fields.MultiSelection([
|
||||
('foo', "Foo"),
|
||||
('bar', "Bar"),
|
||||
], "MultiSelection")
|
||||
|
||||
|
||||
class ModelParent(Model):
|
||||
"Model Parent"
|
||||
__name__ = 'test.model_parent'
|
||||
name = fields.Char("Name")
|
||||
children = fields.One2Many('test.model_child', 'parent', "Children")
|
||||
|
||||
|
||||
class ModelChild(Model):
|
||||
"Model Child"
|
||||
__name__ = 'test.model_child'
|
||||
name = fields.Char("Name")
|
||||
parent = fields.Many2One('test.model_parent', "Parent")
|
||||
|
||||
|
||||
class ModelChildChild(Model):
|
||||
"Model Child Child"
|
||||
__name__ = 'test.model_child_child'
|
||||
name = fields.Char("Name")
|
||||
parent = fields.Many2One('test.model_child', "Parent")
|
||||
|
||||
|
||||
class ModelContext(Model):
|
||||
"Model with contextual field"
|
||||
__name__ = 'test.model_context'
|
||||
name = fields.Char("Name")
|
||||
target = fields.Many2One(
|
||||
'test.model', "Target",
|
||||
context={
|
||||
'name': Eval('name'),
|
||||
})
|
||||
|
||||
|
||||
class ModelContextParent(Model):
|
||||
"Model with contextual field from _parent"
|
||||
__name__ = 'test.model_context_parent'
|
||||
parent = fields.Many2One('test.model', "Parent")
|
||||
target = fields.Many2One(
|
||||
'test.model', "Target",
|
||||
context={
|
||||
'name': Eval('_parent_parent', {}).get('name'),
|
||||
})
|
||||
|
||||
|
||||
class ModelDefault(Model):
|
||||
"Model with default"
|
||||
__name__ = 'test.model.default'
|
||||
|
||||
name = fields.Char("Name")
|
||||
description = fields.Char("Description")
|
||||
target = fields.Many2One('test.model', "Target")
|
||||
|
||||
@classmethod
|
||||
def default_description(cls):
|
||||
return "Test"
|
||||
|
||||
|
||||
class Singleton(ModelSingleton, ModelSQL):
|
||||
'Singleton'
|
||||
__name__ = 'test.singleton'
|
||||
name = fields.Char('Name')
|
||||
|
||||
@staticmethod
|
||||
def default_name():
|
||||
return 'test'
|
||||
|
||||
|
||||
class URLObject(ModelSQL):
|
||||
'URLObject'
|
||||
__name__ = 'test.urlobject'
|
||||
name = fields.Char('Name')
|
||||
|
||||
|
||||
class Model4Union1(ModelSQL):
|
||||
'Model for union 1'
|
||||
__name__ = 'test.model.union1'
|
||||
name = fields.Char('Name')
|
||||
optional = fields.Char('Optional')
|
||||
|
||||
|
||||
class Model4Union2(ModelSQL):
|
||||
'Model for union 2'
|
||||
__name__ = 'test.model.union2'
|
||||
name = fields.Char('Name')
|
||||
|
||||
|
||||
class Model4Union3(ModelSQL):
|
||||
'Model for union 3'
|
||||
__name__ = 'test.model.union3'
|
||||
name = fields.Char('Name')
|
||||
|
||||
|
||||
class Model4Union4(ModelSQL):
|
||||
'Model for union 4'
|
||||
__name__ = 'test.model.union4'
|
||||
name = fields.Char('Name')
|
||||
|
||||
|
||||
class Union(UnionMixin, ModelSQL):
|
||||
'Union'
|
||||
__name__ = 'test.union'
|
||||
name = fields.Char('Name')
|
||||
optional = fields.Char('Optional')
|
||||
|
||||
@staticmethod
|
||||
def union_models():
|
||||
return ['test.model.union%s' % i for i in range(1, 4)]
|
||||
|
||||
|
||||
class UnionUnion(UnionMixin, ModelSQL):
|
||||
'Union of union'
|
||||
__name__ = 'test.union.union'
|
||||
name = fields.Char('Name')
|
||||
|
||||
@staticmethod
|
||||
def union_models():
|
||||
return ['test.union', 'test.model.union4']
|
||||
|
||||
|
||||
class Model4UnionTree1(ModelSQL):
|
||||
'Model for union tree 1'
|
||||
__name__ = 'test.model.union.tree1'
|
||||
name = fields.Char('Name')
|
||||
|
||||
|
||||
class Model4UnionTree2(ModelSQL):
|
||||
'Model for union tree 2'
|
||||
__name__ = 'test.model.union.tree2'
|
||||
name = fields.Char('Name')
|
||||
parent = fields.Many2One('test.model.union.tree1', 'Parent')
|
||||
|
||||
|
||||
class UnionTree(UnionMixin, ModelSQL):
|
||||
'Union tree'
|
||||
__name__ = 'test.union.tree'
|
||||
name = fields.Char('Name')
|
||||
parent = fields.Many2One('test.union.tree', 'Parent')
|
||||
childs = fields.One2Many('test.union.tree', 'parent', 'Childs')
|
||||
|
||||
@staticmethod
|
||||
def union_models():
|
||||
return ['test.model.union.tree1', 'test.model.union.tree2']
|
||||
|
||||
|
||||
class SequenceOrderedModel(sequence_ordered(), ModelSQL):
|
||||
'Sequence Ordered Model'
|
||||
__name__ = 'test.order.sequence'
|
||||
|
||||
|
||||
def register(module):
|
||||
Pool.register(
|
||||
Model,
|
||||
ModelParent,
|
||||
ModelChild,
|
||||
ModelChildChild,
|
||||
ModelContext,
|
||||
ModelContextParent,
|
||||
ModelDefault,
|
||||
Singleton,
|
||||
URLObject,
|
||||
Model4Union1,
|
||||
Model4Union2,
|
||||
Model4Union3,
|
||||
Model4Union4,
|
||||
Union,
|
||||
UnionUnion,
|
||||
Model4UnionTree1,
|
||||
Model4UnionTree2,
|
||||
UnionTree,
|
||||
SequenceOrderedModel,
|
||||
module=module, type_='model')
|
||||
Reference in New Issue
Block a user