[tryton-debian-vcs] tryton-modules-sale-shipment-cost branch debian updated. debian/3.4.1-1-2-g9e00691

Mathias Behrle tryton-debian-vcs at alioth.debian.org
Thu Apr 23 16:06:23 UTC 2015


The following commit has been merged in the debian branch:
https://alioth.debian.org/plugins/scmgit/cgi-bin/gitweb.cgi/?p=tryton/tryton-modules-sale-shipment-cost.git;a=commitdiff;h=debian/3.4.1-1-2-g9e00691

commit 9e006919cb920ef5fc60db05a3641910d067cd1e
Author: Mathias Behrle <mathiasb at m9s.biz>
Date:   Thu Apr 23 17:00:06 2015 +0200

    Merging upstream version 3.6.0.

diff --git a/CHANGELOG b/CHANGELOG
index 81a75de..fcc568a 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,8 @@
-Version 3.4.1 - 2015-02-21
+Version 3.6.0 - 2015-04-20
 * Bug fixes (see mercurial logs for details)
+* Add support for PyPy
+* Set sale shipment cost on sale only at quotation
+* Allow to change the carrier until the shipment is done
 
 Version 3.4.0 - 2014-10-20
 * Bug fixes (see mercurial logs for details)
diff --git a/PKG-INFO b/PKG-INFO
index dfa5ef8..f7c7cdb 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: trytond_sale_shipment_cost
-Version: 3.4.1
+Version: 3.6.0
 Summary: Tryton module for sale shipment cost
 Home-page: http://www.tryton.org/
 Author: Tryton
 Author-email: issue_tracker at tryton.org
 License: GPL-3
-Download-URL: http://downloads.tryton.org/3.4/
+Download-URL: http://downloads.tryton.org/3.6/
 Description: trytond_sale_shipment_cost
         ==========================
         
@@ -65,4 +65,6 @@ Classifier: Natural Language :: Slovenian
 Classifier: Natural Language :: Spanish
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Office/Business
diff --git a/__init__.py b/__init__.py
index d16e02a..d27e065 100644
--- a/__init__.py
+++ b/__init__.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton.  The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# 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 trytond.pool import Pool
 from .sale import *
diff --git a/doc/index.rst b/doc/index.rst
index fc3addc..b0679de 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -11,7 +11,8 @@ Two new fields are added to *Sale* and *Sale Configuration*:
     - *On Order*: The cost will be computed once for the sale.
     - *On Shipment*: The cost will be compted for each shipments.
 
-Once a carrier is selected a new line is appended with the shipment cost.
+At the quotation if a carrier is selected a new line is appended with the
+shipment cost but the added line can be modified when going back to draft.
 
 Three new fields are added to *Customer Shipment*:
 
diff --git a/locale/ca_ES.po b/locale/ca_ES.po
index 0657c31..4479e5e 100644
--- a/locale/ca_ES.po
+++ b/locale/ca_ES.po
@@ -4,7 +4,7 @@ msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:stock.shipment.out:"
 msgid "Missing \"Account Revenue\" on product \"%s\"."
-msgstr "No es troba el \"Compte a cobrar\" al producte \"%s\"."
+msgstr "No es troba el \"Compte d'ingressos\" al producte \"%s\"."
 
 msgctxt "field:sale.configuration,sale_carrier:"
 msgid "Carrier"
diff --git a/locale/es_AR.po b/locale/es_AR.po
index 7399150..c2c4ffe 100644
--- a/locale/es_AR.po
+++ b/locale/es_AR.po
@@ -40,7 +40,7 @@ msgstr "Moneda del costo"
 
 msgctxt "field:stock.shipment.out,cost_currency_digits:"
 msgid "Cost Currency Digits"
-msgstr "Dígitos de moneda del costo"
+msgstr "Decimales de moneda del costo"
 
 msgctxt "field:stock.shipment.out,cost_invoice_line:"
 msgid "Cost Invoice Line"
