server-env/server_environment_iap/tests/test_server_environment_iap.py

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"