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)