diff --git a/locale/es_ES.po b/locale/es_ES.po
index bd74b36..7cde4ce 100644
--- a/locale/es_ES.po
+++ b/locale/es_ES.po
@@ -4,7 +4,7 @@ msgstr "Content-Type: text/plain; charset=utf-8\n"
 
 msgctxt "error:stock.shipment.out:"
 msgid "Missing \"Account Revenue\" on product \"%s\"."
-msgstr "Falta la \"Cuenta a cobrar\" en el producto \"%s\"."
+msgstr "Falta la \"Cuenta de ingresos\" en el producto \"%s\"."
 
 msgctxt "field:sale.configuration,sale_carrier:"
 msgid "Carrier"
diff --git a/sale.py b/sale.py
index 9dc2dab..d02a4fe 100644
--- a/sale.py
+++ b/sale.py
@@ -1,6 +1,6 @@
-#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 trytond.model import fields
+# 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 trytond.model import ModelView, Workflow, fields
 from trytond.transaction import Transaction
 from trytond.pyson import Eval, Bool
 from trytond.pool import Pool, PoolMeta
@@ -54,101 +54,77 @@ class Sale:
         config = Config(1)
         return config.sale_shipment_cost_method
 
+    @classmethod
+    @ModelView.button
+    @Workflow.transition('quotation')
+    def quote(cls, sales):
+        super(Sale, cls).quote(sales)
+        for sale in sales:
+            sale.set_shipment_cost()
+        cls.save(sales)
+
     def _get_carrier_context(self):
         return {}
 
-    @fields.depends(methods=['lines'])
-    def on_change_carrier(self):
-        return self.on_change_lines()
-
-    @fields.depends('carrier', 'party', 'currency', 'sale_date',
-        'shipment_cost_method', 'lines')
-    def on_change_lines(self):
+    def set_shipment_cost(self):
         pool = Pool()
-        Product = pool.get('product.product')
-        Currency = pool.get('currency.currency')
-        SaleLine = pool.get('sale.line')
         Date = pool.get('ir.date')
-
-        today = Date.today()
+        Currency = pool.get('currency.currency')
 
         cost, currency_id = 0, None
         if self.carrier:
             with Transaction().set_context(self._get_carrier_context()):
                 cost, currency_id = self.carrier.get_sale_price()
 
-        party = None
-        party_context = {}
-        if self.party:
-            if self.party.lang:
-                party_context['language'] = self.party.lang.code
-
-        cost_line = {}
+        cost_line = None
         products = [line.product for line in self.lines or []
                 if getattr(line, 'product', None)]
         stockable = any(product.type in ('goods', 'assets')
             for product in products)
         if cost and currency_id and stockable:
+            today = Date.today()
             date = self.sale_date or today
             with Transaction().set_context(date=date):
                 cost = Currency.compute(Currency(currency_id), cost,
                     self.currency)
-            product = self.carrier.carrier_product
-            with Transaction().set_context(party_context):
-                description = Product(product.id).rec_name
-            taxes = []
-            cost_line = SaleLine.default_get(SaleLine._fields.keys())
-            cost_line.update({
-                    'type': 'line',
-                    'product': product.id,
-                    'description': description,
-                    'quantity': 1,  # XXX
-                    'unit': product.sale_uom.id,
-                    'unit_price': cost,
-                    'shipment_cost': cost,
-                    'amount': cost,
-                    'taxes': taxes,
-                    'sequence': 9999,  # XXX
-                    })
-            pattern = SaleLine(**cost_line)._get_tax_rule_pattern()
-            for tax in product.customer_taxes_used:
-                if party and party.customer_tax_rule:
-                    tax_ids = party.customer_tax_rule.apply(tax, pattern)
-                    if tax_ids:
-                        taxes.extend(tax_ids)
-                    continue
-                taxes.append(tax.id)
-            if party and party.customer_tax_rule:
-                tax_ids = party.customer_tax_rule.apply(None, pattern)
-                if tax_ids:
-                    taxes.extend(tax_ids)
-
-        to_remove = None
-        operator, operand = None, None
-        if not self.lines:
-            self.lines = []
+            cost_line = self.get_shipment_cost_line(cost)
+
+        lines = list(self.lines or [])
         for line in self.lines:
