# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from odoo.tests.common import TransactionCase from odoo.tools.config import config import logging _logger = logging.getLogger(__name__) try: from cryptography.fernet import Fernet except ImportError as err: # pragma: no cover _logger.debug(err) class CommonDataEncrypted(TransactionCase): def setUp(self): super().setUp() self.encrypted_data = self.env['encrypted.data'] self.set_new_key_env('test') self.old_running_env = config.get('running_env', '') config['running_env'] = 'test' self.crypted_data_name = 'test_model,1' def set_new_key_env(self, environment): crypting_key = Fernet.generate_key() # The key is encoded to bytes in the module, because in real life # the key com from the config file and is not in a binary format. # So we decode here to avoid having a special behavior because of # the tests. config['encryption_key_{}'.format(environment)] = \ crypting_key.decode() def tearDown(self): config['running_env'] = self.old_running_env return super().tearDown()