Browse Source

[FIX][web_readonly_bypass] Fix wrong test suite.

- Test was not migrated to v9.
- It is not still 100% migrated, but it works now.
- Add to known issues that it must migrate.
- Cosmetic fixes.
- Run tests in bots always.
pull/460/head
Jairo Llopis 8 years ago
parent
commit
8a852be42a
  1. 18
      web_readonly_bypass/README.rst
  2. 6
      web_readonly_bypass/__openerp__.py
  3. 2
      web_readonly_bypass/static/src/js/readonly_bypass.js
  4. 79
      web_readonly_bypass/static/test/web_readonly_bypass.js
  5. 5
      web_readonly_bypass/tests/__init__.py
  6. 14
      web_readonly_bypass/tests/test_js.py

18
web_readonly_bypass/README.rst

@ -42,17 +42,20 @@ For further information, please visit:
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot :alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/162/8.0
:target: https://runbot.odoo-community.org/runbot/162/9.0
Known issues / Roadmap
======================
* Migrate to v9 JS API both normal code and QUnit tests.
Bug Tracker Bug Tracker
=========== ===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed feedback
`here <https://github.com/OCA/web/issues/new?body=module:%20web_readonly_bypass%0Aversion:%208.0.1.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Bugs are tracked on `GitHub Issues
<https://github.com/OCA/web/issues>`_. In case of trouble, please
check there if your issue has already been reported. If you spotted it first,
help us smashing it by providing a detailed and welcomed feedback.
Credits Credits
======= =======
@ -63,6 +66,7 @@ Contributors
* Jonathan Nemry <jonathan.nemry@acsone.eu> * Jonathan Nemry <jonathan.nemry@acsone.eu>
* Laetitia Gangloff <laetitia.gangloff@acsone.eu> * Laetitia Gangloff <laetitia.gangloff@acsone.eu>
* Pierre Verkest <pverkest@anybox.fr> * Pierre Verkest <pverkest@anybox.fr>
* Jairo Llopis <jairo.llopis@tecnativa.com>
Maintainer Maintainer
---------- ----------
@ -77,4 +81,4 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and mission is to support the collaborative development of Odoo features and
promote its widespread use. promote its widespread use.
To contribute to this module, please visit http://odoo-community.org.
To contribute to this module, please visit https://odoo-community.org.

6
web_readonly_bypass/__openerp__.py

