Skip to content
Snippets Groups Projects
Commit 69121fdc authored by Daniil Digtyar Vasilieva's avatar Daniil Digtyar Vasilieva :call_me:
Browse files

Merge branch 'feature/IMP_energy_selfconsumption_add_invoicing_unit_testing'...

Merge branch 'feature/IMP_energy_selfconsumption_add_invoicing_unit_testing' into 'feature/IMP_energy_selfconsumption_invoicing_acquired_power'

[IMP] energy_selfconsumption: add invoicing and contract unit testing

See merge request !219
parents 0c1641e1 f9b935b6
No related branches found
No related tags found
1 merge request!219[IMP] energy_selfconsumption: add invoicing and contract unit testing
Pipeline #60474 passed
from . import models
from . import wizards
from . import controllers
from . import tests
......@@ -72,7 +72,7 @@ class SupplyPointAssignation(models.Model):
@api.constrains("supply_point_id")
def constraint_supply_point_id(self):
for record in self:
supply_points = record.distribution_table_id.selfconsumption_project_id.inscription_ids.mapped(
supply_points = record.distribution_table_id.selfconsumption_project_id.project_id.inscription_ids.mapped(
"partner_id.supply_ids"
)
if record.supply_point_id.id not in supply_points.ids:
......
from . import test_contract_generation_wizard
from datetime import datetime
from odoo.exceptions import ValidationError
from odoo.tests.common import TransactionCase
class TestContractGenerationWizard(TransactionCase):
def setUp(self):
super().setUp()
self.partner = self.env["res.partner"].create({"name": "test partner"})
self.selfconsumption = self.env[
"energy_selfconsumption.selfconsumption"
].create(
{
"name": "test Selfconsumption Project",
"type": self.env.ref(
"energy_selfconsumption.selfconsumption_project_type"
).id,
"code": "ES0397277816188340VL",
"cil": "001ES0397277816188340VL",
"state": "activation",
"power": 100,
"street": "Carrer de Sants, 79",
"zip": "08014",
"city": "Barcelona",
"state_id": self.env.ref("base.state_es_b").id,
"country_id": self.env.ref("base.es").id,
}
)
self.inscription = self.env["energy_project.inscription"].create(
{
"project_id": self.selfconsumption.project_id.id,
"partner_id": self.partner.id,
"effective_date": datetime.today(),
}
)
self.supply_point = self.env["energy_selfconsumption.supply_point"].create(
{
"code": "ES0029542181297829TM",
"street": "C. de Sta. Catalina",
"street2": "55º B",
"zip": "08014",
"city": "Barcelona",
"state_id": self.env.ref("base.state_es_b").id,
"country_id": self.env.ref("base.es").id,
"owner_id": self.partner.id,
"partner_id": self.partner.id,
}
)
self.distribution_table = self.env[
"energy_selfconsumption.distribution_table"
].create(
{
"name": "DT001",
"selfconsumption_project_id": self.selfconsumption.id,
"type": "fixed",
"state": "process",
}
)
self.supply_point_assignation = self.env[
"energy_selfconsumption.supply_point_assignation"
].create(
{
"distribution_table_id": self.distribution_table.id,
"supply_point_id": self.supply_point.id,
"coefficient": 1,
}
)
self.contract_generation_wizard = self.env[
"energy_selfconsumption.contract_generation.wizard"
].create(
{
"price_energy": 0.1,
"recurring_interval": 1,
"recurring_rule_type": "monthly",
"selfconsumption_id": self.selfconsumption.id,
}
)
def test_generation_contracts(self):
res = self.contract_generation_wizard.generate_contracts_button()
self.assertEqual(res, True)
related_contract = self.env["contract.contract"].search(
[("project_id", "=", self.selfconsumption.project_id.id)]
)
contract_line = related_contract[0].contract_line_ids[0]
days_timedelta = (
contract_line.next_period_date_end - contract_line.next_period_date_start
)
expected_quantity = 100 * 1 * (days_timedelta.days + 1)
related_contract[0].recurring_create_invoice()
invoice = related_contract._get_related_invoices()
self.assertEqual(invoice.invoice_line_ids[0].quantity, expected_quantity)
self.assertEqual(invoice.invoice_line_ids[0].price_unit, 0.1)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment