[WIP][MIG][11.0] hotel_calendar

This commit is contained in:
QS5ELkMu
2018-09-14 01:41:53 +02:00
parent 8d85e743ea
commit 784cd06b1f
10 changed files with 114 additions and 110 deletions

View File

@@ -37,7 +37,7 @@ class TestManagementCalendar(TestHotelCalendar):
now_utc_dt = date_utils.now()
adv_utc_dt = now_utc_dt + timedelta(days=15)
vrooms = (self.hotel_vroom_budget, self.hotel_vroom_special)
room_types = (self.hotel_room_type_budget, self.hotel_room_type_special)
hotel_cal_mngt_obj = self.env['hotel.calendar.management'].sudo(
self.user_hotel_manager)
@@ -48,14 +48,14 @@ class TestManagementCalendar(TestHotelCalendar):
self.parity_pricelist_id,
self.parity_restrictions_id,
True)
for vroom in vrooms:
for room_type in room_types:
for k_pr, v_pr in hcal_data['prices'].iteritems():
if k_pr == vroom.id: # Only Check Test Cases
if k_pr == room_type.id: # Only Check Test Cases
for k_info, v_info in enumerate(v_pr):
if k_info >= len(self.prices_tmp[vroom.id]):
if k_info >= len(self.prices_tmp[room_type.id]):
break
self.assertEqual(v_info['price'],
self.prices_tmp[vroom.id][k_info],
self.prices_tmp[room_type.id][k_info],
"Hotel Calendar Management Prices \
doesn't match!")
@@ -63,8 +63,8 @@ class TestManagementCalendar(TestHotelCalendar):
prices_obj = self.env['product.pricelist.item'].sudo(
self.user_hotel_manager)
prod_tmpl_ids = (
self.hotel_vroom_budget.product_id.product_tmpl_id.id,
self.hotel_vroom_special.product_id.product_tmpl_id.id
self.hotel_room_type_budget.product_id.product_tmpl_id.id,
self.hotel_room_type_special.product_id.product_tmpl_id.id
)
pr_ids = prices_obj.search([
('pricelist_id', '=', self.parity_pricelist_id),
@@ -84,7 +84,7 @@ class TestManagementCalendar(TestHotelCalendar):
def test_calendar_restrictions(self):
now_utc_dt = date_utils.now()
adv_utc_dt = now_utc_dt + timedelta(days=15)
vrooms = (self.hotel_vroom_budget, self.hotel_vroom_special)
room_types = (self.hotel_room_type_budget, self.hotel_room_type_special)
hotel_cal_mngt_obj = self.env['hotel.calendar.management'].sudo(
self.user_hotel_manager)
@@ -95,16 +95,16 @@ class TestManagementCalendar(TestHotelCalendar):
self.parity_pricelist_id,
self.parity_restrictions_id,
True)
for vroom in vrooms:
for room_type in room_types:
for k_pr, v_pr in hcal_data['restrictions'].iteritems():
if k_pr == vroom.id: # Only Check Test Cases
if k_pr == room_type.id: # Only Check Test Cases
for k_info, v_info in enumerate(v_pr):
rest_items = self.restrictions_min_stay_tmp[vroom.id]
rest_items = self.restrictions_min_stay_tmp[room_type.id]
if k_info >= len(rest_items):
break
self.assertEqual(
v_info['min_stay'],
self.restrictions_min_stay_tmp[vroom.id][k_info],
self.restrictions_min_stay_tmp[room_type.id][k_info],
"Hotel Calendar Management Restrictions \
doesn't match!")
@@ -114,8 +114,8 @@ class TestManagementCalendar(TestHotelCalendar):
rest_ids = rest_it_obj.search([
('applied_on', '=', '0_room_type'),
('restriction_id', '=', self.parity_restrictions_id),
('room_type_id', 'in', (self.hotel_vroom_budget.id,
self.hotel_vroom_special.id)),
('room_type_id', 'in', (self.hotel_room_type_budget.id,
self.hotel_room_type_special.id)),
])
rest_ids.sudo(self.user_hotel_manager).unlink()
@@ -133,11 +133,11 @@ class TestManagementCalendar(TestHotelCalendar):
def test_calendar_availability(self):
now_utc_dt = date_utils.now()
adv_utc_dt = now_utc_dt + timedelta(days=6)
vrooms = (self.hotel_vroom_budget, self.hotel_vroom_special)
room_types = (self.hotel_room_type_budget, self.hotel_room_type_special)
hotel_cal_mngt_obj = self.env['hotel.calendar.management'].sudo(
self.user_hotel_manager)
vroom_avail_obj = self.env['hotel.room.type.availability'].sudo(
room_type_avail_obj = self.env['hotel.room.type.availability'].sudo(
self.user_hotel_manager)
hcal_data = hotel_cal_mngt_obj.get_hcalendar_all_data(
@@ -146,22 +146,22 @@ class TestManagementCalendar(TestHotelCalendar):
self.parity_pricelist_id,
self.parity_restrictions_id,
True)
for vroom in vrooms:
for room_type in room_types:
for k_pr, v_pr in hcal_data['availability'].iteritems():
if k_pr == vroom.id: # Only Check Test Cases
if k_pr == room_type.id: # Only Check Test Cases
for k_info, v_info in enumerate(v_pr):
if k_info >= len(self.avails_tmp[vroom.id]):
if k_info >= len(self.avails_tmp[room_type.id]):
break
self.assertEqual(
v_info['avail'],
self.avails_tmp[vroom.id][k_info],
self.avails_tmp[room_type.id][k_info],
"Hotel Calendar Management Availability \
doesn't match!")
# CHANGE AVAIL
avail_ids = vroom_avail_obj.search([
('room_type_id', 'in', (self.hotel_vroom_budget.id,
self.hotel_vroom_special.id)),
avail_ids = room_type_avail_obj.search([
('room_type_id', 'in', (self.hotel_room_type_budget.id,
self.hotel_room_type_special.id)),
])
for avail_id in avail_ids:
avail_id.sudo(self.user_hotel_manager).write({'avail': 1})
@@ -171,9 +171,9 @@ class TestManagementCalendar(TestHotelCalendar):
self.parity_pricelist_id,
self.parity_restrictions_id,
True)
for vroom in vrooms:
for room_type in room_types:
for k_pr, v_pr in hcal_data['availability'].iteritems():
if k_pr == vroom.id: # Only Check Test Cases
if k_pr == room_type.id: # Only Check Test Cases
for k_info, v_info in enumerate(v_pr):
self.assertEqual(
v_info['avail'],
@@ -182,9 +182,9 @@ class TestManagementCalendar(TestHotelCalendar):
doesn't match!")
# REMOVE AVAIL
avail_ids = vroom_avail_obj.search([
('room_type_id', 'in', (self.hotel_vroom_budget.id,
self.hotel_vroom_special.id)),
avail_ids = room_type_avail_obj.search([
('room_type_id', 'in', (self.hotel_room_type_budget.id,
self.hotel_room_type_special.id)),
])
avail_ids.sudo(self.user_hotel_manager).unlink()
@@ -194,20 +194,20 @@ class TestManagementCalendar(TestHotelCalendar):
self.parity_pricelist_id,
self.parity_restrictions_id,
True)
for vroom in vrooms:
for room_type in room_types:
for k_pr, v_pr in hcal_data['availability'].iteritems():
if k_pr == vroom.id: # Only Check Test Cases
if k_pr == room_type.id: # Only Check Test Cases
for k_info, v_info in enumerate(v_pr):
self.assertEqual(
v_info['avail'],
vroom.max_real_rooms,
room_type.max_real_rooms,
"Hotel Calendar Management Availability \
doesn't match!")
def test_save_changes(self):
now_utc_dt = date_utils.now()
adv_utc_dt = now_utc_dt + timedelta(days=3)
vrooms = (self.hotel_vroom_budget,)
room_types = (self.hotel_room_type_budget,)
hotel_cal_mngt_obj = self.env['hotel.calendar.management'].sudo(
self.user_hotel_manager)
@@ -217,7 +217,7 @@ class TestManagementCalendar(TestHotelCalendar):
cprices = {}
for k_item, v_item in enumerate(prices):
ndate_utc_dt = now_utc_dt + timedelta(days=k_item)
cprices.setdefault(self.hotel_vroom_budget.id, []).append({
cprices.setdefault(self.hotel_room_type_budget.id, []).append({
'date': ndate_utc_dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
'price': v_item
})
@@ -235,7 +235,7 @@ class TestManagementCalendar(TestHotelCalendar):
crestrictions = {}
for i in range(0, 4):
ndate_utc_dt = now_utc_dt + timedelta(days=i)
crestrictions.setdefault(self.hotel_vroom_budget.id, []).append({
crestrictions.setdefault(self.hotel_room_type_budget.id, []).append({
'date': ndate_utc_dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
'closed_arrival': restrictions['closed_arrival'][i],
'max_stay': restrictions['max_stay'][i],
@@ -252,7 +252,7 @@ class TestManagementCalendar(TestHotelCalendar):
for k_item, v_item in enumerate(avails):
ndate_utc_dt = now_utc_dt + timedelta(days=k_item)
ndate_dt = date_utils.dt_as_timezone(ndate_utc_dt, self.tz_hotel)
cavails.setdefault(self.hotel_vroom_budget.id, []).append({
cavails.setdefault(self.hotel_room_type_budget.id, []).append({
'date': ndate_dt.strftime(DEFAULT_SERVER_DATE_FORMAT),
'avail': v_item,
'no_ota': False,
@@ -274,16 +274,16 @@ class TestManagementCalendar(TestHotelCalendar):
self.parity_restrictions_id,
True)
for vroom in vrooms:
for room_type in room_types:
for k_pr, v_pr in hcal_data['availability'].iteritems():
if k_pr == vroom.id: # Only Check Test Cases
if k_pr == room_type.id: # Only Check Test Cases
for k_info, v_info in enumerate(v_pr):
self.assertEqual(v_info['avail'],
avails[k_info],
"Hotel Calendar Management \
Availability doesn't match!")
for k_pr, v_pr in hcal_data['restrictions'].iteritems():
if k_pr == vroom.id: # Only Check Test Cases
if k_pr == room_type.id: # Only Check Test Cases
for k_info, v_info in enumerate(v_pr):
self.assertEqual(v_info['min_stay'],
restrictions['min_stay'][k_info],
@@ -319,7 +319,7 @@ class TestManagementCalendar(TestHotelCalendar):
"Hotel Calendar Management Restrictions \
doesn't match!")
for k_pr, v_pr in hcal_data['prices'].iteritems():
if k_pr == vroom.id: # Only Check Test Cases
if k_pr == room_type.id: # Only Check Test Cases
for k_info, v_info in enumerate(v_pr):
self.assertEqual(v_info['price'],
prices[k_info], "Hotel Calendar \
@@ -328,7 +328,7 @@ class TestManagementCalendar(TestHotelCalendar):
def test_calendar_reservations(self):
now_utc_dt = date_utils.now()
adv_utc_dt = now_utc_dt + timedelta(days=15)
vrooms = (self.hotel_vroom_budget,)
room_types = (self.hotel_room_type_budget,)
hotel_cal_mngt_obj = self.env['hotel.calendar.management'].sudo(
self.user_hotel_manager)
@@ -352,9 +352,9 @@ class TestManagementCalendar(TestHotelCalendar):
True)
avail_end_utc_dt = reserv_end_utc_dt - timedelta(days=1)
for vroom in vrooms:
for room_type in room_types:
for k_pr, v_pr in hcal_data['count_reservations'].iteritems():
if k_pr == vroom.id: # Only Check Test Cases
if k_pr == room_type.id: # Only Check Test Cases
for k_info, v_info in enumerate(v_pr):
ndate = date_utils.get_datetime(v_info['date'])
if date_utils.date_in(ndate,

View File

@@ -30,12 +30,12 @@ class TestProductPricelist(TestHotelCalendar):
now_utc_dt = date_utils.now()
now_utc_str = now_utc_dt.strftime(DEFAULT_SERVER_DATE_FORMAT)
vroom_tmpl_id = self.hotel_vroom_special.product_id.product_tmpl_id
room_type_tmpl_id = self.hotel_room_type_special.product_id.product_tmpl_id
pritem_obj = self.env['product.pricelist.item']
plitem = pritem_obj.search([
('pricelist_id', '=', self.parity_pricelist_id),
('product_tmpl_id', '=', vroom_tmpl_id.id),
('product_tmpl_id', '=', room_type_tmpl_id.id),
('date_start', '=', now_utc_str),
('date_end', '=', now_utc_str),
('applied_on', '=', '1_product'),
@@ -44,13 +44,13 @@ class TestProductPricelist(TestHotelCalendar):
old_price = plitem.fixed_price
self.pricelist_1.update_price(
self.hotel_vroom_special.id,
self.hotel_room_type_special.id,
now_utc_str,
999.9)
plitem = pritem_obj.search([
('pricelist_id', '=', self.parity_pricelist_id),
('product_tmpl_id', '=', vroom_tmpl_id.id),
('product_tmpl_id', '=', room_type_tmpl_id.id),
('date_start', '=', now_utc_str),
('date_end', '=', now_utc_str),
('applied_on', '=', '1_product'),

View File

@@ -46,11 +46,11 @@ class TestReservationsCalendar(TestHotelCalendar):
# Check Pricelist Integrity
for k_pr, v_pr in hcal_data['pricelist'].iteritems():
for vroom_pr in v_pr:
for room_type_pr in v_pr:
# Only Check Test Cases
if vroom_pr['room'] in self.prices_tmp.keys():
if room_type_pr['room'] in self.prices_tmp.keys():
sorted_dates = sorted(
vroom_pr['days'].keys(),
room_type_pr['days'].keys(),
key=lambda x: datetime.datetime.strptime(x, '%d/%m/%Y')
)
init_date_dt = datetime.datetime.strptime(
@@ -67,11 +67,11 @@ class TestReservationsCalendar(TestHotelCalendar):
"Hotel Calendar don't end in \
the correct date!")
vroom_prices = self.prices_tmp[vroom_pr['room']]
for k_price, v_price in enumerate(vroom_prices):
room_type_prices = self.prices_tmp[room_type_pr['room']]
for k_price, v_price in enumerate(room_type_prices):
self.assertEqual(
v_price,
vroom_pr['days'][sorted_dates[k_price+1]],
room_type_pr['days'][sorted_dates[k_price+1]],
"Hotel Calendar Pricelist doesn't match!")
# Check Pricelist Integrity after unlink
@@ -80,8 +80,8 @@ class TestReservationsCalendar(TestHotelCalendar):
pr_ids = pricelist_item_obj.search([
('pricelist_id', '=', self.parity_pricelist_id),
('product_tmpl_id', 'in', (
self.hotel_vroom_budget.product_id.product_tmpl_id.id,
self.hotel_vroom_special.product_id.product_tmpl_id.id)),
self.hotel_room_type_budget.product_id.product_tmpl_id.id,
self.hotel_room_type_special.product_id.product_tmpl_id.id)),
])
pr_ids.sudo(self.user_hotel_manager).unlink()
reserv_obj = self.env['hotel.reservation'].sudo(
@@ -89,14 +89,14 @@ class TestReservationsCalendar(TestHotelCalendar):
hcal_data = reserv_obj.get_hcalendar_all_data(
now_utc_dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
adv_utc_dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT))
vrooms = (self.hotel_vroom_budget, self.hotel_vroom_special)
for vroom in vrooms:
room_types = (self.hotel_room_type_budget, self.hotel_room_type_special)
for room_type in room_types:
for k_pr, v_pr in hcal_data['pricelist'].iteritems():
for vroom_pr in v_pr:
if vroom_pr['room'] == vroom.id: # Only Check Test Cases
for room_type_pr in v_pr:
if room_type_pr['room'] == room_type.id: # Only Check Test Cases
self.assertEqual(
vroom.list_price,
vroom_pr['days'][sorted_dates[k_price+1]],
room_type.list_price,
room_type_pr['days'][sorted_dates[k_price+1]],
"Hotel Calendar Pricelist doesn't \
match after remove!")