[REM] Removed useless argument causing problem in case of buggy load_state
[odoo/odoo.git] / openerp / tests / common.py
1 # -*- coding: utf-8 -*-
2 import os
3 import time
4 import unittest2
5 import xmlrpclib
6
7 import openerp
8
9 # The openerp library is supposed already configured.
10 ADDONS_PATH = openerp.tools.config['addons_path']
11 PORT = openerp.tools.config['xmlrpc_port']
12 DB = openerp.tools.config['db_name']
13
14 HOST = '127.0.0.1'
15
16 ADMIN_USER = 'admin'
17 ADMIN_USER_ID = 1
18 ADMIN_PASSWORD = 'admin'
19
20 def start_openerp():
21     """
22     Start the OpenERP server similary to the openerp-server script.
23     """
24     openerp.service.start_services()
25
26     # Ugly way to ensure the server is listening.
27     time.sleep(2)
28
29 def stop_openerp():
30     """
31     Shutdown the OpenERP server similarly to a single ctrl-c.
32     """
33     openerp.service.stop_services()
34
35 class TransactionCase(unittest2.TestCase):
36     """
37     Subclass of TestCase with a single transaction, rolled-back at the end of
38     the tests.
39     """
40
41     def setUp(self):
42         self.cr = openerp.modules.registry.RegistryManager.get(DB).db.cursor()
43         self.uid = openerp.SUPERUSER_ID
44
45     def tearDown(self):
46         self.cr.rollback()
47         self.cr.close()
48
49     def registry(self, model):
50         return openerp.modules.registry.RegistryManager.get(DB)[model]
51
52 class RpcCase(unittest2.TestCase):
53     """
54     Subclass of TestCase with a few XML-RPC proxies.
55     """
56
57     def __init__(self, name):
58         super(RpcCase, self).__init__(name)
59
60         class A(object):
61             pass
62         self.proxy = A()
63
64         # Use the old (pre 6.1) API.
65         self.proxy.url_60 = url_60 = 'http://%s:%d/xmlrpc/' % (HOST, PORT)
66         self.proxy.common_60 = xmlrpclib.ServerProxy(url_60 + 'common')
67         self.proxy.db_60 = xmlrpclib.ServerProxy(url_60 + 'db')
68         self.proxy.object_60 = xmlrpclib.ServerProxy(url_60 + 'object')
69
70         # Use the new (6.1) API.
71         self.proxy.url_61 = url_61 = 'http://%s:%d/openerp/xmlrpc/1/' % (HOST, PORT)
72         self.proxy.common_61 = xmlrpclib.ServerProxy(url_61 + 'common')
73         self.proxy.db_61 = xmlrpclib.ServerProxy(url_61 + 'db')
74         self.proxy.model_61 = xmlrpclib.ServerProxy(url_61 + 'model/' + DB)
75
76     @classmethod
77     def generate_database_name(cls):
78         if hasattr(cls, '_database_id'):
79             cls._database_id += 1
80         else:
81             cls._database_id = 0
82         return '_fresh_name_' + str(cls._database_id) + '_'
83
84 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: