diff --git a/addons/web/doc/conf.py b/addons/web/doc/conf.py index ac5b8907e0e..54434190707 100644 --- a/addons/web/doc/conf.py +++ b/addons/web/doc/conf.py @@ -16,10 +16,9 @@ import sys, os # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) sys.path.append(os.path.abspath('_themes')) -sys.path.append(os.path.abspath('..')) -sys.path.append(os.path.abspath('../openerp')) +sys.path.insert(0, os.path.abspath('../addons')) +sys.path.insert(0, os.path.abspath('..')) # -- General configuration ----------------------------------------------------- @@ -43,7 +42,7 @@ source_suffix = '.rst' master_doc = 'index' # General information about the project. -project = u'OpenERP Server Developers Documentation' +project = u'OpenERP Web Developers Documentation' copyright = u'2012, OpenERP s.a.' # The version info for the project you're documenting, acts as replacement for @@ -53,7 +52,7 @@ copyright = u'2012, OpenERP s.a.' # The short X.Y version. version = '7.0' # The full version, including alpha/beta/rc tags. -release = '7.0b' +release = '7.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -171,7 +170,7 @@ html_sidebars = { #html_file_suffix = None # Output file base name for HTML help builder. -htmlhelp_basename = 'openerp-server-doc' +htmlhelp_basename = 'openerp-web-doc' # -- Options for LaTeX output -------------------------------------------------- @@ -190,7 +189,7 @@ latex_elements = { # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'openerp-server-doc.tex', u'OpenERP Server Developers Documentation', + ('index', 'openerp-web-doc.tex', u'OpenERP Web Developers Documentation', u'OpenERP s.a.', 'manual'), ] @@ -220,7 +219,7 @@ latex_documents = [ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ - ('index', 'openerp-server-doc', u'OpenERP Server Developers Documentation', + ('index', 'openerp-web-doc', u'OpenERP Web Developers Documentation', [u'OpenERP s.a.'], 1) ] @@ -234,8 +233,8 @@ man_pages = [ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - ('index', 'OpenERPServerDocumentation', u'OpenERP Server Developers Documentation', - u'OpenERP s.a.', 'OpenERPServerDocumentation', 'Developers documentation for the openobject-server project.', + ('index', 'OpenERPWebDocumentation', u'OpenERP Web Developers Documentation', + u'OpenERP s.a.', 'OpenERPWebDocumentation', 'Developers documentation for the openerp-web project.', 'Miscellaneous'), ] @@ -248,10 +247,12 @@ texinfo_documents = [ # How to display URL addresses: 'footnote', 'no', or 'inline'. #texinfo_show_urls = 'footnote' +todo_include_todos = True # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { 'python': ('http://docs.python.org/', None), - 'openerpweb': ('http://doc.openerp.com/trunk/developers/web', None), + 'openerpserver': ('http://doc.openerp.com/trunk/developers/server', None), 'openerpdev': ('http://doc.openerp.com/trunk/developers', None), + 'openerpcommand': ('http://doc.openerp.com/trunk/developers/command', None), } diff --git a/addons/web/doc/test-report.txt b/addons/web/doc/test-report.txt new file mode 100644 index 00000000000..ce52618fe20 --- /dev/null +++ b/addons/web/doc/test-report.txt @@ -0,0 +1,25 @@ +test_empty_find (openerp.addons.web.tests.test_dataset.TestDataSetController) ... ok +test_ids_shortcut (openerp.addons.web.tests.test_dataset.TestDataSetController) ... ok +test_regular_find (openerp.addons.web.tests.test_dataset.TestDataSetController) ... ok +web.testing.stack: direct, value, success ... ok +web.testing.stack: direct, deferred, success ... ok +web.testing.stack: direct, value, error ... ok +web.testing.stack: direct, deferred, failure ... ok +web.testing.stack: successful setup ... ok +web.testing.stack: successful teardown ... ok +web.testing.stack: successful setup and teardown ... ok + +[snip ~150 lines] + +test_convert_complex_context (openerp.addons.web.tests.test_view.DomainsAndContextsTest) ... ok +test_convert_complex_domain (openerp.addons.web.tests.test_view.DomainsAndContextsTest) ... ok +test_convert_literal_context (openerp.addons.web.tests.test_view.DomainsAndContextsTest) ... ok +test_convert_literal_domain (openerp.addons.web.tests.test_view.DomainsAndContextsTest) ... ok +test_retrieve_nonliteral_context (openerp.addons.web.tests.test_view.DomainsAndContextsTest) ... ok +test_retrieve_nonliteral_domain (openerp.addons.web.tests.test_view.DomainsAndContextsTest) ... ok + +---------------------------------------------------------------------- +Ran 181 tests in 15.706s + +OK + diff --git a/addons/web/doc/testing.rst b/addons/web/doc/testing.rst index 84ce8bceb22..27574019ea6 100644 --- a/addons/web/doc/testing.rst +++ b/addons/web/doc/testing.rst @@ -599,8 +599,95 @@ directly on the ``window`` object: Running through Python ---------------------- -.. todo:: make that work and document it +The web client includes the means to run these tests on the +command-line (or in a CI system), but while actually running it is +pretty simple the setup of the pre-requisite parts has some +complexities. + +1. Install unittest2_ and QUnitSuite_ in your Python environment. Both + can trivially be installed via `pip `_ or + `easy_install + `_. + + The former is the unit-testing framework used by OpenERP, the + latter is an adapter module to run qunit_ test suites and convert + their result into something unittest2_ can understand and report. + +2. Install PhantomJS_. It is a headless + browser which allows automating running and testing web + pages. QUnitSuite_ uses it to actually run the qunit_ test suite. + + The PhantomJS_ website provides pre-built binaries for some + platforms, and your OS's package management probably provides it as + well. + + If you're building PhantomJS_ from source, I recommend preparing + for some knitting time as it's not exactly fast (it needs to + compile both `Qt `_ and `Webkit + `_, both being pretty big projects). + + .. note:: + + Because PhantomJS_ is webkit-based, it will not be able to test + if Firefox, Opera or Internet Explorer can correctly run the + test suite (and it is only an approximation for Safari and + Chrome). It is therefore recommended to *also* run the test + suites in actual browsers once in a while. + + .. note:: + + The version of PhantomJS_ this was build through is 1.7, + previous versions *should* work but are not actually supported + (and tend to just segfault when something goes wrong in + PhantomJS_ itself so they're a pain to debug). + +3. Set up :ref:`OpenERP Command `, + which will be used to actually run the tests: running the qunit_ + test suite requires a running server, so at this point OpenERP + Server isn't able to do it on its own during the building/testing + process. + +4. Install a new database with all relevant modules (all modules with + a web component at least), then restart the server + + .. note:: + + For some tests, a source database needs to be duplicated. This + operation requires that there be no connection to the database + being duplicated, but OpenERP doesn't currently break + existing/outstanding connections, so restarting the server is + the simplest way to ensure everything is in the right state. + +5. Launch ``oe run-tests -d $DATABASE -mweb`` with the correct + addons-path specified (and replacing ``$DATABASE`` by the source + database you created above) + + .. note:: + + If you leave out ``-mweb``, the runner will attempt to run all + the tests in all the modules, which may or may not work. + +If everything went correctly, you should now see a list of tests with +(hopefully) ``ok`` next to their names, closing with a report of the +number of tests run and the time it took: + +.. literalinclude:: test-report.txt + :language: text + +Congratulation, you have just performed a successful "offline" run of +the OpenERP Web test suite. + +.. note:: + + Note that this runs all the Python tests for the ``web`` module, + but all the web tests for all of OpenERP. This can be surprising. .. _qunit: http://qunitjs.com/ .. _qunit assertions: http://api.qunitjs.com/category/assert/ + +.. _unittest2: http://pypi.python.org/pypi/unittest2 + +.. _QUnitSuite: http://pypi.python.org/pypi/QUnitSuite/ + +.. _PhantomJS: http://phantomjs.org/