================== Move Copy Scenario ================== Imports:: >>> from decimal import Decimal >>> from proteus import Model >>> from trytond.modules.account.tests.tools import ( ... create_chart, create_fiscalyear, get_accounts) >>> from trytond.modules.company.tests.tools import create_company >>> from trytond.tests.tools import activate_modules, assertEqual, assertNotEqual Activate modules:: >>> config = activate_modules('account', create_company, create_chart) >>> Journal = Model.get('account.journal') >>> Move = Model.get('account.move') >>> Party = Model.get('party.party') Create a fiscal year:: >>> fiscalyear = create_fiscalyear() >>> fiscalyear.click('create_period') >>> period = fiscalyear.periods[0] Get accounts:: >>> accounts = get_accounts() Create a party:: >>> party = Party(name="Party") >>> party.save() Create a posted move:: >>> move = Move() >>> move.period = period >>> move.journal, = Journal.find([('code', '=', 'REV')]) >>> move.date = period.start_date >>> line = move.lines.new() >>> line.account = accounts['revenue'] >>> line.credit = Decimal(42) >>> line = move.lines.new() >>> line.account = accounts['receivable'] >>> line.debit = Decimal(42) >>> line.party = party >>> move.save() >>> move.click('post') >>> move.state 'posted' Copy move on open period:: >>> copy_move, = move.duplicate() >>> copy_move.number >>> copy_move.state 'draft' >>> copy_move.post_date >>> assertEqual(copy_move.period, move.period) >>> assertEqual(copy_move.date, move.date) >>> copy_move.delete() Copy move on closed period:: >>> period.click('close') >>> period.state 'closed' >>> copy_move, = move.duplicate() Traceback (most recent call last): ... CopyWarning: ... >>> config.skip_warning = True >>> copy_move, = move.duplicate() >>> copy_move.number >>> copy_move.state 'draft' >>> copy_move.post_date >>> assertNotEqual(copy_move.period, move.period) >>> copy_move.period.state 'open' >>> assertNotEqual(copy_move.date, move.date)