first commit
This commit is contained in:
126
modules/account_stock_eu/tests/test_module.py
Normal file
126
modules/account_stock_eu/tests/test_module.py
Normal file
@@ -0,0 +1,126 @@
|
||||
# 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 unittest.mock import Mock, patch
|
||||
|
||||
from trytond.modules.account.exceptions import FiscalYearNotFoundError
|
||||
from trytond.pool import Pool
|
||||
from trytond.tests.test_tryton import ModuleTestCase, with_transaction
|
||||
|
||||
|
||||
class AccountStockEuTestCase(ModuleTestCase):
|
||||
"Test Account Stock Eu module"
|
||||
module = 'account_stock_eu'
|
||||
extras = ['carrier', 'incoterm', 'production', 'stock_consignment']
|
||||
|
||||
@with_transaction()
|
||||
def test_sale_incoterm_required(self):
|
||||
"Test incoterm required on sale"
|
||||
pool = Pool()
|
||||
Sale = pool.get('sale.sale')
|
||||
FiscalYear = pool.get('account.fiscalyear')
|
||||
Country = pool.get('country.country')
|
||||
|
||||
from_country = Mock(spec=Country)
|
||||
to_country = Mock(spec=Country)
|
||||
sale = Mock(spec=Sale)
|
||||
sale.warehouse.address.country = from_country
|
||||
sale.shipment_address.country = to_country
|
||||
type(sale)._incoterm_required = Sale._incoterm_required
|
||||
fiscalyear = Mock(spec=FiscalYear)
|
||||
|
||||
with patch.object(FiscalYear, 'find') as fiscalyear_find:
|
||||
fiscalyear_find.return_value = fiscalyear
|
||||
for extended, from_europe, to_europe, result in [
|
||||
(False, False, False, True),
|
||||
(False, False, True, True),
|
||||
(False, True, False, True),
|
||||
(False, True, True, False),
|
||||
(True, False, False, True),
|
||||
(True, False, True, True),
|
||||
(True, True, False, True),
|
||||
(True, True, True, True),
|
||||
(None, False, False, True),
|
||||
(None, False, True, True),
|
||||
(None, True, False, True),
|
||||
(None, True, True, False),
|
||||
]:
|
||||
if extended is not None:
|
||||
fiscalyear_find.side_effect = None
|
||||
fiscalyear.intrastat_extended = extended
|
||||
else:
|
||||
fiscalyear_find.side_effect = FiscalYearNotFoundError('')
|
||||
from_country.is_member.return_value = from_europe
|
||||
to_country.is_member.return_value = to_europe
|
||||
with self.subTest(
|
||||
extended=extended,
|
||||
from_europe=from_europe,
|
||||
to_europe=to_europe):
|
||||
self.assertEqual(sale._incoterm_required, result)
|
||||
|
||||
@with_transaction()
|
||||
def test_sale_incoterm_required_same_country(self):
|
||||
"Test incoterm required on sale with same country"
|
||||
pool = Pool()
|
||||
Sale = pool.get('sale.sale')
|
||||
FiscalYear = pool.get('account.fiscalyear')
|
||||
Country = pool.get('country.country')
|
||||
|
||||
country = Mock(spec=Country)
|
||||
sale = Mock(spec=Sale)
|
||||
sale.warehouse.address.country = country
|
||||
sale.shipment_address.country = country
|
||||
type(sale)._incoterm_required = Sale._incoterm_required
|
||||
fiscalyear = Mock(spec=FiscalYear)
|
||||
|
||||
with patch.object(FiscalYear, 'find') as fiscalyear_find:
|
||||
fiscalyear_find.return_value = fiscalyear
|
||||
for extended, europe, result in [
|
||||
(False, False, False),
|
||||
(False, True, False),
|
||||
(True, False, False),
|
||||
(True, True, False),
|
||||
(None, False, False),
|
||||
(None, True, False),
|
||||
]:
|
||||
if extended is not None:
|
||||
fiscalyear_find.side_effect = None
|
||||
fiscalyear.intrastat_extended = extended
|
||||
else:
|
||||
fiscalyear_find.side_effect = FiscalYearNotFoundError('')
|
||||
country.is_member.return_value = europe
|
||||
with self.subTest(
|
||||
extended=extended,
|
||||
europe=europe):
|
||||
self.assertEqual(sale._incoterm_required, result)
|
||||
|
||||
@with_transaction()
|
||||
def test_sale_incoterm_required_no_country(self):
|
||||
"Test incoterm required on sale without country"
|
||||
pool = Pool()
|
||||
Sale = pool.get('sale.sale')
|
||||
FiscalYear = pool.get('account.fiscalyear')
|
||||
|
||||
sale = Mock(spec=Sale)
|
||||
sale.warehouse.address.country = None
|
||||
sale.shipment_address.country = None
|
||||
type(sale)._incoterm_required = Sale._incoterm_required
|
||||
fiscalyear = Mock(spec=FiscalYear)
|
||||
|
||||
with patch.object(FiscalYear, 'find') as fiscalyear_find:
|
||||
fiscalyear_find.return_value = fiscalyear
|
||||
|
||||
for extended, result in [
|
||||
(False, False),
|
||||
(True, False),
|
||||
(None, False),
|
||||
]:
|
||||
if extended is not None:
|
||||
fiscalyear_find.side_effect = None
|
||||
fiscalyear.intrastat_extended = extended
|
||||
else:
|
||||
fiscalyear_find.side_effect = FiscalYearNotFoundError('')
|
||||
with self.subTest(extended=extended):
|
||||
self.assertEqual(sale._incoterm_required, result)
|
||||
|
||||
|
||||
del ModuleTestCase
|
||||
Reference in New Issue
Block a user