Skip to content

Commit

Permalink
[FIX] intrastat*: Tests
Browse files Browse the repository at this point in the history
  • Loading branch information
victoralmau committed Jun 15, 2022
1 parent 6e28dfc commit 1977ab8
Show file tree
Hide file tree
Showing 8 changed files with 78 additions and 48 deletions.
16 changes: 16 additions & 0 deletions intrastat_base/tests/common.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Copyright 2021 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).


class IntrastatCommon(object):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True))
cls.chart_template_obj = cls.env["account.chart.template"]
cls.mail_obj = cls.env["mail.mail"]

cls.demo_user = cls.env.ref("base.user_demo")
cls.demo_company = cls.env.ref("base.main_company")

cls.shipping_cost = cls.env.ref("intrastat_base.shipping_costs_exclude")
5 changes: 5 additions & 0 deletions intrastat_product/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,11 @@ Contributors
* Alexis de Lattre, Akretion <alexis.delattre@akretion.com>
* Luc De Meyer, Noviat <info@noviat.com>


* `Tecnativa <https://www.tecnativa.com>`_:

* Víctor Martínez

Maintainers
~~~~~~~~~~~

Expand Down
5 changes: 2 additions & 3 deletions intrastat_product/models/intrastat_product_declaration.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Copyright 2011-2020 Akretion France (http://www.akretion.com)
# Copyright 2009-2022 Noviat (http://www.noviat.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# Copyright 2022 Tecnativa - Víctor Martínez
# @author Luc de Meyer <info@noviat.com>

import logging
Expand Down Expand Up @@ -764,8 +765,6 @@ def action_gather(self):
self.computation_line_ids.unlink()
self.declaration_line_ids.unlink()
lines = self._gather_invoices(notedict)
vals = {"note": notedict["note"]}

vals = {"note": notedict["note"]}
if not lines:
vals["action"] = "nihil"
Expand All @@ -780,7 +779,7 @@ def action_gather(self):

self.write(vals)
if vals["note"]:
result_view = self.env.ref("intrastat_product.intrastat_result_view_form")
result_view = self.env.ref("intrastat_base.intrastat_result_view_form")
return {
"name": _("Generate lines from invoices: results"),
"view_type": "form",
Expand Down
5 changes: 5 additions & 0 deletions intrastat_product/readme/CONTRIBUTORS.rst
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
* Alexis de Lattre, Akretion <alexis.delattre@akretion.com>
* Luc De Meyer, Noviat <info@noviat.com>


* `Tecnativa <https://www.tecnativa.com>`_:

* Víctor Martínez
6 changes: 5 additions & 1 deletion intrastat_product/static/description/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.15.1: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils: http://docutils.sourceforge.net/" />
<title>Intrastat Product</title>
<style type="text/css">

Expand Down Expand Up @@ -473,6 +473,10 @@ <h2><a class="toc-backref" href="#id8">Contributors</a></h2>
<ul class="simple">
<li>Alexis de Lattre, Akretion &lt;<a class="reference external" href="mailto:alexis.delattre&#64;akretion.com">alexis.delattre&#64;akretion.com</a>&gt;</li>
<li>Luc De Meyer, Noviat &lt;<a class="reference external" href="mailto:info&#64;noviat.com">info&#64;noviat.com</a>&gt;</li>
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
<li>Víctor Martínez</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="maintainers">
Expand Down
7 changes: 0 additions & 7 deletions intrastat_product/tests/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1 @@
from . import common
from . import common_purchase
from . import common_sale
from . import test_intrastat_product
from . import test_brexit
from . import test_company
from . import test_purchase_order
from . import test_sale_order
33 changes: 22 additions & 11 deletions intrastat_product/tests/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ def _init_products(cls):
"parent_id": cls.category_saleable.id,
}
cls.categ_robots = cls.category_obj.create(vals)

vals = {
"name": "C3PO",
"categ_id": cls.categ_robots.id,
Expand All @@ -23,20 +22,33 @@ def _init_products(cls):
"hs_code_id": cls.hs_code_computer.id,
}
cls.product_c3po = cls.product_template_obj.create(vals)
cls.account = cls.env["account.account"].create(
{
"name": "Test Account",
"code": "TEST",
"user_type_id": cls.env.ref("account.data_account_type_receivable").id,
"reconcile": True,
}
)
cls.other_account = cls.env["account.account"].create(
{
"name": "Test Account",
"code": "ACC",
"user_type_id": cls.env.ref(
"account.data_account_type_other_income"
).id,
"reconcile": True,
}
)
cls.journal = cls.env["account.journal"].create(
{"name": "Test sale journal", "type": "sale", "code": "TEST-SALE"}
)

@classmethod
def _init_company(cls):
# Default transport for company is Road
cls.demo_company.intrastat_transport_id = cls.transport_road

@classmethod
def _init_fiscal_position(cls):
vals = {
"name": "Intrastat Fiscal Position",
"intrastat": True,
}
cls.position = cls.position_obj.create(vals)

@classmethod
def _init_regions(cls):
# Create Region
Expand Down Expand Up @@ -69,7 +81,6 @@ def setUpClass(cls):

cls._init_regions()
cls._init_company()
cls._init_fiscal_position()
cls._init_products()

@classmethod
Expand Down Expand Up @@ -107,7 +118,7 @@ def _create_transport_mode(cls, vals=None):
def _create_declaration(cls, vals=None):
values = {
"company_id": cls.env.company.id,
"declaration_type": "dispatches",
"type": "dispatches",
}
if vals is not None:
values.update(vals)
Expand Down
49 changes: 23 additions & 26 deletions intrastat_product/tests/test_brexit.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Copyright 2022 Noviat.
# Copyright 2022 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo.tests import Form, SavepointCase
Expand Down Expand Up @@ -36,28 +37,28 @@ def setUpClass(cls):
"hs_code_id": cls.hs_code_whiskey.id,
}
)
country_uk = cls.env.ref("base.uk")
country_uk.intrastat = True
cls.partner_xi = cls.env["res.partner"].create(
{
"name": "Bushmills Distillery",
"country_id": cls.env.ref("base.uk").id,
"country_id": country_uk.id,
"state_id": cls.env.ref("base.state_uk18").id,
"vat": "XI123456782",
"property_account_position_id": cls.position.id,
}
)

