diff --git a/openerp/addons/__init__.py b/openerp/addons/__init__.py
index 9554e9bd850..e040e19defd 100644
--- a/openerp/addons/__init__.py
+++ b/openerp/addons/__init__.py
@@ -34,7 +34,4 @@ Importing them from here is deprecated.
"""
-# get_module_path is used only by base_module_quality
-from openerp.modules import get_module_resource, get_module_path
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/openerp/addons/base/__openerp__.py b/openerp/addons/base/__openerp__.py
index 808dd18d3e5..3c3c290f986 100644
--- a/openerp/addons/base/__openerp__.py
+++ b/openerp/addons/base/__openerp__.py
@@ -92,8 +92,6 @@ The kernel of OpenERP, needed for all installation.
],
'test': [
'test/base_test.yml',
- 'test/test_context.xml',
- 'test/bug_lp541545.xml',
'test/test_osv_expression.yml',
'test/test_ir_rule.yml', # <-- These tests modify/add/delete ir_rules.
],
diff --git a/openerp/addons/base/test/bug_lp541545.xml b/openerp/addons/base/test/bug_lp541545.xml
deleted file mode 100644
index 79c3c05c729..00000000000
--- a/openerp/addons/base/test/bug_lp541545.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/openerp/addons/base/test/test_context.xml b/openerp/addons/base/test/test_context.xml
deleted file mode 100644
index d308fc3dea8..00000000000
--- a/openerp/addons/base/test/test_context.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- 59.9739
-
-
-
diff --git a/openerp/addons/base/tests/__init__.py b/openerp/addons/base/tests/__init__.py
index 0306839b5d3..e3053285db6 100644
--- a/openerp/addons/base/tests/__init__.py
+++ b/openerp/addons/base/tests/__init__.py
@@ -1,3 +1,17 @@
+import test_acl
+import test_basecase
+import test_db_cursor
+import test_expression
+import test_fields
+import test_ir_filters
+import test_ir_sequence
+import test_mail
+import test_orm
+import test_osv
+import test_translate
+#import test_uninstall
+import test_view_validation
+import test_xmlrpc
import test_base
import test_expression
import test_ir_actions
@@ -8,16 +22,4 @@ import test_res_config
import test_res_lang
import test_search
import test_views
-
-checks = [
- test_base,
- test_expression,
- test_ir_actions,
- test_ir_attachment,
- test_ir_values,
- test_menu,
- test_res_config,
- test_res_lang,
- test_search,
- test_views,
-]
+import test_phantom
diff --git a/openerp/tests/test_acl.py b/openerp/addons/base/tests/test_acl.py
similarity index 99%
rename from openerp/tests/test_acl.py
rename to openerp/addons/base/tests/test_acl.py
index 798561c47bf..f3fa0bb2b1d 100644
--- a/openerp/tests/test_acl.py
+++ b/openerp/addons/base/tests/test_acl.py
@@ -3,8 +3,7 @@ from lxml import etree
import openerp
from openerp.tools.misc import mute_logger
-
-import common
+from openerp.tests import common
# test group that demo user should not have
GROUP_TECHNICAL_FEATURES = 'base.group_no_one'
diff --git a/openerp/tests/test_basecase.py b/openerp/addons/base/tests/test_basecase.py
similarity index 99%
rename from openerp/tests/test_basecase.py
rename to openerp/addons/base/tests/test_basecase.py
index 376494b571e..8b06eff7858 100644
--- a/openerp/tests/test_basecase.py
+++ b/openerp/addons/base/tests/test_basecase.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
import unittest2
-import common
+from openerp.tests import common
class test_single_transaction_case(common.SingleTransactionCase):
"""
diff --git a/openerp/tests/test_db_cursor.py b/openerp/addons/base/tests/test_db_cursor.py
similarity index 96%
rename from openerp/tests/test_db_cursor.py
rename to openerp/addons/base/tests/test_db_cursor.py
index dba1cf47b64..b3ce36467bb 100644
--- a/openerp/tests/test_db_cursor.py
+++ b/openerp/addons/base/tests/test_db_cursor.py
@@ -4,7 +4,7 @@ import unittest2
import openerp
from openerp.tools.misc import mute_logger
-import common
+from openerp.tests import common
DB = common.DB
ADMIN_USER_ID = common.ADMIN_USER_ID
diff --git a/openerp/addons/base/tests/test_expression.py b/openerp/addons/base/tests/test_expression.py
index 4f533a5e170..a05009b0252 100644
--- a/openerp/addons/base/tests/test_expression.py
+++ b/openerp/addons/base/tests/test_expression.py
@@ -1,8 +1,9 @@
import unittest2
+
+import openerp
from openerp.osv.orm import BaseModel
import openerp.tests.common as common
-
class test_expression(common.TransactionCase):
def _reinit_mock(self):
@@ -439,5 +440,13 @@ class test_expression(common.TransactionCase):
partner_parent_id_col._auto_join = False
state_country_id_col._auto_join = False
+ def test_30_normalize_domain(self):
+ expression = openerp.osv.expression
+ norm_domain = domain = ['&', (1, '=', 1), ('a', '=', 'b')]
+ assert norm_domain == expression.normalize_domain(domain), "Normalized domains should be left untouched"
+ domain = [('x', 'in', ['y', 'z']), ('a.v', '=', 'e'), '|', '|', ('a', '=', 'b'), '!', ('c', '>', 'd'), ('e', '!=', 'f'), ('g', '=', 'h')]
+ norm_domain = ['&', '&', '&'] + domain
+ assert norm_domain == expression.normalize_domain(domain), "Non-normalized domains should be properly normalized"
+
if __name__ == '__main__':
unittest2.main()
diff --git a/openerp/tests/test_fields.py b/openerp/addons/base/tests/test_fields.py
similarity index 99%
rename from openerp/tests/test_fields.py
rename to openerp/addons/base/tests/test_fields.py
index 774bbf41fb2..6dd016ccaf9 100644
--- a/openerp/tests/test_fields.py
+++ b/openerp/addons/base/tests/test_fields.py
@@ -1,9 +1,8 @@
#
# test cases for fields access, etc.
#
-import common
-
from openerp.osv import fields
+from openerp.tests import common
class TestRelatedField(common.TransactionCase):
diff --git a/openerp/tests/test_func.py b/openerp/addons/base/tests/test_func.py
similarity index 100%
rename from openerp/tests/test_func.py
rename to openerp/addons/base/tests/test_func.py
diff --git a/openerp/tests/test_ir_filters.py b/openerp/addons/base/tests/test_ir_filters.py
similarity index 99%
rename from openerp/tests/test_ir_filters.py
rename to openerp/addons/base/tests/test_ir_filters.py
index 64d5c9820d3..04ecca74525 100644
--- a/openerp/tests/test_ir_filters.py
+++ b/openerp/addons/base/tests/test_ir_filters.py
@@ -2,7 +2,7 @@
import functools
from openerp import exceptions
-from . import common
+from openerp.tests import common
def noid(d):
""" Removes `id` key from a dict so we don't have to keep these things
diff --git a/openerp/tests/test_ir_sequence.py b/openerp/addons/base/tests/test_ir_sequence.py
similarity index 99%
rename from openerp/tests/test_ir_sequence.py
rename to openerp/addons/base/tests/test_ir_sequence.py
index cbb1a347038..bc428d7f647 100644
--- a/openerp/tests/test_ir_sequence.py
+++ b/openerp/addons/base/tests/test_ir_sequence.py
@@ -11,7 +11,7 @@ import psycopg2
import unittest2
import openerp
-import common
+from openerp.tests import common
DB = common.DB
ADMIN_USER_ID = common.ADMIN_USER_ID
diff --git a/openerp/tests/test_mail.py b/openerp/addons/base/tests/test_mail.py
similarity index 99%
rename from openerp/tests/test_mail.py
rename to openerp/addons/base/tests/test_mail.py
index d99a95afbe8..4ebec837c6d 100755
--- a/openerp/tests/test_mail.py
+++ b/openerp/addons/base/tests/test_mail.py
@@ -26,9 +26,10 @@ import unittest2
from lxml import etree
-from openerp.tests import test_mail_examples
from openerp.tools import html_sanitize, html_email_clean, append_content_to_html, plaintext2html, email_split
+import test_mail_examples
+
class TestSanitizer(unittest2.TestCase):
""" Test the html sanitizer that filters html to remove unwanted attributes """
diff --git a/openerp/tests/test_mail_examples.py b/openerp/addons/base/tests/test_mail_examples.py
similarity index 100%
rename from openerp/tests/test_mail_examples.py
rename to openerp/addons/base/tests/test_mail_examples.py
diff --git a/openerp/tests/test_misc.py b/openerp/addons/base/tests/test_misc.py
similarity index 84%
rename from openerp/tests/test_misc.py
rename to openerp/addons/base/tests/test_misc.py
index 865b51df660..11cc3f49638 100644
--- a/openerp/tests/test_misc.py
+++ b/openerp/addons/base/tests/test_misc.py
@@ -1,13 +1,6 @@
-# This test can be run stand-alone with something like:
-# > PYTHONPATH=. python2 openerp/tests/test_misc.py
-import datetime
-import locale
import unittest2
-import babel
-import babel.dates
-
-from ..tools import misc
+from openerp.tools import misc
class test_countingstream(unittest2.TestCase):
diff --git a/openerp/tests/test_orm.py b/openerp/addons/base/tests/test_orm.py
similarity index 99%
rename from openerp/tests/test_orm.py
rename to openerp/addons/base/tests/test_orm.py
index b85a0e26adb..fcd81965b8c 100644
--- a/openerp/tests/test_orm.py
+++ b/openerp/addons/base/tests/test_orm.py
@@ -1,6 +1,6 @@
from collections import defaultdict
from openerp.tools import mute_logger
-import common
+from openerp.tests import common
UID = common.ADMIN_USER_ID
DB = common.DB
diff --git a/openerp/tests/test_osv.py b/openerp/addons/base/tests/test_osv.py
similarity index 100%
rename from openerp/tests/test_osv.py
rename to openerp/addons/base/tests/test_osv.py
diff --git a/openerp/addons/base/tests/test_phantom.py b/openerp/addons/base/tests/test_phantom.py
new file mode 100644
index 00000000000..e729b2e95cc
--- /dev/null
+++ b/openerp/addons/base/tests/test_phantom.py
@@ -0,0 +1,11 @@
+# -*- coding: utf-8 -*-
+
+import openerp
+from openerp.tests import common
+
+class test_phantom(common.HttpCase):
+
+ def test_01_dummy(self):
+ self.phantomjs(openerp.modules.module.get_module_resource('base','tests','test_phantom_dummy.js'))
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/openerp/addons/base/tests/test_phantom_dummy.js b/openerp/addons/base/tests/test_phantom_dummy.js
new file mode 100644
index 00000000000..7a1f2b362af
--- /dev/null
+++ b/openerp/addons/base/tests/test_phantom_dummy.js
@@ -0,0 +1,4 @@
+console.log('{ "event": "success", "message": "Phantomjs success"}');
+// For a failure:
+// console.log('{ "event": "failure", "message": "The test failed" }');
+phantom.exit();
diff --git a/openerp/tests/test_qweb.py b/openerp/addons/base/tests/test_qweb.py
similarity index 100%
rename from openerp/tests/test_qweb.py
rename to openerp/addons/base/tests/test_qweb.py
diff --git a/openerp/tests/test_translate.py b/openerp/addons/base/tests/test_translate.py
similarity index 100%
rename from openerp/tests/test_translate.py
rename to openerp/addons/base/tests/test_translate.py
diff --git a/openerp/addons/base/tests/test_uninstall.py b/openerp/addons/base/tests/test_uninstall.py
new file mode 100644
index 00000000000..2425249afa4
--- /dev/null
+++ b/openerp/addons/base/tests/test_uninstall.py
@@ -0,0 +1,89 @@
+# -*- coding: utf-8 -*-
+# This assumes an existing but uninitialized database.
+import unittest2
+
+import openerp
+from openerp import SUPERUSER_ID
+import common
+
+DB = common.DB
+ADMIN_USER_ID = common.ADMIN_USER_ID
+
+def registry(model):
+ return openerp.modules.registry.RegistryManager.get(DB)[model]
+
+def cursor():
+ return openerp.modules.registry.RegistryManager.get(DB).db.cursor()
+
+def get_module(module_name):
+ registry = openerp.modules.registry.RegistryManager.get(DB)
+ return registry.get(module_name)
+
+def reload_registry():
+ openerp.modules.registry.RegistryManager.new(
+ DB, update_module=True)
+
+def search_registry(model_name, domain):
+ cr = cursor()
+ model = registry(model_name)
+ record_ids = model.search(cr, SUPERUSER_ID, domain, {})
+ cr.close()
+ return record_ids
+
+def install_module(module_name):
+ ir_module_module = registry('ir.module.module')
+ cr = cursor()
+ module_ids = ir_module_module.search(cr, SUPERUSER_ID,
+ [('name', '=', module_name)], {})
+ assert len(module_ids) == 1
+ ir_module_module.button_install(cr, SUPERUSER_ID, module_ids, {})
+ cr.commit()
+ cr.close()
+ reload_registry()
+
+def uninstall_module(module_name):
+ ir_module_module = registry('ir.module.module')
+ cr = cursor()
+ module_ids = ir_module_module.search(cr, SUPERUSER_ID,
+ [('name', '=', module_name)], {})
+ assert len(module_ids) == 1
+ ir_module_module.button_uninstall(cr, SUPERUSER_ID, module_ids, {})
+ cr.commit()
+ cr.close()
+ reload_registry()
+
+class test_uninstall(unittest2.TestCase):
+ """
+ Test the install/uninstall of a test module. The module is available in
+ `openerp.tests` which should be present in the addons-path.
+ """
+
+ def test_01_install(self):
+ """ Check a few things showing the module is installed. """
+ install_module('test_uninstall')
+ assert get_module('test_uninstall.model')
+
+ assert search_registry('ir.model.data',
+ [('module', '=', 'test_uninstall')])
+
+ assert search_registry('ir.model.fields',
+ [('model', '=', 'test_uninstall.model')])
+
+ def test_02_uninstall(self):
+ """ Check a few things showing the module is uninstalled. """
+ uninstall_module('test_uninstall')
+ assert not get_module('test_uninstall.model')
+
+ assert not search_registry('ir.model.data',
+ [('module', '=', 'test_uninstall')])
+
+ assert not search_registry('ir.model.fields',
+ [('model', '=', 'test_uninstall.model')])
+
+
+
+if __name__ == '__main__':
+ unittest2.main()
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/openerp/tests/test_view_validation.py b/openerp/addons/base/tests/test_view_validation.py
similarity index 100%
rename from openerp/tests/test_view_validation.py
rename to openerp/addons/base/tests/test_view_validation.py
diff --git a/openerp/addons/base/tests/test_xmlrpc.py b/openerp/addons/base/tests/test_xmlrpc.py
new file mode 100644
index 00000000000..00be7e78df5
--- /dev/null
+++ b/openerp/addons/base/tests/test_xmlrpc.py
@@ -0,0 +1,40 @@
+# -*- coding: utf-8 -*-
+import time
+import unittest2
+import xmlrpclib
+
+from openerp.tests import common
+
+DB = common.DB
+ADMIN_USER = common.ADMIN_USER
+ADMIN_USER_ID = common.ADMIN_USER_ID
+ADMIN_PASSWORD = common.ADMIN_PASSWORD
+
+class test_xmlrpc(common.HttpCase):
+
+ def test_01_xmlrpc_login(self):
+ """ Try to login on the common service. """
+ uid = self.xmlrpc_common.login(DB, ADMIN_USER, ADMIN_PASSWORD)
+ self.assertTrue(uid == ADMIN_USER_ID)
+
+ def test_xmlrpc_ir_model_search(self):
+ """ Try a search on the object service. """
+ o = self.xmlrpc_object
+ ids = o.execute(DB, ADMIN_USER_ID, ADMIN_PASSWORD, 'ir.model', 'search', [])
+ self.assertIsInstance(ids, list)
+ ids = o.execute(DB, ADMIN_USER_ID, ADMIN_PASSWORD, 'ir.model', 'search', [], {})
+ self.assertIsInstance(ids, list)
+
+ # This test was written to test the creation of a new RPC endpoint, not
+ # really for the EDI itself.
+ #def test_xmlrpc_import_edi_document(self):
+ # """ Try to call an EDI method. """
+ # msg_re = 'EDI Document is empty!'
+ # with self.assertRaisesRegexp(Exception, msg_re):
+ # self.proxy.edi_60.import_edi_document(DB, ADMIN_USER_ID, ADMIN_PASSWORD, {})
+
+if __name__ == '__main__':
+ unittest2.main()
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/openerp/tests/addons/test_convert/__init__.py b/openerp/addons/test_convert/__init__.py
similarity index 100%
rename from openerp/tests/addons/test_convert/__init__.py
rename to openerp/addons/test_convert/__init__.py
diff --git a/openerp/tests/addons/test_convert/__openerp__.py b/openerp/addons/test_convert/__openerp__.py
similarity index 100%
rename from openerp/tests/addons/test_convert/__openerp__.py
rename to openerp/addons/test_convert/__openerp__.py
diff --git a/openerp/tests/addons/test_convert/test_file.txt b/openerp/addons/test_convert/test_file.txt
similarity index 100%
rename from openerp/tests/addons/test_convert/test_file.txt
rename to openerp/addons/test_convert/test_file.txt
diff --git a/openerp/tests/addons/test_convert/tests/__init__.py b/openerp/addons/test_convert/tests/__init__.py
similarity index 100%
rename from openerp/tests/addons/test_convert/tests/__init__.py
rename to openerp/addons/test_convert/tests/__init__.py
diff --git a/openerp/tests/addons/test_convert/tests/test_convert.py b/openerp/addons/test_convert/tests/test_convert.py
similarity index 100%
rename from openerp/tests/addons/test_convert/tests/test_convert.py
rename to openerp/addons/test_convert/tests/test_convert.py
diff --git a/openerp/tests/addons/test_converter/__init__.py b/openerp/addons/test_converter/__init__.py
similarity index 100%
rename from openerp/tests/addons/test_converter/__init__.py
rename to openerp/addons/test_converter/__init__.py
diff --git a/openerp/tests/addons/test_converter/__openerp__.py b/openerp/addons/test_converter/__openerp__.py
similarity index 100%
rename from openerp/tests/addons/test_converter/__openerp__.py
rename to openerp/addons/test_converter/__openerp__.py
diff --git a/openerp/tests/addons/test_converter/ir.model.access.csv b/openerp/addons/test_converter/ir.model.access.csv
similarity index 100%
rename from openerp/tests/addons/test_converter/ir.model.access.csv
rename to openerp/addons/test_converter/ir.model.access.csv
diff --git a/openerp/tests/addons/test_converter/models.py b/openerp/addons/test_converter/models.py
similarity index 100%
rename from openerp/tests/addons/test_converter/models.py
rename to openerp/addons/test_converter/models.py
diff --git a/openerp/tests/addons/test_converter/tests/__init__.py b/openerp/addons/test_converter/tests/__init__.py
similarity index 100%
rename from openerp/tests/addons/test_converter/tests/__init__.py
rename to openerp/addons/test_converter/tests/__init__.py
diff --git a/openerp/tests/addons/test_converter/tests/test_html.py b/openerp/addons/test_converter/tests/test_html.py
similarity index 100%
rename from openerp/tests/addons/test_converter/tests/test_html.py
rename to openerp/addons/test_converter/tests/test_html.py
diff --git a/openerp/tests/addons/test_converter/tests/test_vectors/image b/openerp/addons/test_converter/tests/test_vectors/image
similarity index 100%
rename from openerp/tests/addons/test_converter/tests/test_vectors/image
rename to openerp/addons/test_converter/tests/test_vectors/image
diff --git a/openerp/tests/addons/test_converter/tests/test_vectors/pdf b/openerp/addons/test_converter/tests/test_vectors/pdf
similarity index 100%
rename from openerp/tests/addons/test_converter/tests/test_vectors/pdf
rename to openerp/addons/test_converter/tests/test_vectors/pdf
diff --git a/openerp/tests/addons/test_converter/tests/test_vectors/pptx b/openerp/addons/test_converter/tests/test_vectors/pptx
similarity index 100%
rename from openerp/tests/addons/test_converter/tests/test_vectors/pptx
rename to openerp/addons/test_converter/tests/test_vectors/pptx
diff --git a/openerp/tests/addons/test_exceptions/__init__.py b/openerp/addons/test_exceptions/__init__.py
similarity index 100%
rename from openerp/tests/addons/test_exceptions/__init__.py
rename to openerp/addons/test_exceptions/__init__.py
diff --git a/openerp/tests/addons/test_exceptions/__openerp__.py b/openerp/addons/test_exceptions/__openerp__.py
similarity index 100%
rename from openerp/tests/addons/test_exceptions/__openerp__.py
rename to openerp/addons/test_exceptions/__openerp__.py
diff --git a/openerp/tests/addons/test_exceptions/ir.model.access.csv b/openerp/addons/test_exceptions/ir.model.access.csv
similarity index 100%
rename from openerp/tests/addons/test_exceptions/ir.model.access.csv
rename to openerp/addons/test_exceptions/ir.model.access.csv
diff --git a/openerp/tests/addons/test_exceptions/models.py b/openerp/addons/test_exceptions/models.py
similarity index 100%
rename from openerp/tests/addons/test_exceptions/models.py
rename to openerp/addons/test_exceptions/models.py
diff --git a/openerp/tests/addons/test_exceptions/view.xml b/openerp/addons/test_exceptions/view.xml
similarity index 100%
rename from openerp/tests/addons/test_exceptions/view.xml
rename to openerp/addons/test_exceptions/view.xml
diff --git a/openerp/tests/addons/test_impex/__init__.py b/openerp/addons/test_impex/__init__.py
similarity index 100%
rename from openerp/tests/addons/test_impex/__init__.py
rename to openerp/addons/test_impex/__init__.py
diff --git a/openerp/tests/addons/test_impex/__openerp__.py b/openerp/addons/test_impex/__openerp__.py
similarity index 100%
rename from openerp/tests/addons/test_impex/__openerp__.py
rename to openerp/addons/test_impex/__openerp__.py
diff --git a/openerp/tests/addons/test_impex/ir.model.access.csv b/openerp/addons/test_impex/ir.model.access.csv
similarity index 100%
rename from openerp/tests/addons/test_impex/ir.model.access.csv
rename to openerp/addons/test_impex/ir.model.access.csv
diff --git a/openerp/tests/addons/test_impex/models.py b/openerp/addons/test_impex/models.py
similarity index 100%
rename from openerp/tests/addons/test_impex/models.py
rename to openerp/addons/test_impex/models.py
diff --git a/openerp/tests/addons/test_impex/tests/__init__.py b/openerp/addons/test_impex/tests/__init__.py
similarity index 100%
rename from openerp/tests/addons/test_impex/tests/__init__.py
rename to openerp/addons/test_impex/tests/__init__.py
diff --git a/openerp/tests/addons/test_impex/tests/contacts.json b/openerp/addons/test_impex/tests/contacts.json
similarity index 100%
rename from openerp/tests/addons/test_impex/tests/contacts.json
rename to openerp/addons/test_impex/tests/contacts.json
diff --git a/openerp/tests/addons/test_impex/tests/contacts_big.json b/openerp/addons/test_impex/tests/contacts_big.json
similarity index 100%
rename from openerp/tests/addons/test_impex/tests/contacts_big.json
rename to openerp/addons/test_impex/tests/contacts_big.json
diff --git a/openerp/tests/addons/test_impex/tests/test_export.py b/openerp/addons/test_impex/tests/test_export.py
similarity index 100%
rename from openerp/tests/addons/test_impex/tests/test_export.py
rename to openerp/addons/test_impex/tests/test_export.py
diff --git a/openerp/tests/addons/test_impex/tests/test_import.py b/openerp/addons/test_impex/tests/test_import.py
similarity index 100%
rename from openerp/tests/addons/test_impex/tests/test_import.py
rename to openerp/addons/test_impex/tests/test_import.py
diff --git a/openerp/tests/addons/test_impex/tests/test_load.py b/openerp/addons/test_impex/tests/test_load.py
similarity index 100%
rename from openerp/tests/addons/test_impex/tests/test_load.py
rename to openerp/addons/test_impex/tests/test_load.py
diff --git a/openerp/tests/addons/test_limits/__init__.py b/openerp/addons/test_limits/__init__.py
similarity index 100%
rename from openerp/tests/addons/test_limits/__init__.py
rename to openerp/addons/test_limits/__init__.py
diff --git a/openerp/tests/addons/test_limits/__openerp__.py b/openerp/addons/test_limits/__openerp__.py
similarity index 100%
rename from openerp/tests/addons/test_limits/__openerp__.py
rename to openerp/addons/test_limits/__openerp__.py
diff --git a/openerp/tests/addons/test_limits/ir.model.access.csv b/openerp/addons/test_limits/ir.model.access.csv
similarity index 100%
rename from openerp/tests/addons/test_limits/ir.model.access.csv
rename to openerp/addons/test_limits/ir.model.access.csv
diff --git a/openerp/tests/addons/test_limits/models.py b/openerp/addons/test_limits/models.py
similarity index 100%
rename from openerp/tests/addons/test_limits/models.py
rename to openerp/addons/test_limits/models.py
diff --git a/openerp/tests/addons/test_uninstall/__init__.py b/openerp/addons/test_uninstall/__init__.py
similarity index 100%
rename from openerp/tests/addons/test_uninstall/__init__.py
rename to openerp/addons/test_uninstall/__init__.py
diff --git a/openerp/tests/addons/test_uninstall/__openerp__.py b/openerp/addons/test_uninstall/__openerp__.py
similarity index 100%
rename from openerp/tests/addons/test_uninstall/__openerp__.py
rename to openerp/addons/test_uninstall/__openerp__.py
diff --git a/openerp/tests/addons/test_uninstall/ir.model.access.csv b/openerp/addons/test_uninstall/ir.model.access.csv
similarity index 100%
rename from openerp/tests/addons/test_uninstall/ir.model.access.csv
rename to openerp/addons/test_uninstall/ir.model.access.csv
diff --git a/openerp/tests/addons/test_uninstall/models.py b/openerp/addons/test_uninstall/models.py
similarity index 100%
rename from openerp/tests/addons/test_uninstall/models.py
rename to openerp/addons/test_uninstall/models.py
diff --git a/openerp/tests/addons/test_workflow/__init__.py b/openerp/addons/test_workflow/__init__.py
similarity index 100%
rename from openerp/tests/addons/test_workflow/__init__.py
rename to openerp/addons/test_workflow/__init__.py
diff --git a/openerp/tests/addons/test_workflow/__openerp__.py b/openerp/addons/test_workflow/__openerp__.py
similarity index 100%
rename from openerp/tests/addons/test_workflow/__openerp__.py
rename to openerp/addons/test_workflow/__openerp__.py
diff --git a/openerp/tests/addons/test_workflow/data.xml b/openerp/addons/test_workflow/data.xml
similarity index 100%
rename from openerp/tests/addons/test_workflow/data.xml
rename to openerp/addons/test_workflow/data.xml
diff --git a/openerp/tests/addons/test_workflow/ir.model.access.csv b/openerp/addons/test_workflow/ir.model.access.csv
similarity index 100%
rename from openerp/tests/addons/test_workflow/ir.model.access.csv
rename to openerp/addons/test_workflow/ir.model.access.csv
diff --git a/openerp/tests/addons/test_workflow/models.py b/openerp/addons/test_workflow/models.py
similarity index 100%
rename from openerp/tests/addons/test_workflow/models.py
rename to openerp/addons/test_workflow/models.py
diff --git a/openerp/tests/addons/test_workflow/tests/__init__.py b/openerp/addons/test_workflow/tests/__init__.py
similarity index 100%
rename from openerp/tests/addons/test_workflow/tests/__init__.py
rename to openerp/addons/test_workflow/tests/__init__.py
diff --git a/openerp/tests/addons/test_workflow/tests/test_workflow.py b/openerp/addons/test_workflow/tests/test_workflow.py
similarity index 100%
rename from openerp/tests/addons/test_workflow/tests/test_workflow.py
rename to openerp/addons/test_workflow/tests/test_workflow.py
diff --git a/openerp/sql_db.py b/openerp/sql_db.py
index de9d21dcd82..d8dc5c77ac9 100644
--- a/openerp/sql_db.py
+++ b/openerp/sql_db.py
@@ -282,6 +282,9 @@ class Cursor(object):
return self._close(False)
def _close(self, leak=False):
+ #import traceback
+ #traceback.print_stack()
+
if not self._obj:
return
diff --git a/openerp/tests/__init__.py b/openerp/tests/__init__.py
index a74122424de..80b3933b80b 100644
--- a/openerp/tests/__init__.py
+++ b/openerp/tests/__init__.py
@@ -7,43 +7,9 @@ This module groups a few sub-modules containing unittest2 test cases.
Tests can be explicitely added to the `fast_suite` or `checks` lists or not.
See the :ref:`test-framework` section in the :ref:`features` list.
"""
-import test_acl
-import test_basecase
-import test_db_cursor
-import test_expression
-import test_fields
-import test_ir_filters
-import test_ir_sequence
-import test_mail
-import test_misc
-import test_orm
-import test_osv
-import test_translate
-import test_view_validation
-import test_qweb
-import test_func
-# This need a change in `oe run-tests` to only run fast_suite + checks by default.
-# import test_xmlrpc
-fast_suite = [
- test_ir_sequence,
- test_ir_filters
-]
+import common
+from common import *
+
-checks = [
- test_acl,
- test_expression,
- test_mail,
- test_db_cursor,
- test_orm,
- test_fields,
- test_basecase,
- test_view_validation,
- test_misc,
- test_osv,
- test_translate,
- test_qweb,
- test_func,
-]
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/openerp/tests/common.py b/openerp/tests/common.py
index df00e61f140..6d47bc92379 100644
--- a/openerp/tests/common.py
+++ b/openerp/tests/common.py
@@ -3,15 +3,24 @@
The module :mod:`openerp.tests.common` provides a few helpers and classes to write
tests.
"""
+import json
+import os
+import select
+import subprocess
import threading
import time
import unittest2
+import uuid
import xmlrpclib
+import logging
import openerp
+_logger = logging.getLogger(__name__)
+
# The openerp library is supposed already configured.
ADDONS_PATH = openerp.tools.config['addons_path']
+HOST = '127.0.0.1'
PORT = openerp.tools.config['xmlrpc_port']
DB = openerp.tools.config['db_name']
@@ -22,26 +31,11 @@ DB = openerp.tools.config['db_name']
if not DB and hasattr(threading.current_thread(), 'dbname'):
DB = threading.current_thread().dbname
-HOST = '127.0.0.1'
-
ADMIN_USER = 'admin'
ADMIN_USER_ID = openerp.SUPERUSER_ID
ADMIN_PASSWORD = 'admin'
-def start_openerp():
- """
- Start the OpenERP server similary to the openerp-server script.
- """
- openerp.service.start_services()
-
- # Ugly way to ensure the server is listening.
- time.sleep(2)
-
-def stop_openerp():
- """
- Shutdown the OpenERP server similarly to a single ctrl-c.
- """
- openerp.service.stop_services()
+HTTP_SESSION = {}
class BaseCase(unittest2.TestCase):
"""
diff --git a/openerp/tests/test_xmlrpc.py b/openerp/tests/test_xmlrpc.py
deleted file mode 100644
index 12bc828cb29..00000000000
--- a/openerp/tests/test_xmlrpc.py
+++ /dev/null
@@ -1,82 +0,0 @@
-# -*- coding: utf-8 -*-
-# Run with one of these commands:
-# > OPENERP_ADDONS_PATH='../../addons/trunk' OPENERP_PORT=8069 \
-# OPENERP_DATABASE=yy PYTHONPATH=. python tests/test_xmlrpc.py
-# > OPENERP_ADDONS_PATH='../../addons/trunk' OPENERP_PORT=8069 \
-# OPENERP_DATABASE=yy nosetests tests/test_xmlrpc.py
-# > OPENERP_ADDONS_PATH='../../../addons/trunk' OPENERP_PORT=8069 \
-# OPENERP_DATABASE=yy PYTHONPATH=../:. unit2 test_xmlrpc
-import time
-import unittest2
-import xmlrpclib
-
-import common
-
-DB = None
-ADMIN_USER = common.ADMIN_USER
-ADMIN_USER_ID = common.ADMIN_USER_ID
-ADMIN_PASSWORD = common.ADMIN_PASSWORD
-
-def setUpModule():
- common.start_openerp()
- global DB
- DB = common.RpcCase.generate_database_name()
-
-tearDownModule = common.stop_openerp
-
-class test_xmlrpc(common.RpcCase):
-
- def test_00_xmlrpc_create_database_polling(self):
- """
- Simulate a OpenERP client requesting the creation of a database and
- polling the server until the creation is complete.
- """
- progress_id = self.proxy.db_60.create(ADMIN_PASSWORD,DB, True, False,
- ADMIN_PASSWORD)
- while True:
- time.sleep(1)
- progress, users = self.proxy.db_60.get_progress(ADMIN_PASSWORD,
- progress_id)
- if progress == 1.0:
- break
-
- def test_xmlrpc_login(self):
- """ Try to login on the common service. """
- uid = self.proxy.common_60.login(DB, ADMIN_USER, ADMIN_PASSWORD)
- assert uid == ADMIN_USER_ID
-
- def test_xmlrpc_ir_model_search(self):
- """ Try a search on the object service. """
- o = self.proxy.object_60
- ids = o.execute(DB, ADMIN_USER_ID, ADMIN_PASSWORD, 'ir.model', 'search', [])
- assert ids
- ids = o.execute(DB, ADMIN_USER_ID, ADMIN_PASSWORD, 'ir.model', 'search', [], {})
- assert ids
-
- def test_xmlrpc_8_ir_model_search(self):
- """ Try a search on the object service. """
- o = self.proxy.object_8
- ids = o.execute(DB, ADMIN_USER_ID, ADMIN_PASSWORD, 'ir.model', 'search', [])
- assert ids
- ids = o.execute(DB, ADMIN_USER_ID, ADMIN_PASSWORD, 'ir.model', 'search', [], {})
- assert ids
-
- # This test was written to test the creation of a new RPC endpoint, not
- # really for the EDI itself.
- #def test_xmlrpc_import_edi_document(self):
- # """ Try to call an EDI method. """
- # msg_re = 'EDI Document is empty!'
- # with self.assertRaisesRegexp(Exception, msg_re):
- # self.proxy.edi_60.import_edi_document(DB, ADMIN_USER_ID, ADMIN_PASSWORD, {})
-
- def test_zz_xmlrpc_drop_database(self):
- """
- Simulate a OpenERP client requesting the deletion of a database.
- """
- assert self.proxy.db_60.drop(ADMIN_PASSWORD, DB) is True
-
-if __name__ == '__main__':
- unittest2.main()
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/openerp/tools/yaml_import.py b/openerp/tools/yaml_import.py
index 10c3663c173..060d261ef18 100644
--- a/openerp/tools/yaml_import.py
+++ b/openerp/tools/yaml_import.py
@@ -321,7 +321,6 @@ class YamlInterpreter(object):
view_info = model.fields_view_get(self.cr, SUPERUSER_ID, varg, 'form', context)
record_dict = self._create_record(model, fields, view_info, default=default)
- _logger.debug("RECORD_DICT %s" % record_dict)
id = self.pool['ir.model.data']._update(self.cr, SUPERUSER_ID, record.model, \
self.module, record_dict, record.id, noupdate=self.isnoupdate(record), mode=self.mode, context=context)
self.id_map[record.id] = int(id)
@@ -931,7 +930,7 @@ class YamlInterpreter(object):
def yaml_import(cr, module, yamlfile, kind, idref=None, mode='init', noupdate=False, report=None):
if idref is None:
idref = {}
- loglevel = logging.INFO if kind == 'test' else logging.DEBUG
+ loglevel = logging.DEBUG
yaml_string = yamlfile.read()
yaml_interpreter = YamlInterpreter(cr, module, idref, mode, filename=yamlfile.name, report=report, noupdate=noupdate, loglevel=loglevel)
yaml_interpreter.process(yaml_string)