forked from Mapan/odoo17e
73 lines
2.6 KiB
Python
73 lines
2.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.tests.common import HttpCase, new_test_user
|
|
from odoo.addons.spreadsheet_edition.tests.spreadsheet_test_case import SpreadsheetTestCase
|
|
from odoo.tools import file_open, misc
|
|
|
|
from uuid import uuid4
|
|
|
|
TEST_CONTENT = "{}"
|
|
GIF = b"R0lGODdhAQABAIAAAP///////ywAAAAAAQABAAACAkQBADs="
|
|
|
|
|
|
class SpreadsheetTestCommon(SpreadsheetTestCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super(SpreadsheetTestCommon, cls).setUpClass()
|
|
cls.folder = cls.env["documents.folder"].create({"name": "Test folder"})
|
|
cls.spreadsheet_user = new_test_user(
|
|
cls.env, login="spreadsheetDude", groups="documents.group_documents_user"
|
|
)
|
|
|
|
def create_spreadsheet(self, values=None, *, user=None, name="Untitled Spreadsheet"):
|
|
if values is None:
|
|
values = {}
|
|
return (
|
|
self.env["documents.document"]
|
|
.with_user(user or self.env.user)
|
|
.create({
|
|
"spreadsheet_data": r"{}",
|
|
"folder_id": self.folder.id,
|
|
"handler": "spreadsheet",
|
|
"mimetype": "application/o-spreadsheet",
|
|
"name": name,
|
|
**values,
|
|
})
|
|
)
|
|
|
|
def share_spreadsheet(self, document):
|
|
share = self.env["documents.share"].create(
|
|
{
|
|
"folder_id": document.folder_id.id,
|
|
"document_ids": [(6, 0, [document.id])],
|
|
"type": "ids",
|
|
}
|
|
)
|
|
self.env["documents.shared.spreadsheet"].create(
|
|
{
|
|
"share_id": share.id,
|
|
"document_id": document.id,
|
|
"spreadsheet_data": document.spreadsheet_data,
|
|
}
|
|
)
|
|
return share
|
|
|
|
|
|
class SpreadsheetTestTourCommon(SpreadsheetTestCommon, HttpCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super(SpreadsheetTestTourCommon, cls).setUpClass()
|
|
cls.spreadsheet_user.partner_id.country_id = cls.env.ref("base.us")
|
|
cls.env['res.users'].browse(2).partner_id.country_id = cls.env.ref("base.be")
|
|
# Avoid interference from the demo data which rename the admin user
|
|
cls.env['res.users'].browse(2).write({"name": "AdminDude"})
|
|
data_path = misc.file_path('documents_spreadsheet/demo/files/res_partner_spreadsheet.json')
|
|
with file_open(data_path, 'rb') as f:
|
|
cls.spreadsheet = cls.env["documents.document"].create({
|
|
"handler": "spreadsheet",
|
|
"folder_id": cls.folder.id,
|
|
"raw": f.read(),
|
|
"name": "Res Partner Test Spreadsheet"
|
|
})
|