Files

73 lines
3.2 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.addons.survey.tests.common import TestSurveyCommon
from odoo.addons.documents_spreadsheet.tests.common import SpreadsheetTestCommon
import json
class DocumentSpreadsheetSurveyAction(TestSurveyCommon, SpreadsheetTestCommon):
def test_action_survey_open_linked_spreadsheet(self):
test_survey = self.env["survey.survey"].create({"title": "Test Survey"})
self.assertFalse(test_survey.spreadsheet_document_id)
action = test_survey.action_survey_open_linked_spreadsheet()
linked_spreadsheet = test_survey.spreadsheet_document_id
self.assertEqual(action, {
"type": "ir.actions.client",
"tag": "action_open_spreadsheet",
"params": {
"spreadsheet_id": linked_spreadsheet.id,
}
})
self.assertEqual(linked_spreadsheet.name, "Test Survey (#%s)" % test_survey.id)
# Re-calling the action should return the same spreadsheet
action = test_survey.action_survey_open_linked_spreadsheet()
self.assertEqual(action["params"], {
"spreadsheet_id": linked_spreadsheet.id,
})
def test_action_survey_open_linked_spreadsheet_initial_data(self):
test_survey = self.env["survey.survey"].create({"title": "Test Survey"})
question_0 = self._add_question(None, "What is your age", "numerical_box", survey_id=test_survey.id, sequence=1)
answer_0 = self._add_answer(test_survey, self.customer)
self._add_answer_line(question_0, answer_0, 25)
test_survey.action_survey_open_linked_spreadsheet()
binary_data = test_survey.spreadsheet_document_id.spreadsheet_data
data = json.loads(binary_data)
self.assertEqual(data["version"], "18.4.2")
self.assertEqual(len(data["sheets"]), 1)
sheet = data["sheets"][0]
self.assertEqual(sheet["name"], "Test Survey (#%s)" % test_survey.id)
self.assertEqual(sheet["cells"]["A1"], "=ODOO.SURVEY(%s)" % test_survey.id)
self.assertEqual(sheet["cols"]["0"]["size"], 150)
self.assertEqual(sheet["cols"]["1"]["size"], 150)
self.assertEqual(sheet["panes"]["ySplit"], 1)
def test_archived_linked_spreadsheet(self):
test_survey = self.env["survey.survey"].create({"title": "Test Survey"})
# Spreadsheet is restored when opening the action again
test_survey.spreadsheet_document_id.action_archive()
self.assertFalse(test_survey.spreadsheet_document_id.active)
test_survey.action_survey_open_linked_spreadsheet()
self.assertTrue(test_survey.spreadsheet_document_id.active)
# Survey folder is restored as well
folder_id = self.env["ir.config_parameter"].sudo().get_param('documents_spreadsheet_survey.survey_folder', False)
folder = self.env["documents.document"].browse(int(folder_id))
folder.action_archive()
test_survey.spreadsheet_document_id.action_archive()
self.assertFalse(test_survey.spreadsheet_document_id.active)
self.assertFalse(folder.active)
test_survey.action_survey_open_linked_spreadsheet()
self.assertTrue(test_survey.spreadsheet_document_id.active)
self.assertTrue(folder.active)