You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
203 lines
7.9 KiB
203 lines
7.9 KiB
# -*- coding: utf-8 -*-
|
|
# Copyright 2017 LasLabs Inc.
|
|
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
|
|
|
|
from odoo.tests.common import TransactionCase
|
|
|
|
|
|
class TestDarkroomModal(TransactionCase):
|
|
|
|
def test_default_res_model_id_model_in_context(self):
|
|
"""Should return correct ir.model record when context has model name"""
|
|
active_model = 'res.users'
|
|
test_model = self.env['darkroom.modal'].with_context({
|
|
'active_model': active_model,
|
|
})
|
|
test_result = test_model._default_res_model_id()
|
|
|
|
expected = self.env['ir.model'].search([('model', '=', active_model)])
|
|
self.assertEqual(test_result, expected)
|
|
|
|
def test_default_res_model_id_no_valid_info_in_context(self):
|
|
"""Should return empty ir.model recordset when missing/invalid info"""
|
|
test_model = self.env['darkroom.modal'].with_context({})
|
|
test_result = test_model._default_res_model_id()
|
|
|
|
self.assertEqual(test_result, self.env['ir.model'])
|
|
|
|
def test_default_res_record_id_id_in_context(self):
|
|
"""Should return correct value when ID in context"""
|
|
active_record_id = 5
|
|
test_model = self.env['darkroom.modal'].with_context({
|
|
'active_record_id': active_record_id,
|
|
})
|
|
test_result = test_model._default_res_record_id()
|
|
|
|
self.assertEqual(test_result, active_record_id)
|
|
|
|
def test_default_res_record_id_no_id_in_context(self):
|
|
"""Should return 0 when no ID in context"""
|
|
test_model = self.env['darkroom.modal'].with_context({})
|
|
test_result = test_model._default_res_record_id()
|
|
|
|
self.assertEqual(test_result, 0)
|
|
|
|
def test_default_res_record_model_and_id_in_context(self):
|
|
"""Should return correct record when context has model name and ID"""
|
|
active_model = 'res.users'
|
|
active_record_id = 1
|
|
test_model = self.env['darkroom.modal'].with_context({
|
|
'active_model': active_model,
|
|
'active_record_id': active_record_id,
|
|
})
|
|
test_result = test_model._default_res_record()
|
|
|
|
expected = self.env[active_model].browse(active_record_id)
|
|
self.assertEqual(test_result, expected)
|
|
|
|
def test_default_res_record_model_but_no_id_in_context(self):
|
|
"""Should return right empty recordset if model but no ID in context"""
|
|
active_model = 'res.users'
|
|
test_model = self.env['darkroom.modal'].with_context({
|
|
'active_model': active_model,
|
|
})
|
|
test_result = test_model._default_res_record()
|
|
|
|
self.assertEqual(test_result, self.env[active_model])
|
|
|
|
def test_default_res_record_no_valid_model_info_in_context(self):
|
|
"""Should return None if context has missing/invalid model info"""
|
|
active_model = 'bad.model.name'
|
|
test_model = self.env['darkroom.modal'].with_context({
|
|
'active_model': active_model,
|
|
})
|
|
test_result = test_model._default_res_record()
|
|
|
|
self.assertIsNone(test_result)
|
|
|
|
def test_default_res_field_id_model_and_field_in_context(self):
|
|
"""Should return correct ir.model.fields record when info in context"""
|
|
active_model = 'res.users'
|
|
active_field = 'name'
|
|
test_model = self.env['darkroom.modal'].with_context({
|
|
'active_model': active_model,
|
|
'active_field': active_field,
|
|
})
|
|
test_result = test_model._default_res_field_id()
|
|
|
|
self.assertEqual(test_result.name, active_field)
|
|
self.assertEqual(test_result.model_id.model, active_model)
|
|
|
|
def test_default_res_field_id_no_valid_field_in_context(self):
|
|
"""Should return empty recordset if field info missing/invalid"""
|
|
active_model = 'res.users'
|
|
active_field = 'totally.not.a.real.field.name'
|
|
test_model = self.env['darkroom.modal'].with_context({
|
|
'active_model': active_model,
|
|
'active_field': active_field,
|
|
})
|
|
test_result = test_model._default_res_field_id()
|
|
|
|
self.assertEqual(test_result, self.env['ir.model.fields'])
|
|
|
|
def test_default_res_field_id_no_valid_model_in_context(self):
|
|
"""Should return empty recordset if model info missing/invalid"""
|
|
active_field = 'name'
|
|
test_model = self.env['darkroom.modal'].with_context({
|
|
'active_field': active_field,
|
|
})
|
|
test_result = test_model._default_res_field_id()
|
|
|
|
self.assertEqual(test_result, self.env['ir.model.fields'])
|
|
|
|
def test_default_image_all_info_in_context(self):
|
|
"""Should return value of correct field if all info in context"""
|
|
active_model = 'res.users'
|
|
active_record_id = 1
|
|
active_field = 'name'
|
|
test_model = self.env['darkroom.modal'].with_context({
|
|
'active_model': active_model,
|
|
'active_record_id': active_record_id,
|
|
'active_field': active_field,
|
|
})
|
|
test_result = test_model._default_image()
|
|
|
|
expected = self.env[active_model].browse(active_record_id).name
|
|
self.assertEqual(test_result, expected)
|
|
|
|
def test_default_image_no_valid_field_in_context(self):
|
|
"""Should return None if missing/invalid field info in context"""
|
|
active_model = 'res.users'
|
|
active_record_id = 1
|
|
test_model = self.env['darkroom.modal'].with_context({
|
|
'active_model': active_model,
|
|
'active_record_id': active_record_id,
|
|
})
|
|
test_result = test_model._default_image()
|
|
|
|
self.assertIsNone(test_result)
|
|
|
|
def test_default_image_no_valid_id_in_context(self):
|
|
"""Should return False/None if missing/invalid record ID in context"""
|
|
active_model = 'res.users'
|
|
active_field = 'name'
|
|
test_model = self.env['darkroom.modal'].with_context({
|
|
'active_model': active_model,
|
|
'active_field': active_field,
|
|
})
|
|
test_result = test_model._default_image()
|
|
|
|
self.assertFalse(test_result)
|
|
|
|
def test_default_image_no_valid_model_in_context(self):
|
|
"""Should return None if missing/invalid model info in context"""
|
|
active_record_id = 1
|
|
active_field = 'name'
|
|
test_model = self.env['darkroom.modal'].with_context({
|
|
'active_record_id': active_record_id,
|
|
'active_field': active_field,
|
|
})
|
|
test_result = test_model._default_image()
|
|
|
|
self.assertIsNone(test_result)
|
|
|
|
def test_action_save_record_count_in_self(self):
|
|
"""Should raise correct error if not called on recordset of 1"""
|
|
test_wizard = self.env['darkroom.modal'].with_context({
|
|
'active_model': 'res.users',
|
|
'active_record_id': 1,
|
|
'active_field': 'name',
|
|
}).create({})
|
|
test_wizard_set = test_wizard + test_wizard.copy()
|
|
|
|
with self.assertRaises(ValueError):
|
|
self.env['darkroom.modal'].action_save()
|
|
with self.assertRaises(ValueError):
|
|
test_wizard_set.action_save()
|
|
|
|
def test_action_save_update_source(self):
|
|
"""Should update source record correctly"""
|
|
active_model = 'res.users'
|
|
active_record_id = 1
|
|
test_wizard = self.env['darkroom.modal'].with_context({
|
|
'active_model': active_model,
|
|
'active_record_id': active_record_id,
|
|
'active_field': 'name',
|
|
}).create({})
|
|
test_name = 'Test Name'
|
|
test_wizard.image = test_name
|
|
test_wizard.action_save()
|
|
|
|
result = self.env[active_model].browse(active_record_id).name
|
|
self.assertEqual(result, test_name)
|
|
|
|
def test_action_save_return_action(self):
|
|
"""Should return correct action"""
|
|
test_wizard = self.env['darkroom.modal'].with_context({
|
|
'active_model': 'res.users',
|
|
'active_record_id': 1,
|
|
'active_field': 'name',
|
|
}).create({})
|
|
test_value = test_wizard.action_save()
|
|
|
|
self.assertEqual(test_value, {'type': 'ir.actions.act_window_close'})
|