|
@@ 634-658 (lines=25) @@
|
| 631 |
|
self.scheduler.get_maintenance.assert_called_once_with('1234') |
| 632 |
|
self.scheduler.update.assert_not_called() |
| 633 |
|
|
| 634 |
|
def test_extend_case_6(self): |
| 635 |
|
"""Test maintenance already finished.""" |
| 636 |
|
start1 = datetime.now(pytz.utc) - timedelta(hours=3) |
| 637 |
|
end1 = start1 + timedelta(hours=2) |
| 638 |
|
self.scheduler.get_maintenance.return_value = MW.construct( |
| 639 |
|
id = '1234', |
| 640 |
|
start = start1.replace(microsecond=0), |
| 641 |
|
end = end1.replace(microsecond=0), |
| 642 |
|
switches = [ |
| 643 |
|
'00:00:00:00:00:00:12:23' |
| 644 |
|
], |
| 645 |
|
status = 'finished', |
| 646 |
|
) |
| 647 |
|
url = f'{self.server_name_url}/1234/extend' |
| 648 |
|
payload = { |
| 649 |
|
'minutes': 240 |
| 650 |
|
} |
| 651 |
|
response = self.api.patch(url, data=json.dumps(payload), |
| 652 |
|
content_type='application/json') |
| 653 |
|
self.assertEqual(response.status_code, 400) |
| 654 |
|
current_data = json.loads(response.data) |
| 655 |
|
self.assertEqual(current_data['description'], |
| 656 |
|
'Maintenance window 1234 has already finished') |
| 657 |
|
self.scheduler.get_maintenance.assert_called_once_with('1234') |
| 658 |
|
self.scheduler.update.assert_not_called() |
| 659 |
|
|
| 660 |
|
def test_extend_case_7(self): |
| 661 |
|
"""Test no maintenace found.""" |
|
@@ 608-632 (lines=25) @@
|
| 605 |
|
'Minutes of extension must be integer') |
| 606 |
|
self.scheduler.update.assert_not_called() |
| 607 |
|
|
| 608 |
|
def test_extend_case_5(self): |
| 609 |
|
"""Test maintenance did not start.""" |
| 610 |
|
start1 = datetime.now(pytz.utc) + timedelta(hours=3) |
| 611 |
|
end1 = start1 + timedelta(hours=4) |
| 612 |
|
self.scheduler.get_maintenance.return_value = MW.construct( |
| 613 |
|
id = '1234', |
| 614 |
|
start = start1.replace(microsecond=0), |
| 615 |
|
end = end1.replace(microsecond=0), |
| 616 |
|
switches = [ |
| 617 |
|
'00:00:00:00:00:00:12:23' |
| 618 |
|
], |
| 619 |
|
status = 'pending', |
| 620 |
|
) |
| 621 |
|
url = f'{self.server_name_url}/1234/extend' |
| 622 |
|
payload = { |
| 623 |
|
'minutes': 240 |
| 624 |
|
} |
| 625 |
|
response = self.api.patch(url, data=json.dumps(payload), |
| 626 |
|
content_type='application/json') |
| 627 |
|
self.assertEqual(response.status_code, 400) |
| 628 |
|
current_data = json.loads(response.data) |
| 629 |
|
self.assertEqual(current_data['description'], |
| 630 |
|
'Maintenance window 1234 has not yet started') |
| 631 |
|
self.scheduler.get_maintenance.assert_called_once_with('1234') |
| 632 |
|
self.scheduler.update.assert_not_called() |
| 633 |
|
|
| 634 |
|
def test_extend_case_6(self): |
| 635 |
|
"""Test maintenance already finished.""" |
|
@@ 379-403 (lines=25) @@
|
| 376 |
|
) |
| 377 |
|
) |
| 378 |
|
|
| 379 |
|
def test_update_mw_case_4(self): |
| 380 |
|
"""Test successful update.""" |
| 381 |
|
start1 = datetime.now(pytz.utc) + timedelta(days=1) |
| 382 |
|
end1 = start1 + timedelta(hours=6) |
| 383 |
|
self.scheduler.get_maintenance.return_value = MW.construct( |
| 384 |
|
id = '1234', |
| 385 |
|
start = start1.replace(microsecond=0), |
| 386 |
|
end = end1.replace(microsecond=0), |
| 387 |
|
switches = [ |
| 388 |
|
'00:00:00:00:00:00:12:23' |
| 389 |
|
], |
| 390 |
|
) |
| 391 |
|
start_new = datetime.now(pytz.utc) - timedelta(days=1, hours=3) |
| 392 |
|
payload = { |
| 393 |
|
"start": start_new.strftime(TIME_FMT), |
| 394 |
|
} |
| 395 |
|
url = f'{self.server_name_url}/1234' |
| 396 |
|
response = self.api.patch(url, data=json.dumps(payload), |
| 397 |
|
content_type='application/json') |
| 398 |
|
current_data = json.loads(response.data) |
| 399 |
|
self.assertEqual(response.status_code, 400) |
| 400 |
|
self.assertEqual(current_data['description'], |
| 401 |
|
'Start in the past not allowed') |
| 402 |
|
self.scheduler.get_maintenance.assert_called_once_with('1234') |
| 403 |
|
self.scheduler.update.assert_not_called() |
| 404 |
|
|
| 405 |
|
def test_update_mw_case_5(self): |
| 406 |
|
"""Test successful update.""" |