Skip to content

Commit

Permalink
[IMP] add tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
Tiago370 committed Oct 23, 2024
1 parent 2cc5c64 commit ee35986
Show file tree
Hide file tree
Showing 15 changed files with 141 additions and 60 deletions.
31 changes: 18 additions & 13 deletions l10n_br_crm_cnpj_search/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ Brazilian Localization CRM CNPJ Search

|badge1| |badge2| |badge3| |badge4| |badge5|

Módulo que adiciona um botão para preencher automaticamente os campos de um lead a partir do seu CNPJ.
Módulo que adiciona um botão para preencher automaticamente os campos de
um lead a partir do seu CNPJ.

**Table of contents**

Expand All @@ -43,17 +44,21 @@ Este módulo depende do módulo l10n_br_cnpj_search e l10n_br_crm.
Configuration
=============

Esta busca de informações a partir do cnpj é realizada com base no provedor configurado na aba de configurações, vale ressaltar que o provedor receitaws permite a realização de três consultas por minuto, enquanto que o SERPRO é pago e permite consultas ilimitadas em seus planos.
Esta busca de informações a partir do cnpj é realizada com base no
provedor configurado na aba de configurações, vale ressaltar que o
provedor receitaws permite a realização de três consultas por minuto,
enquanto que o SERPRO é pago e permite consultas ilimitadas em seus
planos.

Usage
=====

#. Acesse Configurações
#. Escolha um provedor para a busca
#. Habilite o Lead nas configurações do CRM
#. Acesse CRM > Lead > Criar
#. Preencha o nome do Lead, insira no campo de CNPJ o CNPJ que deseja buscar e clique na lupa ao lado do campo para buscar

1. Acesse Configurações
2. Escolha um provedor para a busca
3. Habilite o Lead nas configurações do CRM
4. Acesse CRM > Lead > Criar
5. Preencha o nome do Lead, insira no campo de CNPJ o CNPJ que deseja
buscar e clique na lupa ao lado do campo para buscar

Bug Tracker
===========
Expand All @@ -69,19 +74,19 @@ Credits
=======

Authors
~~~~~~~
-------

* KMEE

Contributors
~~~~~~~~~~~~
------------

* `KMEE <https://www.kmee.com.br>`_:
- `KMEE <https://www.kmee.com.br>`__:

* Bruno Corredato Botti <[email protected]>
- Bruno Corredato Botti <[email protected]>

Maintainers
~~~~~~~~~~~
-----------

This module is maintained by the OCA.

Expand Down
2 changes: 1 addition & 1 deletion l10n_br_crm_cnpj_search/models/l10n_br_base_party_mixin.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ class PartyMixin(models.AbstractModel):
_inherit = "l10n_br_base.party.mixin"

def action_open_cnpj_search_wizard(self):
res = super(PartyMixin, self).action_open_cnpj_search_wizard()
res = super().action_open_cnpj_search_wizard()
if self._name == "crm.lead":
default_lead_id = self.id
else:
Expand Down
3 changes: 3 additions & 0 deletions l10n_br_crm_cnpj_search/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
5 changes: 5 additions & 0 deletions l10n_br_crm_cnpj_search/readme/CONFIGURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Esta busca de informações a partir do cnpj é realizada com base no
provedor configurado na aba de configurações, vale ressaltar que o
provedor receitaws permite a realização de três consultas por minuto,
enquanto que o SERPRO é pago e permite consultas ilimitadas em seus
planos.
1 change: 0 additions & 1 deletion l10n_br_crm_cnpj_search/readme/CONFIGURE.rst

This file was deleted.

