Пример #1
0
    def test_telnet_login_without_password(self):         \
            # pylint: disable=invalid-name
        """Test that login is not called without password or pub_key."""
        telnet = mock.MagicMock()
        telnet_mock = mock.patch('telnetlib.Telnet', return_value=telnet)
        telnet_mock.start()
        self.addCleanup(telnet_mock.stop)

        conf_dict = {
            CONF_PLATFORM: 'asuswrt',
            CONF_PROTOCOL: 'telnet',
            CONF_HOST: 'fake_host',
            CONF_USERNAME: '******',
        }

        with self.assertRaises(vol.Invalid):
            conf_dict = PLATFORM_SCHEMA(conf_dict)

        update_mock = mock.patch(
            'homeassistant.components.device_tracker.asuswrt.'
            'AsusWrtDeviceScanner.get_asuswrt_data')
        update_mock.start()
        self.addCleanup(update_mock.stop)

        with assert_setup_component(0, DOMAIN):
            assert setup_component(self.hass, DOMAIN, {DOMAIN: conf_dict})
        telnet.login.assert_not_called()
Пример #2
0
 def test_telnet_login_with_password(self):
     """Test that login is done with password when configured to."""
     telnet = mock.MagicMock()
     telnet_mock = mock.patch('telnetlib.Telnet', return_value=telnet)
     telnet_mock.start()
     self.addCleanup(telnet_mock.stop)
     conf_dict = PLATFORM_SCHEMA({
         CONF_PLATFORM: 'asuswrt',
         CONF_PROTOCOL: 'telnet',
         CONF_HOST: 'fake_host',
         CONF_USERNAME: '******',
         CONF_PASSWORD: '******'
     })
     update_mock = mock.patch(
         'homeassistant.components.device_tracker.asuswrt.'
         'AsusWrtDeviceScanner.get_asuswrt_data')
     update_mock.start()
     self.addCleanup(update_mock.stop)
     asuswrt = device_tracker.asuswrt.AsusWrtDeviceScanner(conf_dict)
     asuswrt.connection.run_command('ls')
     self.assertEqual(telnet.read_until.call_count, 4)
     self.assertEqual(telnet.write.call_count, 3)
     self.assertEqual(telnet.read_until.call_args_list[0],
                      mock.call(b'login: '******'fake_user\n'))
     self.assertEqual(telnet.read_until.call_args_list[1],
                      mock.call(b'Password: '******'fake_pass\n'))
     self.assertEqual(telnet.read_until.call_args_list[2], mock.call(b'#'))
Пример #3
0
    def test_ssh_login_without_password_or_pubkey(self):          \
            # pylint: disable=invalid-name
        """Test that login is not called without password or pub_key."""
        ssh = mock.MagicMock()
        ssh_mock = mock.patch('pexpect.pxssh.pxssh', return_value=ssh)
        ssh_mock.start()
        self.addCleanup(ssh_mock.stop)

        conf_dict = {
            CONF_PLATFORM: 'asuswrt',
            CONF_HOST: 'fake_host',
            CONF_USERNAME: '******',
        }

        with self.assertRaises(vol.Invalid):
            conf_dict = PLATFORM_SCHEMA(conf_dict)

        update_mock = mock.patch(
            'homeassistant.components.device_tracker.asuswrt.'
            'AsusWrtDeviceScanner.get_asuswrt_data')
        update_mock.start()
        self.addCleanup(update_mock.stop)

        self.assertFalse(
            _setup_component(self.hass, DOMAIN, {DOMAIN: conf_dict}))
        ssh.login.assert_not_called()
Пример #4
0
 def test_ssh_login_with_password(self):
     """Test that login is done with password when configured to."""
     ssh = mock.MagicMock()
     ssh_mock = mock.patch('pexpect.pxssh.pxssh', return_value=ssh)
     ssh_mock.start()
     self.addCleanup(ssh_mock.stop)
     conf_dict = PLATFORM_SCHEMA({
         CONF_PLATFORM: 'asuswrt',
         CONF_HOST: 'fake_host',
         CONF_USERNAME: '******',
         CONF_PASSWORD: '******'
     })
     update_mock = mock.patch(
         'homeassistant.components.device_tracker.asuswrt.'
         'AsusWrtDeviceScanner.get_asuswrt_data')
     update_mock.start()
     self.addCleanup(update_mock.stop)
     asuswrt = device_tracker.asuswrt.AsusWrtDeviceScanner(conf_dict)
     asuswrt.connection.run_command('ls')
     self.assertEqual(ssh.login.call_count, 1)
     self.assertEqual(
         ssh.login.call_args,
         mock.call('fake_host',
                   'fake_user',
                   quiet=False,
                   password='******',
                   port=22))
 def test_ssh_login_with_pub_key(self):
     """Test that login is done with pub_key when configured to."""
     ssh = mock.MagicMock()
     ssh_mock = mock.patch('pexpect.pxssh.pxssh', return_value=ssh)
     ssh_mock.start()
     self.addCleanup(ssh_mock.stop)
     conf_dict = PLATFORM_SCHEMA({
         CONF_PLATFORM: 'asuswrt',
         CONF_HOST: 'fake_host',
         CONF_USERNAME: '******',
         CONF_PUB_KEY: FAKEFILE
     })
     update_mock = mock.patch(
         'homeassistant.components.device_tracker.asuswrt.'
         'AsusWrtDeviceScanner.get_asuswrt_data')
     update_mock.start()
     self.addCleanup(update_mock.stop)
     asuswrt = device_tracker.asuswrt.AsusWrtDeviceScanner(conf_dict)
     asuswrt.connection.get_result()
     self.assertEqual(ssh.login.call_count, 1)
     self.assertEqual(
         ssh.login.call_args,
         mock.call('fake_host', 'fake_user',
                   ssh_key=FAKEFILE, port=22)
     )