def test_brexit_sale(self):
inv_out_xi = self.inv_obj.with_context(default_move_type="out_invoice").create(
{"partner_id": self.partner_xi.id, "fiscal_position_id": self.position.id}
)
with Form(inv_out_xi) as inv_form:
with inv_form.invoice_line_ids.new() as ail:
ail.product_id = self.product_c3po.product_variant_ids[0]
inv_form = Form(self.inv_obj.with_context(default_type="out_invoice"))
inv_form.partner_id = self.partner_xi
with inv_form.invoice_line_ids.new() as ail:
ail.product_id = self.product_c3po.product_variant_ids[0]
inv_out_xi = inv_form.save()
inv_out_xi.action_post()

self._create_declaration(
{
"declaration_type": "dispatches",
"type": "dispatches",
"year": str(inv_out_xi.date.year),
"month": str(inv_out_xi.date.month).zfill(2),
}
Expand All @@ -70,20 +71,18 @@ def test_brexit_sale(self):
self.assertEqual(dline.src_dest_country_code, "XI")

def test_brexit_purchase(self):
inv_in_xi = self.inv_obj.with_context(default_move_type="in_invoice").create(
{"partner_id": self.partner_xi.id, "fiscal_position_id": self.position.id}
)
with Form(inv_in_xi) as inv_form:
with inv_form.invoice_line_ids.new() as ail:
ail.product_id = self.product_xi
with inv_form.invoice_line_ids.new() as ail:
ail.product_id = self.product_xu
inv_in_xi.invoice_date = inv_in_xi.date
inv_form = Form(self.inv_obj.with_context(default_type="in_invoice"))
inv_form.partner_id = self.partner_xi
with inv_form.invoice_line_ids.new() as ail:
ail.product_id = self.product_xi
with inv_form.invoice_line_ids.new() as ail:
ail.product_id = self.product_xu
inv_in_xi = inv_form.save()
inv_in_xi.action_post()

self._create_declaration(
{
"declaration_type": "arrivals",
"type": "arrivals",
"year": str(inv_in_xi.date.year),
"month": str(inv_in_xi.date.month).zfill(2),
}
Expand All @@ -102,13 +101,11 @@ def test_brexit_purchase(self):
self.assertEqual(dl_xu.product_origin_country_code, "XU")

def test_brexit_invoice_intrastat_details(self):
inv_in_xi = self.inv_obj.with_context(default_move_type="in_invoice").create(
{"partner_id": self.partner_xi.id, "fiscal_position_id": self.position.id}
)
with Form(inv_in_xi) as inv_form:
with inv_form.invoice_line_ids.new() as ail:
ail.product_id = self.product_xi
inv_in_xi.invoice_date = inv_in_xi.date
inv_form = Form(self.inv_obj.with_context(default_type="in_invoice"))
inv_form.partner_id = self.partner_xi
with inv_form.invoice_line_ids.new() as ail:
ail.product_id = self.product_xi
inv_in_xi = inv_form.save()
inv_in_xi.compute_intrastat_lines()
ilines = inv_in_xi.intrastat_line_ids
self.assertEqual(ilines.product_origin_country_code, "XI")

0 comments on commit 1977ab8

Please sign in to comment.