2 changes: 2 additions & 0 deletions l10n_br_crm_cnpj_search/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- [KMEE](https://www.kmee.com.br):
- Bruno Corredato Botti \<<[email protected]>\>
3 changes: 0 additions & 3 deletions l10n_br_crm_cnpj_search/readme/CONTRIBUTORS.rst

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
Módulo que adiciona um botão para preencher automaticamente os campos de um lead a partir do seu CNPJ.
Módulo que adiciona um botão para preencher automaticamente os campos de
um lead a partir do seu CNPJ.
File renamed without changes.
6 changes: 6 additions & 0 deletions l10n_br_crm_cnpj_search/readme/USAGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
1. Acesse Configurações
2. Escolha um provedor para a busca
3. Habilite o Lead nas configurações do CRM
4. Acesse CRM \> Lead \> Criar
5. Preencha o nome do Lead, insira no campo de CNPJ o CNPJ que deseja
buscar e clique na lupa ao lado do campo para buscar
6 changes: 0 additions & 6 deletions l10n_br_crm_cnpj_search/readme/USAGE.rst

This file was deleted.

16 changes: 11 additions & 5 deletions l10n_br_crm_cnpj_search/static/description/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,8 @@ <h1 class="title">Brazilian Localization CRM CNPJ Search</h1>
!! source digest: sha256:5ced8ced231656b9a794810c90ec2cd72291b38b3b1ac493a810f0a24dde8221
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/l10n-brazil/tree/16.0/l10n_br_crm_cnpj_search"><img alt="OCA/l10n-brazil" src="https://img.shields.io/badge/github-OCA%2Fl10n--brazil-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/l10n-brazil-16-0/l10n-brazil-16-0-l10n_br_crm_cnpj_search"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/l10n-brazil&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>Módulo que adiciona um botão para preencher automaticamente os campos de um lead a partir do seu CNPJ.</p>
<p>Módulo que adiciona um botão para preencher automaticamente os campos de
um lead a partir do seu CNPJ.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
Expand All @@ -392,16 +393,21 @@ <h1><a class="toc-backref" href="#toc-entry-1">Installation</a></h1>
</div>
<div class="section" id="configuration">
<h1><a class="toc-backref" href="#toc-entry-2">Configuration</a></h1>
<p>Esta busca de informações a partir do cnpj é realizada com base no provedor configurado na aba de configurações, vale ressaltar que o provedor receitaws permite a realização de três consultas por minuto, enquanto que o SERPRO é pago e permite consultas ilimitadas em seus planos.</p>
<p>Esta busca de informações a partir do cnpj é realizada com base no
provedor configurado na aba de configurações, vale ressaltar que o
provedor receitaws permite a realização de três consultas por minuto,
enquanto que o SERPRO é pago e permite consultas ilimitadas em seus
planos.</p>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#toc-entry-3">Usage</a></h1>
<ol class="arabic simple">
<li>Acesse Configurações</li>
<li>Acesse Configurações</li>
<li>Escolha um provedor para a busca</li>
<li>Habilite o Lead nas configurações do CRM</li>
<li>Acesse CRM &gt; Lead &gt; Criar</li>
<li>Preencha o nome do Lead, insira no campo de CNPJ o CNPJ que deseja buscar e clique na lupa ao lado do campo para buscar</li>
<li>Acesse CRM &gt; Lead &gt; Criar</li>
<li>Preencha o nome do Lead, insira no campo de CNPJ o CNPJ que deseja
buscar e clique na lupa ao lado do campo para buscar</li>
</ol>
</div>
<div class="section" id="bug-tracker">
Expand Down
1 change: 1 addition & 0 deletions l10n_br_crm_cnpj_search/tests/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import test_receitaws
88 changes: 88 additions & 0 deletions l10n_br_crm_cnpj_search/tests/test_receitaws.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Copyright 2024 KMEE
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from unittest import mock

from odoo.addons.l10n_br_cnpj_search.tests.common import (
TestCnpjCommon,
)


class TestCRMReceitaws(TestCnpjCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.crm_lead_model = cls.env["crm.lead"]
cls.res_partner_model = cls.env["res.partner"]
cls.crm_lead_1 = cls.crm_lead_model.create({"name": "Jamanta"})

def test_convert_to_oportunity(self):
# self.crm_lead_1._onchange_cnpj_cpf()
mocked_response = self.mocked_response_ws_1
mocked_response["atividades_secundarias"] = [
{
"code": "62.01-5-01",
"text": "Desenvolvimento de programas de computador sob encomenda",
},
{
"code": "62.03-1-00",
"text": """Desenvolvimento e licenciamento de programas
de computador não-customizáveis""",
},
{
"code": "62.09-1-00",
"text": """Suporte técnico, manutenção e outros
serviços em tecnologia da informação""",
},
{
"code": "63.11-9-00",
"text": """Tratamento de dados, provedores de serviços de
aplicação e serviços de hospedagem na internet""",
},
{
"code": "85.99-6-04",
"text": "Treinamento em desenvolvimento profissional e gerencial",
},
]
with mock.patch(
"odoo.addons.l10n_br_cnpj_search.models.cnpj_webservice.CNPJWebservice.validate",
return_value=mocked_response,
):
self.crm_lead_1.write({"cnpj_cpf": "31.954.065/0001-08"})
action_wizard = self.crm_lead_1.action_open_cnpj_search_wizard()
wizard_context = action_wizard.get("context")
wizard = (
self.env["partner.search.wizard"]
.with_context(**wizard_context)
.create({})
)
wizard.action_update_partner()
self.assertEqual(
self.crm_lead_1.legal_name,
"Kilian Macedo Melcher 08777131460",
)
self.assertEqual(self.crm_lead_1.name, "Kilian Macedo Melcher 08777131460")
self.assertEqual(self.crm_lead_1.street, "Rua Luiza Bezerra Motta")
self.assertEqual(self.crm_lead_1.street2, "Bloco E;Apt 302")
self.assertEqual(self.crm_lead_1.street_number, "950")
self.assertEqual(self.crm_lead_1.zip, "58.410-410")
self.assertEqual(self.crm_lead_1.district, "Catole")
self.assertEqual(self.crm_lead_1.phone, "(83) 8665-0905")
self.assertEqual(self.crm_lead_1.state_id.code, "PB")
self.assertEqual(self.crm_lead_1.equity_capital, 3000.00)
self.assertEqual(self.crm_lead_1.cnae_main_id.code, "4751-2/01")

cnaes = [
"6201-5/01",
"6203-1/00",
"6209-1/00",
"6311-9/00",
"8599-6/04",
]
cnaes = sorted(cnaes)
cnae_secondary_codes = [
cnae.code for cnae in self.crm_lead_1.cnae_secondary_ids
]
cnae_secondary_codes = sorted(cnae_secondary_codes)
for i in range(0, len(cnae_secondary_codes)):
self.assertEqual(cnaes[i], cnae_secondary_codes[i])
34 changes: 4 additions & 30 deletions l10n_br_crm_cnpj_search/wizard/partner_cnpj_search_wizard.py
Original file line number Diff line number Diff line change
@@ -1,38 +1,9 @@
from erpbrasil.base import misc
from erpbrasil.base.misc import punctuation_rm

from odoo import models


class PartnerCnpjSearchWizard(models.TransientModel):
_inherit = "partner.search.wizard"

def default_get(self, fields):
if self.env.context.get("default_partner_id"):
res = super().default_get(fields)
else:
res = super(models.TransientModel, self).default_get(
fields
) # Parece que não mas esse else precisa existir.
partner_id = self.env.context.get("default_partner_id")
lead_id = self.env.context.get("default_lead_id")
if partner_id:
partner_model = self.env["res.partner"]
partner = partner_model.browse(partner_id)
cnpj_cpf = punctuation_rm(partner.cnpj_cpf)
misc.punctuation_rm(self.zip)
values = self._get_partner_values(cnpj_cpf)
res.update(values)
else:
lead_id = self.env.context.get("default_lead_id")
lead_model = self.env["crm.lead"]
lead = lead_model.browse(lead_id)
cnpj_cpf = punctuation_rm(lead.cnpj_cpf)
misc.punctuation_rm(self.zip)
values = self._get_partner_values(cnpj_cpf)
res.update(values)
return res

def action_update_partner(self):
if self.env.context.get("default_partner_id"):
values_to_update = {
Expand All @@ -54,9 +25,12 @@ def action_update_partner(self):
"legal_nature": self.legal_nature,
"equity_capital": self.equity_capital,
"cnae_main_id": self.cnae_main_id.id,
"cnae_secondary_ids": self.cnae_secondary_ids.id,
"company_type": "company",
}
if self.cnae_secondary_ids:
values_to_update["cnae_secondary_ids"] = [

Check warning on line 31 in l10n_br_crm_cnpj_search/wizard/partner_cnpj_search_wizard.py

View check run for this annotation

Codecov / codecov/patch

l10n_br_crm_cnpj_search/wizard/partner_cnpj_search_wizard.py#L31

Added line #L31 was not covered by tests
(6, 0, self.cnae_secondary_ids.ids)
]
if self.child_ids:
values_to_update["child_ids"] = [(6, 0, self.child_ids.ids)]
non_empty_values = {
Expand Down

0 comments on commit ee35986

Please sign in to comment.