From 80d3deae92df99207fe44f5cdcb735cb15e37949 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Fri, 24 Oct 2014 10:44:34 +0200 Subject: [PATCH] Add some test tools to ease scenario writing review11331002 --- tests/scenario_carrier_weight.rst | 143 +++++++----------------------- 1 file changed, 34 insertions(+), 109 deletions(-) diff --git a/tests/scenario_carrier_weight.rst b/tests/scenario_carrier_weight.rst index 9e604ad3c0..c79b74102a 100644 --- a/tests/scenario_carrier_weight.rst +++ b/tests/scenario_carrier_weight.rst @@ -2,16 +2,18 @@ Carrier Weight Scenario ======================= -============= -General Setup -============= - Imports:: >>> import datetime >>> from dateutil.relativedelta import relativedelta >>> from decimal import Decimal >>> from proteus import config, Model, Wizard + >>> from trytond.modules.company.tests.tools import create_company, \ + ... get_company + >>> from trytond.modules.account.tests.tools import create_fiscalyear, \ + ... create_chart, get_accounts + >>> from.trytond.modules.account_invoice.tests.tools import \ + ... set_fiscalyear_invoice_sequences, create_payment_term >>> today = datetime.date.today() Create database:: @@ -26,34 +28,14 @@ Install carrier_weight, purchase_shipment_cost and sale_shipment_cost:: ... ('name', 'in', ['carrier_weight', ... 'purchase_shipment_cost', 'sale_shipment_cost']), ... ]) - >>> Module.install([x.id for x in modules], config.context) + >>> for module in modules: + ... module.click('install') >>> Wizard('ir.module.module.install_upgrade').execute('upgrade') Create company:: - >>> Currency = Model.get('currency.currency') - >>> CurrencyRate = Model.get('currency.currency.rate') - >>> Company = Model.get('company.company') - >>> Party = Model.get('party.party') - >>> company_config = Wizard('company.company.config') - >>> company_config.execute('company') - >>> company = company_config.form - >>> party = Party(name='Dunder Mifflin') - >>> party.save() - >>> company.party = party - >>> currencies = Currency.find([('code', '=', 'USD')]) - >>> if not currencies: - ... currency = Currency(name='U.S. Dollar', symbol='$', code='USD', - ... rounding=Decimal('0.01'), mon_grouping='[3, 3, 0]', - ... mon_decimal_point='.', mon_thousands_sep=',') - ... currency.save() - ... CurrencyRate(date=today + relativedelta(month=1, day=1), - ... rate=Decimal('1.0'), currency=currency).save() - ... else: - ... currency, = currencies - >>> company.currency = currency - >>> company_config.execute('add') - >>> company, = Company.find() + >>> _ = create_company() + >>> company = get_company() Reload the context:: @@ -62,55 +44,15 @@ Reload the context:: Create fiscal year:: - >>> FiscalYear = Model.get('account.fiscalyear') - >>> Sequence = Model.get('ir.sequence') - >>> SequenceStrict = Model.get('ir.sequence.strict') - >>> fiscalyear = FiscalYear(name='%s' % today.year) - >>> fiscalyear.start_date = today + relativedelta(month=1, day=1) - >>> fiscalyear.end_date = today + relativedelta(month=12, day=31) - >>> fiscalyear.company = company - >>> post_move_sequence = Sequence(name='%s' % today.year, - ... code='account.move', - ... company=company) - >>> post_move_sequence.save() - >>> fiscalyear.post_move_sequence = post_move_sequence - >>> invoice_sequence = SequenceStrict(name='%s' % today.year, - ... code='account.invoice', - ... company=company) - >>> invoice_sequence.save() - >>> fiscalyear.out_invoice_sequence = invoice_sequence - >>> fiscalyear.in_invoice_sequence = invoice_sequence - >>> fiscalyear.out_credit_note_sequence = invoice_sequence - >>> fiscalyear.in_credit_note_sequence = invoice_sequence - >>> fiscalyear.save() - >>> FiscalYear.create_period([fiscalyear.id], config.context) + >>> fiscalyear = set_fiscalyear_invoice_sequences( + ... create_fiscalyear(company)) + >>> fiscalyear.click('create_period') Create chart of accounts:: - >>> AccountTemplate = Model.get('account.account.template') - >>> Account = Model.get('account.account') - >>> AccountJournal = Model.get('account.journal') - >>> account_template, = AccountTemplate.find([('parent', '=', None)]) - >>> create_chart = Wizard('account.create_chart') - >>> create_chart.execute('account') - >>> create_chart.form.account_template = account_template - >>> create_chart.form.company = company - >>> create_chart.execute('create_account') - >>> receivable, = Account.find([ - ... ('kind', '=', 'receivable'), - ... ('company', '=', company.id), - ... ]) - >>> payable, = Account.find([ - ... ('kind', '=', 'payable'), - ... ('company', '=', company.id), - ... ]) - >>> revenue, = Account.find([ - ... ('kind', '=', 'revenue'), - ... ('company', '=', company.id), - ... ]) - >>> create_chart.form.account_receivable = receivable - >>> create_chart.form.account_payable = payable - >>> create_chart.execute('create_properties') + >>> _ = create_chart(company) + >>> accounts = get_accounts(company) + >>> revenue = accounts['revenue'] Create supplier:: @@ -177,7 +119,7 @@ Create carrier:: >>> carrier.party = party >>> carrier.carrier_product = carrier_product >>> carrier.carrier_cost_method = 'weight' - >>> carrier.weight_currency = currency + >>> carrier.weight_currency = company.currency >>> carrier.weight_uom = kilogram >>> for weight, price in ( ... (0.5, Decimal(25)), @@ -191,15 +133,13 @@ Create carrier:: Receive a single product line:: >>> ShipmentIn = Model.get('stock.shipment.in') - >>> Move = Model.get('stock.move') >>> Location = Model.get('stock.location') >>> supplier_location, = Location.find([ ... ('code', '=', 'SUP'), ... ]) >>> shipment = ShipmentIn() >>> shipment.supplier = supplier - >>> move = Move() - >>> shipment.incoming_moves.append(move) + >>> move = shipment.incoming_moves.new() >>> move.from_location = supplier_location >>> move.to_location = shipment.warehouse.input_location >>> move.product = product @@ -209,11 +149,9 @@ Receive a single product line:: >>> shipment.carrier = carrier >>> shipment.cost Decimal('25') - >>> shipment.cost_currency == currency + >>> shipment.cost_currency == company.currency True - >>> shipment.save() - >>> ShipmentIn.receive([shipment.id], config.context) - >>> shipment.reload() + >>> shipment.click('receive') >>> shipment.state u'received' >>> move, = shipment.incoming_moves @@ -222,25 +160,19 @@ Receive a single product line:: Create payment term:: - >>> PaymentTerm = Model.get('account.invoice.payment_term') - >>> PaymentTermLine = Model.get('account.invoice.payment_term.line') - >>> payment_term = PaymentTerm(name='Direct') - >>> payment_term_line = PaymentTermLine(type='remainder', days=0) - >>> payment_term.lines.append(payment_term_line) + >>> payment_term = create_payment_term() >>> payment_term.save() Sale products with cost on shipment:: >>> Sale = Model.get('sale.sale') - >>> SaleLine = Model.get('sale.line') >>> sale = Sale() >>> sale.party = customer >>> sale.carrier = carrier >>> sale.payment_term = payment_term >>> sale.invoice_method = 'shipment' >>> sale.shipment_cost_method = 'shipment' - >>> sale_line = SaleLine() - >>> sale.lines.append(sale_line) + >>> sale_line = sale.lines.new() >>> sale_line.product = product >>> sale_line.quantity = 5.0 >>> cost_line = sale.lines[-1] @@ -250,10 +182,9 @@ Sale products with cost on shipment:: True >>> cost_line.amount Decimal('40.00') - >>> sale.save() - >>> Sale.quote([sale.id], config.context) - >>> Sale.confirm([sale.id], config.context) - >>> Sale.process([sale.id], config.context) + >>> sale.click('quote') + >>> sale.click('confirm') + >>> sale.click('process') >>> sale.state u'processing' >>> sale.untaxed_amount @@ -267,27 +198,23 @@ Send products:: True >>> shipment.cost Decimal('40') - >>> shipment.cost_currency == currency + >>> shipment.cost_currency == company.currency True >>> move, = shipment.inventory_moves >>> move.quantity = 4 >>> shipment.cost Decimal('25') - >>> shipment.cost_currency == currency + >>> shipment.cost_currency == company.currency True >>> shipment.state u'waiting' - >>> shipment.save() - >>> shipment.reload() - >>> ShipmentOut.assign_force([shipment.id], config.context) + >>> shipment.click('assign_force') >>> shipment.state u'assigned' - >>> shipment.reload() - >>> ShipmentOut.pack([shipment.id], config.context) + >>> shipment.click('pack') >>> shipment.state u'packed' - >>> shipment.reload() - >>> ShipmentOut.done([shipment.id], config.context) + >>> shipment.click('done') >>> shipment.state u'done' @@ -306,8 +233,7 @@ Sale products with cost on order:: >>> sale.payment_term = payment_term >>> sale.invoice_method = 'order' >>> sale.shipment_cost_method = 'order' - >>> sale_line = SaleLine() - >>> sale.lines.append(sale_line) + >>> sale_line = sale.lines.new() >>> sale_line.product = product >>> sale_line.quantity = 3.0 >>> cost_line = sale.lines[-1] @@ -317,10 +243,9 @@ Sale products with cost on order:: True >>> cost_line.amount Decimal('25.00') - >>> sale.save() - >>> Sale.quote([sale.id], config.context) - >>> Sale.confirm([sale.id], config.context) - >>> Sale.process([sale.id], config.context) + >>> sale.click('quote') + >>> sale.click('confirm') + >>> sale.click('process') >>> sale.state u'processing' >>> sale.untaxed_amount