Skip to content
Browse files

[FIX] point_of_sale: incorrect assertAlmostEqual

The third parameter to assertAlmostEqual is a precision (places), not the
assertion message. This goes unnoticed when using two objects which are
strictly equal because assertAlmostEqual shortcuts if the two inputs are equal,
before falling back on approximation.

Since the parameters here are two integers, they're always going to be either
identical or completely different, therefore the issue is only visible if the assertion
fails, hiding the assertion error.

* pass the message by keyword
* replace assertAlmostEqual by assertEqual as the inputs are integers and integers
  can't really be "almost" equal

closes #40030

X-original-commit: f22e717
Signed-off-by: Xavier Morel (xmo) <>
  • Loading branch information...
xmo-odoo authored and fw-bot committed Nov 8, 2019
1 parent 931da03 commit 9b4e487a5c031ea94eeb9aaeb221591b6faa92b9
Showing with 1 addition and 1 deletion.
  1. +1 −1 addons/point_of_sale/tests/
@@ -394,7 +394,7 @@ def test_return_order(self):
session_move = self.pos_session.move_id

sale_lines = session_move.line_ids.filtered(lambda line: line.account_id == self.sale_account)
self.assertAlmostEqual(len(sale_lines), 2, 'There should be lines for both sales and refund.')
self.assertEqual(len(sale_lines), 2, msg='There should be lines for both sales and refund.')
self.assertAlmostEqual(sum(sale_lines.mapped('balance')), -110.0)

receivable_line_bank = session_move.line_ids.filtered(lambda line: in

0 comments on commit 9b4e487

Please sign in to comment.
You can’t perform that action at this time.