[ADD] base: tests for translations and duplication
authorMartin Trigaux <mat@openerp.com>
Mon, 4 Nov 2013 15:39:46 +0000 (16:39 +0100)
committerMartin Trigaux <mat@openerp.com>
Mon, 4 Nov 2013 15:39:46 +0000 (16:39 +0100)
bzr revid: mat@openerp.com-20131104153946-vhpnbn8t1oxfaep1

openerp/addons/base/tests/test_base.py

index 3459735..d566ba9 100644 (file)
@@ -304,5 +304,47 @@ class test_partner_recursion(common.TransactionCase):
         cr, uid, p1, p2, p3 = self.cr, self.uid, self.p1, self.p2, self.p3
         self.assertTrue(self.res_partner.write(cr, uid, [p1,p2,p3], {'phone': '123456'}))
 
+class test_translation(common.TransactionCase):
+
+    def setUp(self):
+        super(test_translation, self).setUp()
+        self.res_category = self.registry('res.partner.category')
+        self.ir_translation = self.registry('ir.translation')
+        cr, uid = self.cr, self.uid
+        self.registry('ir.translation').load(cr, ['base'], ['fr_BE'])
+        self.cat_id = self.res_category.create(cr, uid, {'name': 'Customers'})
+        self.ir_translation.create(cr, uid, {'name': 'res.partner.category,name', 'module':'base', 
+            'value': 'Clients', 'res_id': self.cat_id, 'lang':'fr_BE', 'state':'translated', 'type': 'model'})
+
+    def test_101_create_translated_record(self):
+        cr, uid = self.cr, self.uid
+        
+        no_context_cat = self.res_category.browse(cr, uid, self.cat_id)
+        self.assertTrue(no_context_cat.name == 'Customers', "Error in basic name_get")
+
+        fr_context_cat = self.res_category.browse(cr, uid, self.cat_id, context={'lang':'fr_BE'})
+        self.assertTrue(fr_context_cat.name == 'Clients', "Translation not found")
+
+    def test_102_duplicate_record(self):
+        cr, uid = self.cr, self.uid
+        self.new_cat_id = self.res_category.copy(cr, uid, self.cat_id, context={'lang':'fr_BE'})
+
+        no_context_cat = self.res_category.browse(cr, uid, self.new_cat_id)
+        self.assertTrue(no_context_cat.name == 'Customers', "Duplication did not set untranslated value")
+
+        fr_context_cat = self.res_category.browse(cr, uid, self.new_cat_id, context={'lang':'fr_BE'})
+        self.assertTrue(fr_context_cat.name == 'Clients', "Did not found translation for initial value")
+
+    def test_103_duplicate_record_fr(self):
+        cr, uid = self.cr, self.uid
+        self.new_fr_cat_id = self.res_category.copy(cr, uid, self.cat_id, default={'name': 'Clients (copie)'}, context={'lang':'fr_BE'})
+
+        no_context_cat = self.res_category.browse(cr, uid, self.new_fr_cat_id)
+        self.assertTrue(no_context_cat.name == 'Clients (copie)', "Duplication with default value not applied")
+
+        fr_context_cat = self.res_category.browse(cr, uid, self.new_fr_cat_id, context={'lang':'fr_BE'})
+        self.assertTrue(fr_context_cat.name == 'Clients', "Did not found translation for initial value")
+
+
 if __name__ == '__main__':
     unittest2.main()