Skip to content

Commit

Permalink
Merge pull request #2 from akretion/16.0-mig-base_product_mass_addition
Browse files Browse the repository at this point in the history
Fixing test for product-attribute/base_product_mass_addition
  • Loading branch information
legalsylvain authored Feb 22, 2024
2 parents 8fd402d + 8ae6c07 commit e32dfb5
Showing 1 changed file with 33 additions and 22 deletions.
55 changes: 33 additions & 22 deletions base_product_mass_addition/tests/test_product_mass_addition.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,17 @@
# @author Iván Todorovich <[email protected]>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from datetime import datetime

from odoo_test_helper import FakeModelLoader

from odoo.tests.common import TransactionCase


def now():
return datetime.now()


class TestProductMassAddition(TransactionCase):
@classmethod
def setUpClass(cls):
Expand All @@ -16,7 +22,12 @@ def setUpClass(cls):
cls.loader.backup_registry()
from .models.order import ModelOrder, ModelOrderLine

cls.loader.update_registry((ModelOrder, ModelOrderLine))
cls.loader.update_registry(
(
ModelOrder,
ModelOrderLine,
)
)

# Setup data
cls.order = cls.env["model.order"].create({})
Expand All @@ -25,11 +36,6 @@ def setUpClass(cls):
**cls.quick_ctx
)

@classmethod
def tearDownClass(cls):
cls.loader.restore_registry()
super().tearDownClass()

def test_quick_line_add(self):
"""Test quick lines are added, updated and removed"""
# Case 1: Create new line
Expand All @@ -47,34 +53,39 @@ def test_quick_line_add(self):

def test_quick_should_not_write_on_product(self):
"""Using quick magic fields shouldn't write on product's metadata"""
user_demo = self.env.ref("base.user_demo")
self.product.write_uid = user_demo
self.assertEqual(self.product.write_uid, user_demo)
# Monkey patch the now method for our testing purpose
# other the now method of cr would return the date of the Transaction
# which is unique for the whole test
self.env.cr.now = now
base_date = self.product.write_date
# Case 1: Updating qty_to_process shouldn't write on products
self.product.qty_to_process = 1.0
self.assertEqual(self.product.write_uid, user_demo)
self.product.qty_to_process = 4.0
self.env["product.product"].flush_model()
self.assertEqual(base_date, self.product.write_date)
after_update_date = self.product.write_date
# Case 2: Updating quick_uom_id shouldn't write on products
self.product.quick_uom_id = self.env.ref("uom.product_uom_categ_unit").uom_ids[
1
]
self.assertEqual(self.product.write_uid, user_demo)
self.env["product.product"].flush_model()
self.assertEqual(after_update_date, self.product.write_date)

def test_quick_should_write_on_product(self):
"""Updating fields that are not magic fields should update
product metadata"""
# Change the product write_uid for testing
user_demo = self.env.ref("base.user_demo")
self.product.write_uid = user_demo
self.assertEqual(self.product.write_uid, user_demo)
# Monkey patch the now method for our testing purpose
# other the now method of cr would return the date of the Transaction
# which is unique for the whole test
self.env.cr.now = now
base_date = self.product.write_date
# Case 1: Updating name field should write on product's metadata
self.product.name = "Testing"
self.assertEqual(self.product.write_uid, self.env.user)
# Change the product write_uid for testing
user_demo = self.env.ref("base.user_demo")
self.product.write_uid = user_demo
self.assertEqual(self.product.write_uid, user_demo)
self.env["product.product"].flush_model()
self.assertNotEqual(base_date, self.product.write_date)
after_update_date = self.product.write_date
# Case 2: Updating qty_to_process and name before flush should
# write on product's metadata
self.product.qty_to_process = 2.0
self.product.name = "Testing 2"
self.assertEqual(self.product.write_uid, self.env.user)
self.env["product.product"].flush_model()
self.assertNotEqual(after_update_date, self.product.write_date)

0 comments on commit e32dfb5

Please sign in to comment.