Files
pms/pms_l10n_es/tests/test_partner.py
Miguel Padin 0d03152402 Code review (#62)
* [REF] pms: refactor amenity type

* [REF] pms: refactor amenity

* [REF]Refactor amenity views and demo data

* [WIP] master model 2nd day

* [WIP] Master model refactor

* [WIP] Refactor in tests

* [WIP] Add mandatory sequence in pms_property at tests and fix create in folio, reservation and checkin

* [WIP] Test refactor

* [WIP]Refactor pms_room, pms_room_clousure_reason and pms_room_type

* [WIP]review of guidelines in master models

* [WIP]test refactor

* [WIP]review guidelines in master models 2

* [WIP] fixed fields in pms_l10n_es

* [WIP]Refactor product_product, product_template, res_company, res_partner and res_user

* [IMP] Add common.py for tests

* [WIP] Refactor fields in pms.folio and pms.reservation

* [WIP] Review guidelines in pms.reservation, pms.reservation.line and rename availability models

* [WIP] Rename availability models

* [WIP] Refactor availability models

* [WIP] Refactor availity models 2

* [WIP] Pms: add sequences creation in pms_property create

* [WIP] Fix sequence creation in pmp.property

* [REF] Refactor fields in res_partner and rename date_overnight

* [REF] Refactoring master models tests

* [FIX] Fix sequence create in pms.reservation

* [REF] Refactor helps in master and availability models

* [IMP] Extend test coverage in test_pms_reservation

* [REF] Refactor fields in pms_reservation

* [REF] Refactor fields in pms_reservation 2

* [REF] Refactor fields in service flow

* [REF] Refactor pms_reservation

* [REF] Refactor pms_reservation 2

* [REF] draft button removed from view

* [REF] change no_show to arrival_delayed in field state of pms_reservation

* [REF] Add compute_preferred_room_id in pms_reservation

* [REF] Fix cache problem in test_reservation_action_checkout

Co-authored-by: braisab <braisterbutalino@gmail.com>
Co-authored-by: Sara Lago <saralago126@gmail.com>
Co-authored-by: Brais Abeijón <>
2021-04-15 01:01:11 +02:00

150 lines
4.9 KiB
Python

import datetime
from freezegun import freeze_time
from odoo import fields
from odoo.exceptions import ValidationError
from odoo.tests import common
@freeze_time("2011-03-16")
class TestResPartner(common.SavepointCase):
def create_common_scenario(self):
self.folio_sequence = self.env["ir.sequence"].create(
{
"name": "PMS Folio",
"code": "pms.folio",
"padding": 4,
"company_id": self.env.ref("base.main_company").id,
}
)
self.reservation_sequence = self.env["ir.sequence"].create(
{
"name": "PMS Reservation",
"code": "pms.reservation",
"padding": 4,
"company_id": self.env.ref("base.main_company").id,
}
)
self.checkin_sequence = self.env["ir.sequence"].create(
{
"name": "PMS Checkin",
"code": "pms.checkin.partner",
"padding": 4,
"company_id": self.env.ref("base.main_company").id,
}
)
self.property_test = self.property = self.env["pms.property"].create(
{
"name": "My property test",
"company_id": self.env.ref("base.main_company").id,
"default_pricelist_id": self.env.ref("product.list0").id,
"folio_sequence_id": self.folio_sequence.id,
"reservation_sequence_id": self.reservation_sequence.id,
"checkin_sequence_id": self.checkin_sequence.id,
}
)
def test_check_precheckin_state(self):
# arrange
self.create_common_scenario()
today = fields.date.today()
partner = self.env["res.partner"].create(
{
"name": "name1",
# "lastname": "lastname1",
"lastname2": "secondlastname",
"document_expedition_date": "2011-02-20",
"birthdate_date": "1995-12-10",
"gender": "male",
"document_type": "D",
"document_number": "30065089H",
}
)
reservation_vals = {
"checkin": today,
"checkout": today + datetime.timedelta(days=3),
"partner_id": partner.id,
"adults": 1,
"pms_property_id": self.property_test.id,
}
# action
reservation = self.env["pms.reservation"].create(reservation_vals)
checkin = self.env["pms.checkin.partner"].create(
{
"partner_id": partner.id,
"reservation_id": reservation.id,
}
)
# assert
self.assertEqual(
checkin.state, "precheckin", "partner's fields weren't checked"
)
def test_error_action_on_board(self):
# arrange
self.create_common_scenario()
today = fields.date.today()
partner = self.env["res.partner"].create(
{
"name": "partner1",
}
)
reservation_vals = {
"checkin": today,
"checkout": today + datetime.timedelta(days=3),
"partner_id": partner.id,
"adults": 1,
"pms_property_id": self.property_test.id,
}
# action
reservation = self.env["pms.reservation"].create(reservation_vals)
checkin = self.env["pms.checkin.partner"].create(
{
"partner_id": partner.id,
"reservation_id": reservation.id,
}
)
# arrange
with self.assertRaises(ValidationError):
checkin.action_on_board()
def test_right_action_on_board(self):
# arrange
self.create_common_scenario()
today = fields.date.today()
partner = self.env["res.partner"].create(
{
"name": "name1",
# "lastname": "lastname1",
"lastname2": "secondlastname",
"document_expedition_date": "2011-02-20",
"birthdate_date": "1995-12-10",
"gender": "male",
"document_type": "D",
"document_number": "30065089H",
}
)
reservation_vals = {
"checkin": today,
"checkout": today + datetime.timedelta(days=3),
"partner_id": partner.id,
"adults": 1,
"pms_property_id": self.property_test.id,
}
# action
reservation = self.env["pms.reservation"].create(reservation_vals)
checkin = self.env["pms.checkin.partner"].create(
{
"partner_id": partner.id,
"reservation_id": reservation.id,
}
)
checkin.action_on_board()
# arrange
self.assertEqual(reservation.state, "onboard", "reservation's state is wrong")
self.assertEqual(checkin.state, "onboard", "checkin's state is wrong")