Skip to content

Commit e586912

Browse files
committed
[IMP] tests for diagnostics OLS03001 to 13
1 parent 1b7714f commit e586912

File tree

6 files changed

+84
-6
lines changed

6 files changed

+84
-6
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
from . import base_test_models
2+
from . import diagnostics
23
from . import models
34
from . import to_complete

server/tests/data/addons/module_1/models/base_test_models.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ class BaseTestModel(models.Model):
99
test_int = fields.Integer(compute="_compute_something")
1010
partner_id = fields.Many2one("res.partner")
1111
partner_country_phone_code = fields.Integer(related="partner_id.country_id.phone_code", store=True)
12+
diagnostics_ids = fields.Many2one("module_1.diagnostics_model")
1213

1314
def get_test_int(self):
1415
self.ensure_one()
@@ -36,4 +37,7 @@ def _compute_something(self):
3637
baseInstance2 = BaseOtherName()
3738
ref_funcBase1 = BaseTestModel.get_test_int
3839
ref_funcBase2 = baseInstance1.get_test_int
39-
return_funcBase2 = baseInstance2.get_test_int()
40+
return_funcBase2 = baseInstance2.get_test_int()
41+
42+
class NoBaseModel(models.Model):
43+
_inherit = "module_1.no_base_model"
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
from odoo import api, fields, models, _, tools
2+
from odoo.addons.module_2.models import base_test_models # OLS03003
3+
4+
class ModelWithDiagnostics(models.Model):
5+
_name = "module_1.diagnostics_model"
6+
_inherit = "module_2.empty_model" # OLS03004
7+
_description = "Model to test diagnostics"
8+
9+
int_field = fields.Integer()
10+
test_models = fields.One2many("pygls.tests.base_test_model", "diagnostics_id")
11+
date = fields.Date()
12+
13+
def a_method(self):
14+
self.env["module_2.empty_model"] # OLS03001
15+
self.env["non.existent.model"] # OLS03002
16+
self.env["module_1.no_base_model"] # OLS03005
17+
18+
def test_search_domain(self):
19+
self.search(5) # OLS03006
20+
self.search(("int_field", "=", 0)) # OLS03006
21+
self.search([("int_field", "=", 0)])
22+
self.search([("int_field", "!=", 0)])
23+
self.search([("int_field", ">", 0)])
24+
self.search([("int_field", "<", 0)])
25+
self.search([("int_field", ">=", 0)])
26+
self.search([("int_field", "<=", 0)])
27+
self.search([("int_field", "like", 0)])
28+
self.search([("int_field", "ilike", 0)])
29+
self.search([("int_field", "in", [0])])
30+
self.search([("int_field", "not in", [0])])
31+
self.search([("test_models", "child_of", 0)])
32+
self.search([("test_models", "parent_of", 0)])
33+
self.search([("test_models", "any", [])])
34+
self.search([("test_models", "not any", [])])
35+
a = [("int_field", "=", 0)]
36+
self.search(a)
37+
self.search([])
38+
self.search([("int_field",)]) # OLS03007
39+
self.search([("int_field", "=")]) # OLS03007
40+
self.search([("|", "int_field", "=", 0)]) # OLS03007
41+
self.search(["|", ("int_field", "=", 0), ("int_field", "=", 1)])
42+
self.search(["&", ("int_field", "=", 0), ("int_field", "=", 1)])
43+
self.search(["!", ("int_field", "=", 0)])
44+
self.search(["or", ("int_field", "=", 0), ("int_field", "=", 1)]) # OLS03008
45+
self.search(["not", ("int_field", "=", 0)]) # OLS03008
46+
self.search([("int_field", "lt", 0)]) # OLS03009
47+
self.search(["|", ("int_field", "=", 0)]) # OLS03010
48+
self.search(["&", ("int_field", "=", 0)]) # OLS03010
49+
self.search(["!"]) # OLS03010
50+
self.search(["!", ("int_field", "=", 0), ("int_field", "=", 0)])
51+
self.search([("wrong_field", "=", 0)]) # OLS03011
52+
self.search([("test_models.partner_id", "=", 0)])
53+
self.search([("test_models.wrong_field", "=", 0)]) # OLS03011
54+
55+
self.search([("date.year_number", "=", 0)])
56+
self.search([("date.quarter_number", "=", 0)])
57+
self.search([("date.month_number", "=", 0)])
58+
self.search([("date.iso_week_number", "=", 0)])
59+
self.search([("date.day_of_week", "=", 0)])
60+
self.search([("date.day_of_month", "=", 0)])
61+
self.search([("date.day_of_year", "=", 0)])
62+
self.search([("date.hour_number", "=", 0)])
63+
self.search([("date.minute_number", "=", 0)])
64+
self.search([("date.second_number", "=", 0)])
65+
self.search([("date.millisecond_number", "=", 0)]) # OLS03012
66+
67+
self.search([("int_field.wrong_attr", "=", 0)]) # OLS03013
68+
self.search([("test_models.wrong_attr", "=", 0)]) # TODO, no diagnostic for that right now

server/tests/data/addons/module_2/models/base_test_models.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,7 @@ class BaseTestModel(models.Model):
44
test_int = fields.Integer(compute="_compute_something")
55

66
def _compute_something(self):
7-
return super()._compute_something()
7+
return super()._compute_something()
8+
9+
class TestEmptyModel(models.Model):
10+
_name = "module_2.empty_model"

server/tests/diagnostics/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ pub mod ols01009;
1212
pub mod ols01010;
1313
pub mod ols02001;
1414
pub mod ols02002;
15+
pub mod ols03000_1_to_23;
1516
pub mod ols0500_00_12;

server/tests/diagnostics/ols03001.rs renamed to server/tests/diagnostics/ols03000_1_to_23.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ use odoo_ls_server::utils::PathSanitizer;
55
use crate::{setup::setup::*, test_utils::{verify_diagnostics_against_doc}};
66

77
#[test]
8-
fn test_ols02002() {
9-
let mut odoo = setup_server(false);
10-
let path = env::current_dir().unwrap().join("tests/data/python/diagnostics/ols02002.py").sanitize();
11-
let mut session = prepare_custom_entry_point(&mut odoo, &path);
8+
fn test_ols03001() {
9+
// Setup server and session with test addons
10+
let (mut odoo, config) = setup_server(true);
11+
let mut session = create_init_session(&mut odoo, config);
12+
let path = env::current_dir().unwrap().join("tests/data/addons/module_1/models/diagnostics.py").sanitize();
1213
let diagnostics = get_diagnostics_for_path(&mut session, &path);
1314
let doc_diags = get_diagnostics_test_comments(&mut session, &path);
1415
verify_diagnostics_against_doc(diagnostics, doc_diags);

0 commit comments

Comments
 (0)