-            if getattr(line, 'shipment_cost', None):
-                if line.shipment_cost != cost_line.get('shipment_cost'):
-                    to_remove = line.id
-                    self.lines.remove(line)
-                    if cost_line:
-                        cost_line['description'] = getattr(line, 'description',
-                            '')
-                else:
-                    cost_line = {}
-                break
+            if line.type != 'line' or not line.shipment_cost:
+                continue
+            if cost_line and line.shipment_cost == cost:
+                cost_line = None
+            else:
+                lines.remove(line)
         if cost_line:
-            self.lines.append(SaleLine(**cost_line))
+            lines.append(cost_line)
+        self.lines = lines
 
-        result = super(Sale, self).on_change_lines()
+    def get_shipment_cost_line(self, cost):
+        pool = Pool()
+        SaleLine = pool.get('sale.line')
 
-        lines = result.setdefault('lines', {})
-        if to_remove:
-            lines.setdefault('remove', []).append(to_remove)
-        if cost_line:
-            lines.setdefault('add', []).append((-1, cost_line))
-        return result
+        product = self.carrier.carrier_product
+
+        sequence = None
+        if self.lines:
+            last_line = self.lines[-1]
+            if last_line.sequence is not None:
+                sequence = last_line.sequence + 1
+
+        cost_line = SaleLine(
+            sale=self,
+            sequence=sequence,
+            type='line',
+            product=product,
+            quantity=1,  # XXX
+            unit=product.sale_uom,
+            shipment_cost=cost,
+            )
+        cost_line.on_change_product()
+        cost_line.unit_price = cost_line.amount = cost
+        return cost_line
 
     def create_shipment(self, shipment_type):
         Shipment = Pool().get('stock.shipment.out')
diff --git a/setup.py b/setup.py
index 70b89cb..bb1dbc9 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
-#This file is part of Tryton.  The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# 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 setuptools import setup
 import re
@@ -94,6 +94,8 @@ setup(name=name,
         'Natural Language :: Spanish',
         'Operating System :: OS Independent',
         'Programming Language :: Python :: 2.7',
+        'Programming Language :: Python :: Implementation :: CPython',
+        'Programming Language :: Python :: Implementation :: PyPy',
         'Topic :: Office/Business',
         ],
     license='GPL-3',
diff --git a/stock.py b/stock.py
index a83a864..69518c6 100644
--- a/stock.py
+++ b/stock.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton.  The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# 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 trytond.model import fields
 from trytond.pyson import Eval, Bool
 from trytond.transaction import Transaction
