# This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. from decimal import Decimal from unittest.mock import Mock, patch from trytond.pool import Pool from trytond.tests.test_tryton import ModuleTestCase, with_transaction class PurchaseTradeTestCase(ModuleTestCase): 'Test purchase_trade module' module = 'purchase_trade' @with_transaction() def test_get_totals_without_rows(self): 'get_totals returns zeros when the query has no row' Valuation = Pool().get('valuation.valuation') cursor = Mock() cursor.fetchone.return_value = None connection = Mock() connection.cursor.return_value = cursor with patch( 'trytond.modules.purchase_trade.valuation.Transaction' ) as Transaction, patch.object( Valuation, '__table__', return_value='valuation_valuation'): Transaction.return_value.connection = connection self.assertEqual( Valuation.get_totals(), (Decimal(0), Decimal(0))) @with_transaction() def test_get_totals_without_previous_total(self): 'get_totals converts null variation to zero' Valuation = Pool().get('valuation.valuation') cursor = Mock() cursor.fetchone.return_value = (Decimal('42.50'), None) connection = Mock() connection.cursor.return_value = cursor with patch( 'trytond.modules.purchase_trade.valuation.Transaction' ) as Transaction, patch.object( Valuation, '__table__', return_value='valuation_valuation'): Transaction.return_value.connection = connection self.assertEqual( Valuation.get_totals(), (Decimal('42.50'), Decimal(0))) del ModuleTestCase