Files
pms/pms_l10n_es/tests/test_wizard_traveller_report.py

238 lines
8.4 KiB
Python

import datetime
from freezegun import freeze_time
from .common import TestPms
@freeze_time("2021-02-01")
class TestWizardTravellerReport(TestPms):
def setUp(self):
super().setUp()
self.sale_channel_direct1 = self.env["pms.sale.channel"].create(
{
"name": "Door",
"channel_type": "direct",
}
)
# number of seats established in the property
self.pms_property1.ine_seats = 50
# create room types
self.room_type = self.env["pms.room.type"].create(
{
"name": "Room type test",
"default_code": "DBL_Test",
"class_id": self.room_type_class1.id,
}
)
# room property 1
self.room_double_1 = self.env["pms.room"].create(
{
"pms_property_id": self.pms_property1.id,
"name": "Room test 1",
"room_type_id": self.room_type.id,
"capacity": 2,
}
)
# room property 2
self.room_double_property_2 = self.env["pms.room"].create(
{
"pms_property_id": self.pms_property2.id,
"name": "Room test, property 2",
"room_type_id": self.room_type.id,
"capacity": 2,
}
)
# create document category
self.id_category_passport = self.env["res.partner.id_category"].create(
{
"name": "Passport",
"code": "P",
"active": True,
}
)
self.country_italy = self.env["res.country"].search([("code", "=", "IT")])
self.country_italy.ensure_one()
# Create partner for property 1
self.partner_1 = self.env["res.partner"].create(
{
"name": "partner1",
"country_id": self.country_italy.id,
"nationality_id": self.country_italy.id,
"residence_country_id": self.country_italy.id,
"birthdate_date": "2000-06-25",
"gender": "male",
}
)
self.env["res.partner.id_number"].create(
{
"category_id": self.id_category_passport.id,
"name": "55103354T",
"valid_from": datetime.date.today(),
"partner_id": self.partner_1.id,
}
)
# Create partner for property 2
self.partner_2 = self.env["res.partner"].create(
{
"name": "partner2",
"country_id": self.country_italy.id,
"nationality_id": self.country_italy.id,
"residence_country_id": self.country_italy.id,
"birthdate_date": "2000-06-25",
"gender": "male",
}
)
self.env["res.partner.id_number"].create(
{
"category_id": self.id_category_passport.id,
"name": "45437298Q",
"valid_from": datetime.date.today(),
"partner_id": self.partner_2.id,
}
)
def test_checkin_property_not_found(self):
"""
Checking partners are only generated for the property that corresponds to it.
Reservation 1: property 1 with its checkin partner
Reservation 2: proprerty 2 with its checkin partner
Document number of checkin 2 shouldnt be present at result
"""
# ARRANGE
# Create reservation 1
self.reservation_1 = self.env["pms.reservation"].create(
{
"checkin": datetime.date.today(),
"checkout": datetime.date.today() + datetime.timedelta(days=1),
"preferred_room_id": self.room_double_1.id,
"partner_id": self.partner_1.id,
"adults": 1,
"pms_property_id": self.pms_property1.id,
"sale_channel_origin_id": self.sale_channel_direct1.id,
}
)
self.checkin1 = self.env["pms.checkin.partner"].create(
{
"partner_id": self.partner_1.id,
"reservation_id": self.reservation_1.id,
"firstname": "John",
"lastname": "Doe",
"residence_street": "Test street 1",
"residence_city": "Test city",
"residence_zip": "08001",
}
)
# Create reservation 2
self.reservation_2 = self.env["pms.reservation"].create(
{
"checkin": datetime.date.today(),
"checkout": datetime.date.today() + datetime.timedelta(days=1),
"preferred_room_id": self.room_double_property_2.id,
"partner_id": self.partner_2.id,
"adults": 1,
"pms_property_id": self.pms_property2.id,
"sale_channel_origin_id": self.sale_channel_direct1.id,
}
)
self.checkin2 = self.env["pms.checkin.partner"].create(
{
"partner_id": self.partner_2.id,
"reservation_id": self.reservation_2.id,
"firstname": "Martha",
"lastname": "Stewart",
"residence_street": "Test street 1",
"residence_city": "Test city",
"residence_zip": "08001",
}
)
# checkin partners on board
self.checkin1.action_on_board()
self.checkin2.action_on_board()
# ACT
result_checkin_list = (
self.env["traveller.report.wizard"]
.create({})
.generate_checkin_list(self.pms_property1.id)
)
# ASSERT
self.assertNotIn(self.checkin2.document_number, result_checkin_list)
def test_checkin_property_found(self):
"""
Checking partners are only generated for the property that corresponds to it.
Reservation 1: property 1 with its checkin partner
Reservation 2: proprerty 2 with its checkin partner
Document number of checkin 1 should be present at result
"""
# ARRANGE
# Create reservation 1
self.reservation_1 = self.env["pms.reservation"].create(
{
"checkin": datetime.date.today(),
"checkout": datetime.date.today() + datetime.timedelta(days=1),
"preferred_room_id": self.room_double_1.id,
"partner_id": self.partner_1.id,
"adults": 1,
"pms_property_id": self.pms_property1.id,
"sale_channel_origin_id": self.sale_channel_direct1.id,
}
)
self.checkin1 = self.env["pms.checkin.partner"].create(
{
"partner_id": self.partner_1.id,
"reservation_id": self.reservation_1.id,
"firstname": "John",
"lastname": "Doe",
"nationality_id": self.country_italy.id,
"residence_street": "Test street 1",
"residence_city": "Test city",
"residence_zip": "08001",
}
)
# Create reservation 2
self.reservation_2 = self.env["pms.reservation"].create(
{
"checkin": datetime.date.today(),
"checkout": datetime.date.today() + datetime.timedelta(days=1),
"preferred_room_id": self.room_double_property_2.id,
"partner_id": self.partner_2.id,
"adults": 1,
"pms_property_id": self.pms_property2.id,
"sale_channel_origin_id": self.sale_channel_direct1.id,
}
)
self.checkin2 = self.env["pms.checkin.partner"].create(
{
"partner_id": self.partner_2.id,
"reservation_id": self.reservation_2.id,
"firstname": "Martha",
"lastname": "Stewart",
"residence_street": "Test street 1",
"residence_city": "Test city",
"residence_zip": "08001",
}
)
# checkin partners on board
self.checkin1.action_on_board()
self.checkin2.action_on_board()
# ACT
result_checkin_list = (
self.env["traveller.report.wizard"]
.create({})
.generate_checkin_list(self.pms_property1.id)
)
# ASSERT
self.assertIn(self.checkin1.document_number, result_checkin_list)