@@ -12,11 +12,12 @@ __metaclass__ = PoolMeta
 class ShipmentOut:
     __name__ = 'stock.shipment.out'
     carrier = fields.Many2One('carrier', 'Carrier', states={
-            'readonly': Eval('state') != 'draft',
+            'readonly': ~Eval('state').in_(['draft', 'waiting', 'assigned',
+                    'packed']),
             },
         depends=['state'])
     cost_currency = fields.Many2One('currency.currency',
-            'Cost Currency', states={
+        'Cost Currency', states={
             'invisible': ~Eval('carrier'),
             'required': Bool(Eval('carrier')),
             'readonly': ~Eval('state').in_(['draft', 'waiting', 'assigned',
@@ -26,7 +27,7 @@ class ShipmentOut:
         'Cost Currency Digits'),
         'on_change_with_cost_currency_digits')
     cost = fields.Numeric('Cost',
-            digits=(16, Eval('cost_currency_digits', 2)), states={
+        digits=(16, Eval('cost_currency_digits', 2)), states={
             'invisible': ~Eval('carrier'),
             'readonly': ~Eval('state').in_(['draft', 'waiting', 'assigned',
                     'packed']),
@@ -56,25 +57,22 @@ class ShipmentOut:
 
     @fields.depends(methods=['inventory_moves'])
     def on_change_carrier(self):
-        return self.on_change_inventory_moves()
+        self.on_change_inventory_moves()
 
     @fields.depends('carrier', 'customer', 'inventory_moves')
     def on_change_inventory_moves(self):
-        Currency = Pool().get('currency.currency')
-
         try:
-            result = super(ShipmentOut, self).on_change_inventory_moves()
+            super(ShipmentOut, self).on_change_inventory_moves()
         except AttributeError:
-            result = {}
+            pass
         if not self.carrier:
-            return result
+            return
         with Transaction().set_context(self._get_carrier_context()):
             cost, currency_id = self.carrier.get_sale_price()
-        currency = Currency(currency_id)
-        result['cost'] = cost
-        result['cost_currency'] = currency.id
-        result['cost_currency_digits'] = currency.digits if currency else 2
-        return result
+        self.cost = cost
+        self.cost_currency = currency_id
+        self.cost_currency_digits = (self.cost_currency.digits
+            if self.cost_currency else 2)
 
     def _get_cost_tax_rule_pattern(self):
         'Get tax rule pattern for invoice line'
diff --git a/tests/__init__.py b/tests/__init__.py
index 5847e0b..2b2fb9a 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,5 +1,5 @@
-#This file is part of Tryton.  The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# 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 .test_sale_shipment_cost import suite
 
diff --git a/tests/scenario_sale_shipment_cost.rst b/tests/scenario_sale_shipment_cost.rst
index 2247a64..45131ba 100644
--- a/tests/scenario_sale_shipment_cost.rst
+++ b/tests/scenario_sale_shipment_cost.rst
@@ -2,16 +2,18 @@
 Sale Shipment Cost 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 sale_shipment_cost, sale and account_invoice::
     ...         ('name', 'in', ('sale_shipment_cost',
     ...             'sale', 'account_invoice')),
     ...         ])
-    >>> 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,59 +44,16 @@ 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),
-    ...         ])
-    >>> expense, = Account.find([
-    ...         ('kind', '=', 'expense'),
-    ...         ('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']
+    >>> expense = accounts['expense']
 
 Create customer::
 
@@ -175,38 +114,31 @@ Create carrier::
 
 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
+    >>> sale.click('quote')
     >>> cost_line = sale.lines[-1]
     >>> cost_line.product == carrier_product
     True
     >>> cost_line.quantity
-    1
+    1.0
     >>> cost_line.amount
     Decimal('3.00')
-    >>> sale.save()
-    >>> Sale.quote([sale.id], config.context)
-    >>> Sale.confirm([sale.id], config.context)
-    >>> Sale.process([sale.id], config.context)
+    >>> sale.click('confirm')
+    >>> sale.click('process')
     >>> sale.state
     u'processing'
     >>> sale.untaxed_amount
@@ -220,27 +152,23 @@ Send products::
     True
     >>> shipment.cost
     Decimal('3')
-    >>> shipment.cost_currency == currency
+    >>> shipment.cost_currency == company.currency
     True
     >>> move, = shipment.inventory_moves
     >>> move.quantity = 4
     >>> shipment.cost
     Decimal('3')
-    >>> 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'
 
@@ -259,21 +187,19 @@ 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
+    >>> sale.click('quote')
     >>> cost_line = sale.lines[-1]
     >>> cost_line.product == carrier_product
     True
-    >>> cost_line.quantity == 1
-    True
+    >>> cost_line.quantity
+    1.0
     >>> cost_line.amount
     Decimal('3.00')
-    >>> sale.save()
-    >>> Sale.quote([sale.id], config.context)
-    >>> Sale.confirm([sale.id], config.context)
-    >>> Sale.process([sale.id], config.context)
+    >>> sale.click('confirm')
+    >>> sale.click('process')
     >>> sale.state
     u'processing'
     >>> sale.untaxed_amount
diff --git a/tests/test_sale_shipment_cost.py b/tests/test_sale_shipment_cost.py
index 0f987b3..2626d01 100644
--- a/tests/test_sale_shipment_cost.py
+++ b/tests/test_sale_shipment_cost.py
@@ -1,25 +1,15 @@
-#This file is part of Tryton.  The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
+# This file is part of Tryton.  The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
 import unittest
 import doctest
 import trytond.tests.test_tryton
-from trytond.tests.test_tryton import test_view, test_depends
+from trytond.tests.test_tryton import ModuleTestCase
 from trytond.tests.test_tryton import doctest_setup, doctest_teardown
 
 
-class SaleShipmentCostTestCase(unittest.TestCase):
+class SaleShipmentCostTestCase(ModuleTestCase):
     'Test Sale Shipment Cost module'
-
-    def setUp(self):
-        trytond.tests.test_tryton.install_module('sale_shipment_cost')
-
-    def test0005views(self):
-        'Test views'
-        test_view('sale_shipment_cost')
-
-    def test0006depends(self):
-        'Test depends'
-        test_depends()
+    module = 'sale_shipment_cost'
 
 
 def suite():
diff --git a/tryton.cfg b/tryton.cfg
index 1790e97..5fb8c23 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
 [tryton]
-version=3.4.1
+version=3.6.0
 depends:
     account_invoice
     carrier
diff --git a/trytond_sale_shipment_cost.egg-info/PKG-INFO b/trytond_sale_shipment_cost.egg-info/PKG-INFO
index 28ebf0c..591af9a 100644
--- a/trytond_sale_shipment_cost.egg-info/PKG-INFO
+++ b/trytond_sale_shipment_cost.egg-info/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: trytond-sale-shipment-cost
-Version: 3.4.1
+Version: 3.6.0
 Summary: Tryton module for sale shipment cost
 Home-page: http://www.tryton.org/
 Author: Tryton
 Author-email: issue_tracker at tryton.org
 License: GPL-3
-Download-URL: http://downloads.tryton.org/3.4/
+Download-URL: http://downloads.tryton.org/3.6/
 Description: trytond_sale_shipment_cost
         ==========================
         
@@ -65,4 +65,6 @@ Classifier: Natural Language :: Slovenian
 Classifier: Natural Language :: Spanish
 Classifier: Operating System :: OS Independent
 Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Topic :: Office/Business
diff --git a/trytond_sale_shipment_cost.egg-info/requires.txt b/trytond_sale_shipment_cost.egg-info/requires.txt
index bf502e9..4dfdd3d 100644
--- a/trytond_sale_shipment_cost.egg-info/requires.txt
+++ b/trytond_sale_shipment_cost.egg-info/requires.txt
@@ -1,6 +1,6 @@
-trytond_account_invoice >= 3.4, < 3.5
-trytond_carrier >= 3.4, < 3.5
-trytond_currency >= 3.4, < 3.5
-trytond_sale >= 3.4, < 3.5
-trytond_stock >= 3.4, < 3.5
-trytond >= 3.4, < 3.5
\ No newline at end of file
+trytond_account_invoice >= 3.6, < 3.7
+trytond_carrier >= 3.6, < 3.7
+trytond_currency >= 3.6, < 3.7
+trytond_sale >= 3.6, < 3.7
+trytond_stock >= 3.6, < 3.7
+trytond >= 3.6, < 3.7
\ No newline at end of file
-- 
tryton-modules-sale-shipment-cost



More information about the tryton-debian-vcs mailing list