@ -24,8 +24,10 @@
############################################################################## ##############################################################################
{ {
'name': 'Read Only ByPass', 'name': 'Read Only ByPass',
'version': '9.0.1.0.0',
"author": "ACSONE SA/NV, Odoo Community Association (OCA)",
'version': '9.0.1.0.1',
"author": "ACSONE SA/NV, "
"Tecnativa, "
"Odoo Community Association (OCA)",
"maintainer": "ACSONE SA/NV,Odoo Community Association (OCA)", "maintainer": "ACSONE SA/NV,Odoo Community Association (OCA)",
"website": "http://www.acsone.eu", "website": "http://www.acsone.eu",
'category': 'Technical Settings', 'category': 'Technical Settings',

2
web_readonly_bypass/static/src/js/readonly_bypass.js

@ -1,5 +1,5 @@
"use strict";
(function(){ (function(){
"use strict";
var instance = openerp; var instance = openerp;
var QWeb = instance.web.qweb, _t = instance.web._t; var QWeb = instance.web.qweb, _t = instance.web._t;

79
web_readonly_bypass/static/test/web_readonly_bypass.js

@ -1,22 +1,24 @@
openerp.testing.section( 'web_readonly_bypass', {},
function(test){
test('ignore_readonly', function(instance){
/* Copyright 2016 Jairo Llopis <jairo.llopis@tecnativa.com>
* License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
odoo.define_section('web_readonly_bypass', [], function(test) {
"use strict";
test('ignore_readonly', function(assert) {
var data = {}; var data = {};
var mode_create = true; var mode_create = true;
var options = {}; var options = {};
var context = {}; var context = {};
instance.web_readonly_bypass.ignore_readonly(data, options,
openerp.web_readonly_bypass.ignore_readonly(data, options,
mode_create, context); mode_create, context);
deepEqual(data,
assert.deepEqual(data,
{}, {},
"Empty context and options mode create" "Empty context and options mode create"
); );
mode_create = false; mode_create = false;
data = {}; data = {};
instance.web_readonly_bypass.ignore_readonly(data, options,
openerp.web_readonly_bypass.ignore_readonly(data, options,
mode_create, context); mode_create, context);
deepEqual(data,
assert.deepEqual(data,
{}, {},
"Empty context and options mode write" "Empty context and options mode write"
); );
@ -27,9 +29,9 @@ function(test){
options = {'readonly_fields': {'field_1': 'va1-1', options = {'readonly_fields': {'field_1': 'va1-1',
'field_2': false, 'field_2': false,
'field_3': 'val-3'}}; 'field_3': 'val-3'}};
instance.web_readonly_bypass.ignore_readonly(data, options,
openerp.web_readonly_bypass.ignore_readonly(data, options,
mode_create, context); mode_create, context);
deepEqual(data,
assert.deepEqual(data,
{'field_1': 'va1-1', 'field_2': false, 'field_3': 'val-3'}, {'field_1': 'va1-1', 'field_2': false, 'field_3': 'val-3'},
"all fields mode write" "all fields mode write"
); );
@ -40,9 +42,9 @@ function(test){
options = {'readonly_fields': {'field_1': 'va1-1', options = {'readonly_fields': {'field_1': 'va1-1',
'field_2': false, 'field_2': false,
'field_3': 'val-3'}}; 'field_3': 'val-3'}};
instance.web_readonly_bypass.ignore_readonly(data, options,
openerp.web_readonly_bypass.ignore_readonly(data, options,
mode_create, context); mode_create, context);
deepEqual(data,
assert.deepEqual(data,
{'field_1': 'va1-1', 'field_3': 'val-3'}, {'field_1': 'va1-1', 'field_3': 'val-3'},
"all fields mode create (false value are escaped)" "all fields mode create (false value are escaped)"
); );
@ -53,61 +55,61 @@ function(test){
options = {'readonly_fields': {'field_1': 'va1-1', options = {'readonly_fields': {'field_1': 'va1-1',
'field_2': false, 'field_2': false,
'field_3': 'val-3'}}; 'field_3': 'val-3'}};
instance.web_readonly_bypass.ignore_readonly(data, options,
openerp.web_readonly_bypass.ignore_readonly(data, options,
mode_create, context); mode_create, context);
deepEqual(data,
assert.deepEqual(data,
{}, {},
"without context, default, we won't save readonly fields" "without context, default, we won't save readonly fields"
); );
}); });
test('retrieve_readonly_by_pass_fields', function(instance){
test('retrieve_readonly_by_pass_fields', function(assert) {
var context = {'readonly_by_pass': true} var context = {'readonly_by_pass': true}
var options = {'readonly_fields': {'field_1': 'va1-1', var options = {'readonly_fields': {'field_1': 'va1-1',
'field_2': 'val-2', 'field_2': 'val-2',
'field_3': 'val-3'}}; 'field_3': 'val-3'}};
deepEqual(
instance.web_readonly_bypass.retrieve_readonly_by_pass_fields(
assert.deepEqual(
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
options, context), options, context),
{'field_1': 'va1-1', 'field_2': 'val-2', 'field_3': 'val-3'}, {'field_1': 'va1-1', 'field_2': 'val-2', 'field_3': 'val-3'},
"All fields should be accepted!" "All fields should be accepted!"
); );
context = {'readonly_by_pass': ['field_1', 'field_3']}; context = {'readonly_by_pass': ['field_1', 'field_3']};
deepEqual(
instance.web_readonly_bypass.retrieve_readonly_by_pass_fields(
assert.deepEqual(
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
options, context), options, context),
{'field_1': 'va1-1','field_3': 'val-3'}, {'field_1': 'va1-1','field_3': 'val-3'},
"two field s1" "two field s1"
); );
context = {'readonly_by_pass': ['field_1',]}; context = {'readonly_by_pass': ['field_1',]};
deepEqual(
instance.web_readonly_bypass.retrieve_readonly_by_pass_fields(
assert.deepEqual(
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
options, context), options, context),
{'field_1': 'va1-1'}, {'field_1': 'va1-1'},
"Only field 1" "Only field 1"
); );
context = {'readonly_by_pass': []}; context = {'readonly_by_pass': []};
deepEqual(
instance.web_readonly_bypass.retrieve_readonly_by_pass_fields(
assert.deepEqual(
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
options, context), options, context),
{}, {},
"Empty context field" "Empty context field"
); );
context = null; context = null;
deepEqual(
instance.web_readonly_bypass.retrieve_readonly_by_pass_fields(
assert.deepEqual(
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
options, context), options, context),
{}, {},
"Null context" "Null context"
); );
context = false; context = false;
deepEqual(
instance.web_readonly_bypass.retrieve_readonly_by_pass_fields(
assert.deepEqual(
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
options, context), options, context),
{}, {},
"false context" "false context"
@ -115,49 +117,48 @@ function(test){
context = {'readonly_by_pass': true} context = {'readonly_by_pass': true}
options = {'readonly_fields': {'field_1': 'va1-1'}}; options = {'readonly_fields': {'field_1': 'va1-1'}};
deepEqual(
instance.web_readonly_bypass.retrieve_readonly_by_pass_fields(
assert.deepEqual(
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
options, context), options, context),
{'field_1': 'va1-1'}, {'field_1': 'va1-1'},
"Only one option" "Only one option"
); );
options = {'readonly_fields': {}}; options = {'readonly_fields': {}};
deepEqual(
instance.web_readonly_bypass.retrieve_readonly_by_pass_fields(
assert.deepEqual(
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
options, context), options, context),
{}, {},
"Empty readonly_fields option" "Empty readonly_fields option"
); );
options = {}; options = {};
deepEqual(
instance.web_readonly_bypass.retrieve_readonly_by_pass_fields(
assert.deepEqual(
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
options, context), options, context),
{}, {},
"Empty option" "Empty option"
); );
options = null; options = null;
deepEqual(
instance.web_readonly_bypass.retrieve_readonly_by_pass_fields(
assert.deepEqual(
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
options, context), options, context),
{}, {},
"null option" "null option"
); );
options = false; options = false;
deepEqual(
instance.web_readonly_bypass.retrieve_readonly_by_pass_fields(
assert.deepEqual(
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
options, context), options, context),
{}, {},
"false option" "false option"
); );
context = false; context = false;
deepEqual(
instance.web_readonly_bypass.retrieve_readonly_by_pass_fields(
assert.deepEqual(
openerp.web_readonly_bypass.retrieve_readonly_by_pass_fields(
options, context), options, context),
{}, {},
"false option and false context" "false option and false context"

5
web_readonly_bypass/tests/__init__.py

@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# Copyright 2016 Jairo Llopis <jairo.llopis@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import test_js

14
web_readonly_bypass/tests/test_js.py

@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-
# Copyright 2016 Jairo Llopis <jairo.llopis@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp.tests import HttpCase
class TestJS(HttpCase):
def test_js(self):
self.phantom_js(
"/web/tests?module=web_readonly_bypass",
"",
login="admin",
)
Loading…
Cancel
Save