88 lines
3.6 KiB
Python
88 lines
3.6 KiB
Python
# Copyright 2016-2018 ACSONE SA/NV
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
import psycopg2
|
|
|
|
from odoo.modules.module import get_resource_path
|
|
from odoo.tests.common import Form
|
|
from odoo.tools import convert_file
|
|
from odoo.tools.misc import mute_logger
|
|
|
|
from odoo.addons.server_environment.tests.common import ServerEnvironmentCase
|
|
|
|
|
|
class TestEnv(ServerEnvironmentCase):
|
|
def setUp(self):
|
|
super().setUp()
|
|
self.IAP = self.env["iap.account"]
|
|
self.env_config = (
|
|
"[iap_account.account_1]\n"
|
|
"service_name=partner_autocomplete_1\n"
|
|
"account_token=my_secret_token_1\n"
|
|
"[iap_account.account_2]\n"
|
|
"service_name=partner_autocomplete_2\n"
|
|
"account_token=my_secret_token_2\n"
|
|
"[iap_account.account_xml]\n"
|
|
"service_name=partner_autocomplete_xml\n"
|
|
"account_token=my_secret_token_xml\n"
|
|
)
|
|
|
|
def _load_xml(self, module, filepath):
|
|
convert_file(
|
|
self.env.cr,
|
|
module,
|
|
get_resource_path(module, filepath),
|
|
{},
|
|
mode="init",
|
|
noupdate=False,
|
|
kind="test",
|
|
)
|
|
|
|
def test_create_account_from_config(self):
|
|
"""Get account data from config"""
|
|
with self.load_config(public=self.env_config):
|
|
account = self.IAP.create({"tech_name": "account_1"})
|
|
self.assertEqual(account.service_name, "partner_autocomplete_1")
|
|
self.assertEqual(account.account_token, "my_secret_token_1")
|
|
# `tech_name` must be unique
|
|
with self.assertRaises(psycopg2.IntegrityError):
|
|
with mute_logger("odoo.sql_db"), self.cr.savepoint():
|
|
self.IAP.create({"tech_name": "account_1"})
|
|
|
|
def test_create_account_not_in_config(self):
|
|
"""We can set account data that is not in config file"""
|
|
with self.load_config(public=self.env_config):
|
|
account = self.IAP.create(
|
|
{
|
|
"tech_name": "account_4",
|
|
"service_name": "new_partner_autocomplete",
|
|
"account_token": "my_new_secret_token",
|
|
}
|
|
)
|
|
self.assertEqual(account.service_name, "new_partner_autocomplete")
|
|
self.assertEqual(account.account_token, "my_new_secret_token")
|
|
|
|
# TODO: should it be overriden on xml import?
|
|
# def test_override_xmldata(self):
|
|
# with self.load_config(public=self.env_config):
|
|
# self._load_xml("server_environment_iap", "tests/config_iap_test.xml")
|
|
# account = self.IAP.search([("tech_name", "=", "account_xml")])
|
|
# self.assertEqual(account.service_name, "partner_autocomplete_xml")
|
|
# self.assertEqual(account.account_token, "my_secret_token_xml")
|
|
|
|
def test_update_account_data(self):
|
|
"""We can't set account data that is in config file"""
|
|
with self.load_config(public=self.env_config):
|
|
# when creating, the value is overridden by config file
|
|
account = self.IAP.create(
|
|
{
|
|
"tech_name": "account_2",
|
|
}
|
|
)
|
|
account_form = Form(account)
|
|
self.assertEqual(account.service_name, "partner_autocomplete_2")
|
|
self.assertEqual(account.account_token, "my_secret_token_2")
|
|
with self.assertRaises(AssertionError):
|
|
account_form.service_name = "new_partner_autocomplete"
|
|
with self.assertRaises(AssertionError):
|
|
account_form.account_token = "my_new_secret_token"
|