changeset 4eb15d8c9f95 in trytond:default
details: https://hg.tryton.org/trytond?cmd=changeset&node=4eb15d8c9f95
description:
Use specific model for OR2UNION tests
issue10832
review362881002
diffstat:
trytond/tests/modelsql.py | 19 ++++++++++++++++---
trytond/tests/test_modelsql.py | 19 +++++++++++++------
2 files changed, 29 insertions(+), 9 deletions(-)
diffs (133 lines):
diff -r 428bf1c84a3d -r 4eb15d8c9f95 trytond/tests/modelsql.py
--- a/trytond/tests/modelsql.py Wed Oct 06 17:20:40 2021 +0200
+++ b/trytond/tests/modelsql.py Thu Oct 07 17:46:14 2021 +0200
@@ -87,10 +87,15 @@
"ModelSQL Search OR to UNION optimization"
__name__ = 'test.modelsql.search.or2union'
name = fields.Char("Name")
- target = fields.Many2One('test.modelsql.read.target', "Target")
- targets = fields.One2Many('test.modelsql.read.target', 'parent', "Targets")
+ target = fields.Many2One('test.modelsql.search.or2union.target', "Target")
+ targets = fields.One2Many(
+ 'test.modelsql.search.or2union.target', 'parent', "Targets")
reference = fields.Reference(
- "Reference", [(None, ""), ('test.modelsql.read.target', "Target")])
+ "Reference",
+ [
+ (None, ""),
+ ('test.modelsql.search.or2union.target', "Target"),
+ ])
integer = fields.Integer("Integer")
@classmethod
@@ -99,6 +104,13 @@
return [table.integer + 1]
+class ModelSQLSearchOR2UnionTarget(ModelSQL):
+ "ModelSQL Target to test read"
+ __name__ = 'test.modelsql.search.or2union.target'
+ name = fields.Char("Name")
+ parent = fields.Many2One('test.modelsql.search.or2union', "Parent")
+
+
class ModelSQLForeignKey(DeactivableMixin, ModelSQL):
"ModelSQL Foreign Key"
__name__ = 'test.modelsql.fk'
@@ -195,6 +207,7 @@
ModelSQLOne2ManyTarget,
ModelSQLSearch,
ModelSQLSearchOR2Union,
+ ModelSQLSearchOR2UnionTarget,
ModelSQLForeignKey,
ModelSQLForeignKeyTarget,
NullOrder,
diff -r 428bf1c84a3d -r 4eb15d8c9f95 trytond/tests/test_modelsql.py
--- a/trytond/tests/test_modelsql.py Wed Oct 06 17:20:40 2021 +0200
+++ b/trytond/tests/test_modelsql.py Thu Oct 07 17:46:14 2021 +0200
@@ -651,7 +651,7 @@
Test searching for 'OR'-ed domain
"""
pool = Pool()
- Model = pool.get('test.modelsql.read')
+ Model = pool.get('test.modelsql.search.or2union')
Model.create([{
'name': 'A',
@@ -673,9 +673,12 @@
# Mocking in order not to trigger the split
no_split.side_effect = lambda d: (d, [])
result_without_split = Model.search(domain)
+ query_without_split = Model.search(domain, query=True)
self.assertEqual(
Model.search(domain),
result_without_split)
+ self.assertIn('UNION', str(Model.search(domain, query=True)))
+ self.assertNotIn('UNION', str(query_without_split))
@with_transaction()
def test_search_or_to_union_order_eager_field(self):
@@ -684,7 +687,7 @@
"""
pool = Pool()
Model = pool.get('test.modelsql.search.or2union')
- Target = pool.get('test.modelsql.read.target')
+ Target = pool.get('test.modelsql.search.or2union.target')
target_a, target_b, target_c = Target.create([
{'name': 'A'}, {'name': 'B'}, {'name': 'C'},
@@ -725,7 +728,7 @@
"""
pool = Pool()
Model = pool.get('test.modelsql.search.or2union')
- Target = pool.get('test.modelsql.read.target')
+ Target = pool.get('test.modelsql.search.or2union.target')
target_a, target_b, target_c = Target.create([
{'name': 'A'}, {'name': 'B'}, {'name': 'C'},
@@ -766,7 +769,7 @@
"""
pool = Pool()
Model = pool.get('test.modelsql.search.or2union')
- Target = pool.get('test.modelsql.read.target')
+ Target = pool.get('test.modelsql.search.or2union.target')
target_a, target_b, target_c = Target.create([
{'name': 'A'}, {'name': 'B'}, {'name': 'C'},
@@ -807,7 +810,7 @@
"""
pool = Pool()
Model = pool.get('test.modelsql.search.or2union')
- Target = pool.get('test.modelsql.read.target')
+ Target = pool.get('test.modelsql.search.or2union.target')
target_a, target_b, target_c = Target.create([
{'name': 'A'}, {'name': 'B'}, {'name': 'C'},
@@ -850,7 +853,7 @@
Test searching for 'OR'-ed domain without local clauses
"""
pool = Pool()
- Model = pool.get('test.modelsql.read')
+ Model = pool.get('test.modelsql.search.or2union')
Model.create([{
'name': 'A',
@@ -866,14 +869,18 @@
domain = ['OR',
('targets.name', 'ilike', '%A'),
+ ('targets.name', 'ilike', '%B'),
]
with patch('trytond.model.modelsql.split_subquery_domain') as no_split:
# Mocking in order not to trigger the split
no_split.side_effect = lambda d: (d, [])
result_without_split = Model.search(domain)
+ query_without_split = Model.search(domain, query=True)
self.assertEqual(
Model.search(domain),
result_without_split)
+ self.assertIn('UNION', str(Model.search(domain, query=True)))
+ self.assertNotIn('UNION', str(query_without_split))
def test_split_subquery_domain_empty(self):
"""