mirror of
https://gitlab.com/flectra-community/partner-contact.git
synced 2024-11-14 10:12:05 +00:00
82 lines
3.3 KiB
Python
82 lines
3.3 KiB
Python
# Copyright 2015 Camptocamp SA
|
|
# Copyright 2016 Therp BV
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
|
from flectra import fields
|
|
from flectra.exceptions import ValidationError
|
|
|
|
from .test_partner_relation_common import TestPartnerRelationCommon
|
|
|
|
|
|
class TestPartnerSearch(TestPartnerRelationCommon):
|
|
def test_search_relation_type(self):
|
|
"""Test searching on relation type."""
|
|
relation = self._create_company2person_relation()
|
|
partners = self.partner_model.search(
|
|
[("search_relation_type_id", "=", relation.type_selection_id.id)]
|
|
)
|
|
self.assertTrue(self.partner_02_company in partners)
|
|
partners = self.partner_model.search(
|
|
[("search_relation_type_id", "!=", relation.type_selection_id.id)]
|
|
)
|
|
self.assertTrue(self.partner_01_person in partners)
|
|
partners = self.partner_model.search(
|
|
[("search_relation_type_id", "=", self.type_company2person.name)]
|
|
)
|
|
self.assertTrue(self.partner_01_person in partners)
|
|
self.assertTrue(self.partner_02_company in partners)
|
|
partners = self.partner_model.search(
|
|
[("search_relation_type_id", "=", "unknown relation")]
|
|
)
|
|
self.assertFalse(partners)
|
|
# Check error with invalid search operator:
|
|
with self.assertRaises(ValidationError):
|
|
partners = self.partner_model.search(
|
|
[("search_relation_type_id", "child_of", "some parent")]
|
|
)
|
|
|
|
def test_search_relation_partner(self):
|
|
"""Test searching on related partner."""
|
|
self._create_company2person_relation()
|
|
partners = self.partner_model.search(
|
|
[("search_relation_partner_id", "=", self.partner_02_company.id)]
|
|
)
|
|
self.assertTrue(self.partner_01_person in partners)
|
|
|
|
def test_search_relation_date(self):
|
|
"""Test searching on relations valid on a certain date."""
|
|
self._create_company2person_relation()
|
|
partners = self.partner_model.search(
|
|
[("search_relation_date", "=", fields.Date.today())]
|
|
)
|
|
self.assertTrue(self.partner_01_person in partners)
|
|
self.assertTrue(self.partner_02_company in partners)
|
|
|
|
def test_search_any_partner(self):
|
|
"""Test searching for partner left or right."""
|
|
self._create_company2person_relation()
|
|
both_relations = self.relation_all_model.search(
|
|
[("any_partner_id", "=", self.partner_02_company.id)]
|
|
)
|
|
self.assertEqual(len(both_relations), 2)
|
|
|
|
def test_search_partner_category(self):
|
|
"""Test searching for partners related to partners having category."""
|
|
relation_ngo_volunteer = self.relation_all_model.create(
|
|
{
|
|
"this_partner_id": self.partner_03_ngo.id,
|
|
"type_selection_id": self.selection_ngo2volunteer.id,
|
|
"other_partner_id": self.partner_04_volunteer.id,
|
|
}
|
|
)
|
|
self.assertTrue(relation_ngo_volunteer)
|
|
partners = self.partner_model.search(
|
|
[
|
|
(
|
|
"search_relation_partner_category_id",
|
|
"=",
|
|
self.category_02_volunteer.id,
|
|
)
|
|
]
|
|
)
|
|
self.assertTrue(self.partner_03_ngo in partners)
|