1 # -*- coding: utf-8 -*-
2 # Run with one of these commands:
3 # > OPENERP_ADDONS_PATH='../../addons/trunk' OPENERP_PORT=8069 \
4 # OPENERP_DATABASE=yy PYTHONPATH=. python tests/test_xmlrpc.py
5 # > OPENERP_ADDONS_PATH='../../addons/trunk' OPENERP_PORT=8069 \
6 # OPENERP_DATABASE=yy nosetests tests/test_xmlrpc.py
7 # > OPENERP_ADDONS_PATH='../../../addons/trunk' OPENERP_PORT=8069 \
8 # OPENERP_DATABASE=yy PYTHONPATH=../:. unit2 test_xmlrpc
16 ADDONS_PATH = os.environ['OPENERP_ADDONS_PATH']
17 PORT = int(os.environ['OPENERP_PORT'])
18 DB = os.environ['OPENERP_DATABASE']
24 ADMIN_PASSWORD = 'admin'
26 common_proxy_60 = None
28 object_proxy_60 = None
32 Start the OpenERP server similary to the openerp-server script and
33 setup some xmlrpclib proxies.
35 openerp.tools.config['addons_path'] = ADDONS_PATH
36 openerp.tools.config['xmlrpc_port'] = PORT
37 openerp.service.start_services()
39 global common_proxy_60
41 global object_proxy_60
43 # Use the old (pre 6.1) API.
44 url = 'http://%s:%d/xmlrpc/' % (HOST, PORT)
45 common_proxy_60 = xmlrpclib.ServerProxy(url + 'common')
46 db_proxy_60 = xmlrpclib.ServerProxy(url + 'db')
47 object_proxy_60 = xmlrpclib.ServerProxy(url + 'object')
50 """ Shutdown the OpenERP server similarly to a single ctrl-c. """
51 openerp.service.stop_services()
53 class test_xmlrpc(unittest2.TestCase):
55 def test_xmlrpc_create_database_polling(self):
57 Simulate a OpenERP client requesting the creation of a database and
58 polling the server until the creation is complete.
60 progress_id = db_proxy_60.create(ADMIN_PASSWORD, DB, True, False,
64 progress, users = db_proxy_60.get_progress(ADMIN_PASSWORD,
69 def test_xmlrpc_login(self):
70 """ Try to login on the common service. """
71 uid = common_proxy_60.login(DB, ADMIN_USER, ADMIN_PASSWORD)
72 assert uid == ADMIN_USER_ID
74 def test_xmlrpc_ir_model_search(self):
75 """ Try a search on the object service. """
76 ids = object_proxy_60.execute(DB, ADMIN_USER_ID, ADMIN_PASSWORD,
77 'ir.model', 'search', [])
79 ids = object_proxy_60.execute(DB, ADMIN_USER_ID, ADMIN_PASSWORD,
80 'ir.model', 'search', [], {})
83 if __name__ == '__main__':