mirror of
https://github.com/bringout/oca-ocb-technical.git
synced 2026-04-18 18:52:06 +02:00
Initial commit: Technical packages
This commit is contained in:
commit
3473fa71a0
873 changed files with 297766 additions and 0 deletions
5
odoo-bringout-oca-ocb-iap/iap/tests/__init__.py
Normal file
5
odoo-bringout-oca-ocb-iap/iap/tests/__init__.py
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import test_iap
|
||||
from . import common
|
||||
152
odoo-bringout-oca-ocb-iap/iap/tests/common.py
Normal file
152
odoo-bringout-oca-ocb-iap/iap/tests/common.py
Normal file
|
|
@ -0,0 +1,152 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from contextlib import contextmanager
|
||||
from unittest.mock import patch
|
||||
|
||||
from odoo import exceptions
|
||||
from odoo.addons.iap.tools import iap_tools
|
||||
from odoo.addons.iap.models.iap_enrich_api import IapEnrichAPI
|
||||
from odoo.tests import common
|
||||
|
||||
|
||||
class MockIAPEnrich(common.TransactionCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(MockIAPEnrich, cls).setUpClass()
|
||||
cls._init_iap_mock()
|
||||
|
||||
@contextmanager
|
||||
def mockIAPEnrichGateway(self, default_data=None, email_data=None, sim_error=None, failing_emails=None):
|
||||
|
||||
def _contact_iap(local_endpoint, params):
|
||||
sim_result = {
|
||||
'name': 'Simulator INC',
|
||||
'location': 'Simulator Street',
|
||||
'city': 'SimCity',
|
||||
'postal_code': '9876',
|
||||
'country_code': 'BE',
|
||||
'clearbit_id': 'idontknow',
|
||||
'phone_numbers': ['+3269001122', '+32456001122'],
|
||||
'twitter': 'testtwitter',
|
||||
'facebook': 'testfacebook',
|
||||
}
|
||||
if default_data:
|
||||
sim_result.update(default_data)
|
||||
# mock single sms sending
|
||||
if local_endpoint == '/iap/clearbit/1/lead_enrichment_email':
|
||||
result = {}
|
||||
for lead_id, email in params['domains'].items():
|
||||
if sim_error and sim_error == 'credit':
|
||||
raise iap_tools.InsufficientCreditError('InsufficientCreditError')
|
||||
elif sim_error and sim_error == 'jsonrpc_exception':
|
||||
raise exceptions.AccessError(
|
||||
'The url that this service requested returned an error. Please contact the author of the app. The url it tried to contact was ' + local_endpoint
|
||||
)
|
||||
result[str(lead_id)] = dict(sim_result)
|
||||
if email_data and email_data.get(email):
|
||||
result[str(lead_id)].update(email_data[email])
|
||||
return result
|
||||
|
||||
try:
|
||||
with patch.object(IapEnrichAPI, '_contact_iap', side_effect=_contact_iap) as contact_iap_mock:
|
||||
yield
|
||||
finally:
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def _init_iap_mock(cls):
|
||||
cls.base_de = cls.env.ref('base.de')
|
||||
cls.de_state_st = cls.env['res.country.state'].create({
|
||||
'name': 'DE ST State',
|
||||
'code': 'st',
|
||||
'country_id': cls.base_de.id
|
||||
})
|
||||
cls.base_be = cls.env.ref('base.be')
|
||||
cls.be_state_bw = cls.env['res.country.state'].create({
|
||||
'name': 'Béwééé dis',
|
||||
'code': 'bw',
|
||||
'country_id': cls.base_be.id
|
||||
})
|
||||
|
||||
def _get_iap_company_data(self, base_name, service=None, add_values=None):
|
||||
return {
|
||||
'domain': '%s.de' % base_name,
|
||||
'clearbit_id': '123_ClearbitID_%s' % base_name,
|
||||
|
||||
# Company Info
|
||||
'name': '%s GmbH' % base_name,
|
||||
'legal_name': '%s GmbH legal_name' % base_name,
|
||||
'description': '%s GmbH description' % base_name,
|
||||
'founded_year': '1930',
|
||||
'logo': 'https://logo.clearbit.com/%slogo.com' % base_name,
|
||||
'company_type': 'private',
|
||||
|
||||
# Contacts
|
||||
'phone_numbers': ['+4930499193937', '+4930653376208'],
|
||||
'email': [
|
||||
'info@%s.example.com' % base_name,
|
||||
'info2@%s.example.com' % base_name
|
||||
],
|
||||
|
||||
# Timezone
|
||||
'timezone': 'Europe/Berlin',
|
||||
'timezone_url': 'https://time.is/Berlin',
|
||||
|
||||
# Social
|
||||
'facebook': "%s Facebook Handle" % base_name,
|
||||
'linkedin': "%s Linkedin Handle" % base_name,
|
||||
'crunchbase': "organization/%s" % base_name,
|
||||
|
||||
# Twitter
|
||||
'twitter': '%s Twitter Handle' % base_name,
|
||||
'twitter_bio': '%s Twitter Bio' % base_name,
|
||||
'twitter_followers': 1250,
|
||||
'twitter_location': 'Berlin',
|
||||
|
||||
# Metrics
|
||||
'estimated_annual_revenue': '1000000',
|
||||
'employees': 3.14,
|
||||
'market_cap': 6.28,
|
||||
'raised': 15000,
|
||||
'annual_revenue': 1000000,
|
||||
|
||||
# Category
|
||||
'sector': '%s sector' % base_name,
|
||||
'sector_primary': '%s sector_primary' % base_name,
|
||||
'industry': '%s industry' % base_name,
|
||||
'industry_group': '%s industry_group' % base_name,
|
||||
'sub_industry': '%s sub_industry' % base_name,
|
||||
'tag': ['Automation', 'Construction'],
|
||||
'tech': ['3d_cart', 'nginx'],
|
||||
|
||||
# Site
|
||||
'website_title': '%s Website Title' % base_name,
|
||||
|
||||
# GEO Data
|
||||
'location': 'Mennrather Str. 123456',
|
||||
'street_number': '123456',
|
||||
'street_name': 'Mennrather Str.',
|
||||
'sub_premise': 'sub premise',
|
||||
'postal_code': '41179',
|
||||
'city': 'Mönchengladbach',
|
||||
'state_code': self.de_state_st.code,
|
||||
'state_name': self.de_state_st.name,
|
||||
'country_code': self.base_de.code,
|
||||
'country_name': self.base_de.name,
|
||||
}
|
||||
|
||||
def _get_iap_contact_data(self, base_name, service=None, add_values=None):
|
||||
people_data = []
|
||||
for index in range(2):
|
||||
payload = {
|
||||
'full_name': 'Contact %s %s' % (base_name, index),
|
||||
'email': 'test.contact.%s@%s.example.com' % (index, base_name),
|
||||
'phone': '+49 30 548406496',
|
||||
'seniority': 'manager',
|
||||
'title': 'Doing stuff',
|
||||
'role': 'health_professional',
|
||||
}
|
||||
people_data.append(payload)
|
||||
return people_data
|
||||
10
odoo-bringout-oca-ocb-iap/iap/tests/test_iap.py
Normal file
10
odoo-bringout-oca-ocb-iap/iap/tests/test_iap.py
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo.tests.common import TransactionCase
|
||||
|
||||
|
||||
class TestIAP(TransactionCase):
|
||||
def test_get_account(self):
|
||||
account = self.env["iap.account"].get("random_service_name")
|
||||
self.assertTrue(account.account_token, "Must be able to read the field")
|
||||
Loading…
Add table
Add a link
Reference in a new issue