[FIX] snailmail_account: use HttpCase to contact pingen

Pingen is a service that print (like really, using a printer) pdfs
document in order to mail them (using the real post and postmen). In
order to ensure we are compatible with their API, we send to their
sandbox environment a bunch of standard documents (like an invoice).

Those PDFs documents are generated our side using wkhtmltopdf but as the
test were not started using a HttpCase, the assets were not correctly
available.

This also reverts commit 3f5a0a1ef4.

closes odoo/odoo#40323

Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This commit is contained in:
Julien Castiaux
2019-11-15 10:45:00 +00:00
parent c5570c4e7d
commit a9ddc5a50e
@@ -4,30 +4,28 @@ import json
import base64
import logging
from odoo.addons.account.tests.common import AccountTestCommon
from odoo.addons.account.tests.common import HttpCase
from odoo.tests import tagged
_logger = logging.getLogger(__name__)
@tagged('post_install', '-at_install', '-standard', 'external')
class TestPingenSend(AccountTestCommon):
class TestPingenSend(HttpCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.pingen_url = "https://stage-api.pingen.com/document/upload/token/30fc3947dbea4792eb12548b41ec8117/"
cls.sample_invoice = cls.create_invoice()
cls.sample_invoice.partner_id.vat = "BE000000000"
cls.letter = cls.env['snailmail.letter'].create({
'partner_id': cls.sample_invoice.partner_id.id,
def setUp(self):
super(TestPingenSend, self).setUp()
self.pingen_url = "https://stage-api.pingen.com/document/upload/token/30fc3947dbea4792eb12548b41ec8117/"
self.sample_invoice = self.create_invoice()
self.sample_invoice.partner_id.vat = "BE000000000"
self.letter = self.env['snailmail.letter'].create({
'partner_id': self.sample_invoice.partner_id.id,
'model': 'account.move',
'res_id': cls.sample_invoice.id,
'user_id': cls.env.user.id,
'company_id': cls.sample_invoice.company_id.id,
'report_template': cls.env.ref('account.account_invoices').id
'res_id': self.sample_invoice.id,
'user_id': self.env.user.id,
'company_id': self.sample_invoice.company_id.id,
'report_template': self.env.ref('account.account_invoices').id
})
cls.data = {
self.data = {
'data': json.dumps({
'speed': 1,
'color': 1,
@@ -36,16 +34,15 @@ class TestPingenSend(AccountTestCommon):
})
}
@classmethod
def create_invoice(cls):
def create_invoice(self):
""" Create a sample invoice """
invoice = cls.env['account.move'].with_context(default_type='out_invoice').create({
invoice = self.env['account.move'].with_context(default_type='out_invoice').create({
'type': 'out_invoice',
'partner_id': cls.env.ref("base.res_partner_2").id,
'currency_id': cls.env.ref('base.EUR').id,
'partner_id': self.env.ref("base.res_partner_2").id,
'currency_id': self.env.ref('base.EUR').id,
'invoice_date': '2018-12-11',
'invoice_line_ids': [(0, 0, {
'product_id': cls.env.ref("product.product_product_4").id,
'product_id': self.env.ref("product.product_product_4").id,
'quantity': 1,
'price_unit': 42,
})],
@@ -58,7 +55,6 @@ class TestPingenSend(AccountTestCommon):
def render_and_send(self, report_name):
self.sample_invoice.company_id.external_report_layout_id = self.env.ref('web.' + report_name)
self.letter.attachment_id = False
attachment_id = self.letter.with_context(force_report_rendering=True)._fetch_attachment()
files = {
@@ -79,10 +75,6 @@ class TestPingenSend(AccountTestCommon):
_logger.warning(msg % "Server")
def test_pingen_send_invoice(self):
# Avoid assets to be unlinked during the test
# and to reload the registry
self.registry.enter_test_mode(self.cr)
self.render_and_send('external_layout_standard')
self.render_and_send('external_layout_background')
self.render_and_send('external_layout_boxed')