def test_update_snmp_community_raises_SystemExit_when_no_vlans_found(
            self, mock_discovery_session, mock_session):
        mock_discovery_session.return_value = self.session

        self.session.auto_discover_vlan.return_value = ['123']
        self.session.auto_discover_ifindex.return_value = []

        with self.assertRaises(SystemExit):
            disco_config.update_snmp_community(self.session, 'hostname',
                                               self.switch_config, 'community1')

        mock_session.assert_called_with(DestHost='hostname',
                                        Version=2,
                                        Community='community1@123')
    def test_update_snmp_community_raises_SystemExit_for_ifindex_error(
            self, mock_discovery_session, mock_session):
        mock_discovery_session.return_value = self.session

        self.session.auto_discover_vlan.return_value = ['123']
        self.session.auto_discover_ifindex.side_effect = discovery.Error(
            'whoops')

        with self.assertRaises(SystemExit):
            disco_config.update_snmp_community(self.session, 'hostname',
                                               self.switch_config, 'community1')

        mock_session.assert_called_with(DestHost='hostname',
                                        Version=2,
                                        Community='community1@123')
    def test_update_snmp_community(self, mock_discovery_session, mock_session):
        mock_discovery_session.return_value = self.session

        self.session.auto_discover_vlan.return_value = ['123']
        self.session.auto_discover_ifindex.return_value = [('uplink', '10')]

        actual = disco_config.update_snmp_community(
            self.session, 'hostname', self.switch_config, 'community1')

        self.assertEqual('community1@123', actual)
        mock_session.assert_called_with(DestHost='hostname',
                                        Version=2,
                                        Community='community1@123')