~openerp-dev/openobject-server/saas-3-bug_1291322-ptr

« back to all changes in this revision

Viewing changes to openerp/addons/base/tests/test_expression.py

  • Committer: Christophe Simonis
  • Date: 2014-04-04 15:58:58 UTC
  • mfrom: (4743.1.531 unaccentwrapper)
  • Revision ID: chs@openerp.com-20140404155858-mvupqmuvi8ime2tl
[MERGE] forward port of branch 7.0 up to revid 5274 chs@openerp.com-20140404141611-qi1yagltvkd9q8ji

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
import unittest2
 
2
 
 
3
from openerp.osv.expression import get_unaccent_wrapper
2
4
from openerp.osv.orm import BaseModel
3
5
import openerp.tests.common as common
4
6
 
123
125
 
124
126
    def test_20_auto_join(self):
125
127
        registry, cr, uid = self.registry, self.cr, self.uid
 
128
        unaccent = get_unaccent_wrapper(cr)
126
129
 
127
130
        # Get models
128
131
        partner_obj = registry('res.partner')
179
182
        sql_query = self.query_list[0].get_sql()
180
183
        self.assertIn('res_partner_bank', sql_query[0],
181
184
            "_auto_join off: ('bank_ids.name', 'like', '..') first query incorrect main table")
182
 
        self.assertIn('"res_partner_bank"."name" like %s', sql_query[1],
 
185
 
 
186
        expected = "%s like %s" % (unaccent('"res_partner_bank"."name"'), unaccent('%s'))
 
187
        self.assertIn(expected, sql_query[1],
183
188
            "_auto_join off: ('bank_ids.name', 'like', '..') first query incorrect where condition")
 
189
        
184
190
        self.assertEqual(set(['%' + name_test + '%']), set(sql_query[2]),
185
191
            "_auto_join off: ('bank_ids.name', 'like', '..') first query incorrect parameter")
186
192
        sql_query = self.query_list[2].get_sql()
216
222
            "_auto_join on: ('bank_ids.name', 'like', '..') query incorrect main table")
217
223
        self.assertIn('"res_partner_bank" as "res_partner__bank_ids"', sql_query[0],
218
224
            "_auto_join on: ('bank_ids.name', 'like', '..') query incorrect join")
219
 
        self.assertIn('"res_partner__bank_ids"."name" like %s', sql_query[1],
 
225
 
 
226
        expected = "%s like %s" % (unaccent('"res_partner__bank_ids"."name"'), unaccent('%s'))
 
227
        self.assertIn(expected, sql_query[1],
220
228
            "_auto_join on: ('bank_ids.name', 'like', '..') query incorrect where condition")
 
229
        
221
230
        self.assertIn('"res_partner"."id"="res_partner__bank_ids"."partner_id"', sql_query[1],
222
231
            "_auto_join on: ('bank_ids.name', 'like', '..') query incorrect join condition")
223
232
        self.assertEqual(set(['%' + name_test + '%']), set(sql_query[2]),
295
304
        sql_query = self.query_list[0].get_sql()
296
305
        self.assertIn('"res_country"', sql_query[0],
297
306
            "_auto_join on for state_id: ('state_id.country_id.code', 'like', '..') query 1 incorrect main table")
298
 
        self.assertIn('"res_country"."code" like %s', sql_query[1],
 
307
 
 
308
        expected = "%s like %s" % (unaccent('"res_country"."code"'), unaccent('%s'))
 
309
        self.assertIn(expected, sql_query[1],
299
310
            "_auto_join on for state_id: ('state_id.country_id.code', 'like', '..') query 1 incorrect where condition")
 
311
 
300
312
        self.assertEqual(['%' + name_test + '%'], sql_query[2],
301
313
            "_auto_join on for state_id: ('state_id.country_id.code', 'like', '..') query 1 incorrect parameter")
302
314
        sql_query = self.query_list[1].get_sql()
326
338
            "_auto_join on for country_id: ('state_id.country_id.code', 'like', '..') query 1 incorrect main table")
327
339
        self.assertIn('"res_country" as "res_country_state__country_id"', sql_query[0],
328
340
            "_auto_join on for country_id: ('state_id.country_id.code', 'like', '..') query 1 incorrect join")
329
 
        self.assertIn('"res_country_state__country_id"."code" like %s', sql_query[1],
 
341
 
 
342
        expected = "%s like %s" % (unaccent('"res_country_state__country_id"."code"'), unaccent('%s'))
 
343
        self.assertIn(expected, sql_query[1],
330
344
            "_auto_join on for country_id: ('state_id.country_id.code', 'like', '..') query 1 incorrect where condition")
 
345
        
331
346
        self.assertIn('"res_country_state"."country_id"="res_country_state__country_id"."id"', sql_query[1],
332
347
            "_auto_join on for country_id: ('state_id.country_id.code', 'like', '..') query 1 incorrect join condition")
333
348
        self.assertEqual(['%' + name_test + '%'], sql_query[2],
357
372
            "_auto_join on: ('state_id.country_id.code', 'like', '..') query incorrect join")
358
373
        self.assertIn('"res_country" as "res_partner__state_id__country_id"', sql_query[0],
359
374
            "_auto_join on: ('state_id.country_id.code', 'like', '..') query incorrect join")
360
 
        self.assertIn('"res_partner__state_id__country_id"."code" like %s', sql_query[1],
 
375
 
 
376
        expected = "%s like %s" % (unaccent('"res_partner__state_id__country_id"."code"'), unaccent('%s'))
 
377
        self.assertIn(expected, sql_query[1],
361
378
            "_auto_join on: ('state_id.country_id.code', 'like', '..') query incorrect where condition")
 
379
        
362
380
        self.assertIn('"res_partner"."state_id"="res_partner__state_id"."id"', sql_query[1],
363
381
            "_auto_join on: ('state_id.country_id.code', 'like', '..') query incorrect join condition")
364
382
        self.assertIn('"res_partner__state_id"."country_id"="res_partner__state_id__country_id"."id"', sql_query[1],
384
402
            "_auto_join on one2many with domains incorrect result")
385
403
        # Test produced queries that domains effectively present
386
404
        sql_query = self.query_list[0].get_sql()
387
 
        self.assertIn('"res_partner__child_ids__bank_ids"."acc_number" like %s', sql_query[1],
 
405
        
 
406
        expected = "%s like %s" % (unaccent('"res_partner__child_ids__bank_ids"."acc_number"'), unaccent('%s'))
 
407
        self.assertIn(expected, sql_query[1],
388
408
            "_auto_join on one2many with domains incorrect result")
389
409
        # TDE TODO: check first domain has a correct table name
390
410
        self.assertIn('"res_partner__child_ids"."name" = %s', sql_query[1],