se depreca fields.Model port fields.Many2One
FossilOrigin-Name: 73d74488ca7458ff7dc84898ff76fa9b16b427cc6bc77540d7c81450e4f33869
This commit is contained in:
		| @@ -1,23 +1,21 @@ | |||||||
| from .field import Field | from .field import Field | ||||||
|  |  | ||||||
| class Many2One(Field): | class Many2One(Field): | ||||||
|     def __init__(self, model, setter=None, namespace=None): |     def __init__(self, model, name=None, setter=None, namespace=None): | ||||||
|         self.model = model |         self.model = model | ||||||
|         self.setter = setter |         self.setter = setter | ||||||
|         self.namespace = namespace |         self.namespace = namespace | ||||||
|  |         self.field_name = name | ||||||
|     def __set_name__(self, owner, name): |  | ||||||
|         self.name = name |  | ||||||
|  |  | ||||||
|     def __get__(self, inst, cls): |     def __get__(self, inst, cls): | ||||||
|         if inst is None: |         if inst is None: | ||||||
|             return self |             return self | ||||||
|         assert self.name is not None |         assert self.name is not None | ||||||
|         return self._create_model(inst) |         return self._create_model(inst, name=self.field_name) | ||||||
|          |          | ||||||
|     def __set__(self, inst, value): |     def __set__(self, inst, value): | ||||||
|         assert self.name is not None |         assert self.name is not None | ||||||
|         inst_model = self._create_model(inst, model=self.model) |         inst_model = self._create_model(inst, name=self.field_name, model=self.model) | ||||||
|  |  | ||||||
|         # si hay setter manual se ejecuta |         # si hay setter manual se ejecuta | ||||||
|         # de lo contrario se asigna como texto del elemento |         # de lo contrario se asigna como texto del elemento | ||||||
|   | |||||||
| @@ -1,10 +1,12 @@ | |||||||
| from .field import Field | from .field import Field | ||||||
|  | import warnings | ||||||
|  |  | ||||||
| class Model(Field): | class Model(Field): | ||||||
|     def __init__(self, model, name=None, namespace=None): |     def __init__(self, model, name=None, namespace=None): | ||||||
|         self.model = model |         self.model = model | ||||||
|         self.namespace = namespace |         self.namespace = namespace | ||||||
|         self.field_name = name |         self.field_name = name | ||||||
|  |         warnings.warn('deprecated use Many2One instead') | ||||||
|          |          | ||||||
|     def __get__(self, inst, cls): |     def __get__(self, inst, cls): | ||||||
|         if inst is None: |         if inst is None: | ||||||
|   | |||||||
| @@ -103,13 +103,28 @@ def test_field_model(): | |||||||
|     class Person(facho.model.Model): |     class Person(facho.model.Model): | ||||||
|         __name__ = 'Person' |         __name__ = 'Person' | ||||||
|  |  | ||||||
|         id = fields.Model(ID) |         id = fields.Many2One(ID) | ||||||
|  |  | ||||||
|     person = Person() |     person = Person() | ||||||
|     person.id = ID() |     person.id = ID() | ||||||
|     person.id = 33 |     person.id = 33 | ||||||
|     assert "<Person><ID>33</ID></Person>" == person.to_xml() |     assert "<Person><ID>33</ID></Person>" == person.to_xml() | ||||||
|  |  | ||||||
|  | def test_field_multiple_model(): | ||||||
|  |     class ID(facho.model.Model): | ||||||
|  |         __name__ = 'ID' | ||||||
|  |          | ||||||
|  |     class Person(facho.model.Model): | ||||||
|  |         __name__ = 'Person' | ||||||
|  |  | ||||||
|  |         id = fields.Many2One(ID) | ||||||
|  |         id2 = fields.Many2One(ID) | ||||||
|  |  | ||||||
|  |     person = Person() | ||||||
|  |     person.id = 33 | ||||||
|  |     person.id2 = 44 | ||||||
|  |     assert "<Person><ID>33</ID><ID>44</ID></Person>" == person.to_xml() | ||||||
|  |  | ||||||
| def test_field_model_failed_initialization(): | def test_field_model_failed_initialization(): | ||||||
|     class ID(facho.model.Model): |     class ID(facho.model.Model): | ||||||
|         __name__ = 'ID' |         __name__ = 'ID' | ||||||
| @@ -117,7 +132,7 @@ def test_field_model_failed_initialization(): | |||||||
|     class Person(facho.model.Model): |     class Person(facho.model.Model): | ||||||
|         __name__ = 'Person' |         __name__ = 'Person' | ||||||
|  |  | ||||||
|         id = fields.Model(ID) |         id = fields.Many2One(ID) | ||||||
|  |  | ||||||
|  |  | ||||||
|     person = Person() |     person = Person() | ||||||
| @@ -131,7 +146,7 @@ def test_field_model_with_custom_name(): | |||||||
|     class Person(facho.model.Model): |     class Person(facho.model.Model): | ||||||
|         __name__ = 'Person' |         __name__ = 'Person' | ||||||
|  |  | ||||||
|         id = fields.Model(ID, name='DID') |         id = fields.Many2One(ID, name='DID') | ||||||
|  |  | ||||||
|  |  | ||||||
|     person = Person() |     person = Person() | ||||||
| @@ -147,7 +162,7 @@ def test_field_model_default_initialization_with_attributes(): | |||||||
|     class Person(facho.model.Model): |     class Person(facho.model.Model): | ||||||
|         __name__ = 'Person' |         __name__ = 'Person' | ||||||
|  |  | ||||||
|         id = fields.Model(ID) |         id = fields.Many2One(ID) | ||||||
|  |  | ||||||
|     person = Person() |     person = Person() | ||||||
|     person.id = 33 |     person.id = 33 | ||||||
| @@ -189,7 +204,7 @@ def test_field_model_with_namespace(): | |||||||
|         __namespace__ = { |         __namespace__ = { | ||||||
|             "facho": "http://lib.facho.cyou"  |             "facho": "http://lib.facho.cyou"  | ||||||
|         } |         } | ||||||
|         id = fields.Model(ID, namespace="facho") |         id = fields.Many2One(ID, namespace="facho") | ||||||
|  |  | ||||||
|  |  | ||||||
|     person = Person() |     person = Person() | ||||||
| @@ -203,7 +218,7 @@ def test_field_hook_before_xml(): | |||||||
|     class Person(facho.model.Model): |     class Person(facho.model.Model): | ||||||
|         __name__ = 'Person' |         __name__ = 'Person' | ||||||
|  |  | ||||||
|         hash = fields.Model(Hash) |         hash = fields.Many2One(Hash) | ||||||
|  |  | ||||||
|         def __before_xml__(self): |         def __before_xml__(self): | ||||||
|             self.hash = "calculate" |             self.hash = "calculate" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user