~gmb/maas/dont-powercheck-broken-nodes-bug-1402243

« back to all changes in this revision

Viewing changes to src/provisioningserver/drivers/hardware/tests/test_seamicro.py

  • Committer: MaaS Lander
  • Author(s): Andres Rodriguez, Blake Rouse
  • Date: 2014-12-06 17:18:49 UTC
  • mfrom: (3402.1.3 maas)
  • Revision ID: maas_lander-20141206171849-ab1q3fm6na51gc9o
[r=andreserl][bug=1384424][author=andreserl] Support the ability to query the power status of sm15k using RESTAPI v2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
    find_seamicro15k_servers,
35
35
    power_control_seamicro15k_v09,
36
36
    power_control_seamicro15k_v2,
 
37
    power_query_seamicro15k_v2,
37
38
    POWER_STATUS,
38
39
    probe_seamicro15k_and_enlist,
39
40
    SeaMicroAPIV09,
461
462
 
462
463
        power_control_seamicro15k_v2(ip, username, password, '0', 'on')
463
464
        mock_power_on.assert_called()
 
465
 
 
466
    def test_power_control_seamicro15k_v2_raises_error_when_api_None(self):
 
467
        ip = factory.make_ipv4_address()
 
468
        username = factory.make_string()
 
469
        password = factory.make_string()
 
470
 
 
471
        mock_get_api = self.patch(
 
472
            seamicro,
 
473
            'get_seamicro15k_api')
 
474
        mock_get_api.return_value = None
 
475
 
 
476
        self.assertRaises(
 
477
            SeaMicroError,
 
478
            power_control_seamicro15k_v2, ip, username, password, '0', 'on')
 
479
 
 
480
    def test_power_query_seamicro15k_v2_power_on(self):
 
481
        ip = factory.make_ipv4_address()
 
482
        username = factory.make_string()
 
483
        password = factory.make_string()
 
484
 
 
485
        fake_server = FakeServer('0/0')
 
486
        self.patch(fake_server, 'active', True)
 
487
        fake_client = FakeSeaMicroClient()
 
488
        fake_client.servers = FakeSeaMicroServerManager()
 
489
        fake_client.servers.servers.append(fake_server)
 
490
 
 
491
        mock_get_api = self.patch(
 
492
            seamicro,
 
493
            'get_seamicro15k_api')
 
494
        mock_get_api.return_value = fake_client
 
495
 
 
496
        self.assertEqual(
 
497
            "on",
 
498
            power_query_seamicro15k_v2(ip, username, password, '0'))
 
499
 
 
500
    def test_power_query_seamicro15k_v2_power_off(self):
 
501
        ip = factory.make_ipv4_address()
 
502
        username = factory.make_string()
 
503
        password = factory.make_string()
 
504
 
 
505
        fake_server = FakeServer('0/0')
 
506
        self.patch(fake_server, 'active', False)
 
507
        fake_client = FakeSeaMicroClient()
 
508
        fake_client.servers = FakeSeaMicroServerManager()
 
509
        fake_client.servers.servers.append(fake_server)
 
510
 
 
511
        mock_get_api = self.patch(
 
512
            seamicro,
 
513
            'get_seamicro15k_api')
 
514
        mock_get_api.return_value = fake_client
 
515
 
 
516
        self.assertEqual(
 
517
            "off",
 
518
            power_query_seamicro15k_v2(ip, username, password, '0'))
 
519
 
 
520
    def test_power_query_seamicro15k_v2_raises_error_when_api_None(self):
 
521
        ip = factory.make_ipv4_address()
 
522
        username = factory.make_string()
 
523
        password = factory.make_string()
 
524
 
 
525
        mock_get_api = self.patch(
 
526
            seamicro,
 
527
            'get_seamicro15k_api')
 
528
        mock_get_api.return_value = None
 
529
 
 
530
        self.assertRaises(
 
531
            SeaMicroError,
 
532
            power_query_seamicro15k_v2, ip, username, password, '0')