Files
tryton/trytond/tests/test_resource.py
T
2021-12-11 17:58:45 +01:00

85 lines
2.4 KiB
Python

# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
import unittest
from trytond.pool import Pool
from trytond.tests.test_tryton import activate_module, with_transaction
from trytond.transaction import Transaction
class ResourceTestCase(unittest.TestCase):
"Test Resource"
@classmethod
def setUpClass(cls):
activate_module('tests')
@with_transaction()
def test_resources_copied(self):
"Test resources are copied"
pool = Pool()
Resource = pool.get('test.resource')
Other = pool.get('test.resource.other')
Note = pool.get('ir.note')
record = Resource()
record.save()
note = Note(resource=record, copy_to_resources=[Other.__name__])
note.save()
other = Other()
other.save()
copies = record.copy_resources_to(other)
other_notes = Note.search([('resource', '=', str(other))])
self.assertTrue(other_notes)
self.assertEqual(len(other_notes), 1)
self.assertEqual(other_notes, copies)
@with_transaction()
def test_resources_not_copied(self):
"Test resources are not copied"
pool = Pool()
Resource = pool.get('test.resource')
Other = pool.get('test.resource.other')
Note = pool.get('ir.note')
record = Resource()
record.save()
note = Note(resource=record)
note.save()
other = Other()
other.save()
copies = record.copy_resources_to(other)
other_notes = Note.search([('resource', '=', str(other))])
self.assertFalse(other_notes)
self.assertFalse(copies)
@with_transaction()
def test_note_write(self):
"Test note write behaviour"
pool = Pool()
Note = pool.get('ir.note')
Resource = pool.get('test.resource')
User = pool.get('res.user')
user = User(login='test')
user.save()
record = Resource()
record.save()
note = Note(resource=record, message="Message")
note.save()
write_date = note.write_date
with Transaction().set_user(user.id):
user_note = Note(note.id)
user_note.unread = False
user_note.save()
note = Note(note.id)
self.assertEqual(user_note.write_date, write_date)
def suite():
return unittest.TestLoader().loadTestsFromTestCase(ResourceTestCase)