Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing test for product-attribute/base_product_mass_addition #2

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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)
Loading