1
# -*- coding: utf-8 -*-
6
import openerp.tests.common as common
7
from openerp.addons.connector.queue.job import (
11
from openerp.addons.connector.session import (
13
from .common import (mock_api,
15
from .test_data import magento_base_responses
16
from ..unit.import_synchronizer import import_batch, import_record
17
from ..unit.export_synchronizer import export_record
18
from ..related_action import unwrap_binding, link
21
class test_related_action_storage(common.TransactionCase):
22
""" Test related actions on stored jobs """
25
super(test_related_action_storage, self).setUp()
26
cr, uid = self.cr, self.uid
27
backend_model = self.registry('magento.backend')
28
self.session = ConnectorSession(cr, uid)
29
warehouse_id = self.ref('stock.warehouse0')
30
backend_id = backend_model.create(
33
{'name': 'Test Magento',
35
'location': 'http://anyurl',
36
'username': 'username',
37
'warehouse_id': warehouse_id,
39
self.backend = backend_model.browse(cr, uid, backend_id)
40
# import the base informations
41
with mock_api(magento_base_responses):
42
import_batch(self.session, 'magento.website', backend_id)
43
import_batch(self.session, 'magento.store', backend_id)
44
import_batch(self.session, 'magento.storeview', backend_id)
45
self.MagentoProduct = self.registry('magento.product.product')
46
self.QueueJob = self.registry('queue.job')
48
def test_unwrap_binding(self):
49
""" Open a related action opening an unwrapped binding """
50
cr, uid = self.cr, self.uid
51
product_id = self.ref('product.product_product_7')
52
magento_product_id = self.MagentoProduct.create(
54
{'openerp_id': product_id,
55
'backend_id': self.backend.id})
56
stored = self._create_job(export_record, 'magento.product.product',
60
'type': 'ir.actions.act_window',
64
'res_model': 'product.product',
66
self.assertEquals(stored.open_related_action(), expected)
68
def _create_job(self, func, *args):
69
cr, uid = self.cr, self.uid
70
job = Job(func=func, args=args)
71
storage = OpenERPJobStorage(self.session)
73
stored_ids = self.QueueJob.search(self.cr, self.uid,
74
[('uuid', '=', job.uuid)])
75
self.assertEqual(len(stored_ids), 1)
76
return self.QueueJob.browse(cr, uid, stored_ids[0])
79
""" Open a related action opening an url on Magento """
80
self.backend.write({'admin_location': 'http://www.example.com/admin'})
81
self.backend.refresh()
82
stored = self._create_job(import_record, 'magento.product.product',
83
self.backend.id, 123456)
85
'type': 'ir.actions.act_url',
87
'url': 'http://www.example.com/admin/catalog_product/edit/id/123456',
89
self.assertEquals(stored.open_related_action(), expected)
91
def test_link_no_location(self):
92
""" Open a related action opening an url but admin location is not configured """
93
self.backend.write({'admin_location': False})
94
self.backend.refresh()
95
stored = self._create_job(import_record, 'magento.product.product',
96
self.backend.id, 123456)
97
with self.assertRaises(openerp.osv.orm.except_orm):
98
stored.open_related_action()