Odoo18-Base/addons/website_event_sale/tests/common.py

100 lines
3.8 KiB
Python
Raw Permalink Normal View History

2025-01-06 10:57:38 +07:00
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import timedelta
from odoo.fields import Datetime
from odoo.tests.common import TransactionCase
class TestWebsiteEventSaleCommon(TransactionCase):
@classmethod
def setUpClass(cls):
super(TestWebsiteEventSaleCommon, cls).setUpClass()
cls.env.company.country_id = cls.env.ref('base.us')
cls.currency_test = cls.env['res.currency'].create({
'name': 'eventX',
'rounding': 0.01,
'symbol': 'EX',
})
cls.partner = cls.env['res.partner'].create({'name': 'test'})
cls.env['res.currency.rate'].search([]).unlink()
cls.rate = cls.env['res.currency.rate'].create({
'company_id': cls.env.company.id,
'currency_id': cls.currency_test.id,
'name': '2022-01-01',
'rate': 10,
})
cls.zero_tax = cls.env['account.tax'].sudo().create({
'name': 'Tax 0',
'amount': 0,
'tax_group_id': cls.env['account.tax.group'].create({
'name': 'Text Tax Group',
'company_id': cls.env.company.id,
}).id
})
cls.product_event = cls.env['product.product'].create({
'type': 'service',
'service_tracking': 'event',
'list_price': 100,
'name': 'Event Registration No Company Assigned',
'taxes_id': [(6, 0, cls.zero_tax.ids)],
})
cls.event, cls.event_2 = cls.env['event.event'].create([
{
'date_begin': (Datetime.today() + timedelta(days=5)).strftime('%Y-%m-%d 07:00:00'),
'date_end': (Datetime.today() + timedelta(days=5)).strftime('%Y-%m-%d 16:30:00'),
'name': 'Pycon',
'user_id': cls.env.ref('base.user_admin').id,
'website_published': True,
},
{
'date_begin': (Datetime.today() + timedelta(days=5)).strftime('%Y-%m-%d 07:00:00'),
'date_end': (Datetime.today() + timedelta(days=5)).strftime('%Y-%m-%d 16:30:00'),
'name': 'Conference for Architects TEST',
'user_id': cls.env.ref('base.user_admin').id,
'website_published': True,
}
])
cls.ticket, cls.ticket_2 = cls.env['event.event.ticket'].create([
{
'event_id': cls.event.id,
'name': 'Standard',
'product_id': cls.product_event.id,
'price': 100,
},
{
'event_id': cls.event_2.id,
'name': 'Standard',
'product_id': cls.product_event.id,
'price': 1000,
}
])
cls.current_website = cls.env['website'].get_current_website()
cls.pricelist = cls.env['product.pricelist'].create({'name': 'Base Pricelist'})
cls.so = cls.env['sale.order'].create({
'company_id': cls.env.company.id,
'partner_id': cls.partner.id,
'pricelist_id': cls.pricelist.id,
})
def create_pricelist(currency, name):
return cls.env['product.pricelist'].create({
'currency_id': currency.id,
'item_ids': [(5, 0, 0), (0, 0, {
'applied_on': '3_global',
'compute_price': 'percentage',
'percent_price': 10,
})],
'name': name,
'selectable': True,
})
cls.pricelist_without_discount = create_pricelist(currency=cls.env.company.currency_id, name='EUR Without Discount Included')
cls.ex_pricelist_without_discount = create_pricelist(currency=cls.currency_test, name='EX Without Discount Included')