docstr: ReportSchedule API: Test info security
docstr_tok: ["ReportSchedule","API",":","Test","info","security"]
code: def test_info_security_report(self):
      """
      ReportSchedule API: Test info security
      """
      self.login(username="admin")
      params = {"keys": ["permissions"]}
      uri = f"api/v1/report/_info?q={prison.dumps(params)}"
      rv = self.get_assert_metric(uri, "info")
      data = json.loads(rv.data.decode("utf-8"))
      assert rv.status_code == 200
      assert "can_read" in data["permissions"]
      assert "can_write" in data["permissions"]
      assert len(data["permissions"]) == 2
  
imports: from datetime import datetime
  import json
  import pytz
  import pytest
  import prison
  from parameterized import parameterized
  from sqlalchemy.sql import func
  from superset import db, security_manager
  from superset.models.core import Database
  from superset.models.slice import Slice
  from superset.models.dashboard import Dashboard
  from superset.reports.models import ReportSchedule, ReportCreationMethod, ReportRecipients, ReportExecutionLog, ReportScheduleType, ReportRecipientType, ReportState
  from superset.utils.database import get_example_database
  from tests.integration_tests.base_tests import SupersetTestCase
  from tests.integration_tests.conftest import with_feature_flags
  from tests.integration_tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices, load_birth_names_data
  from tests.integration_tests.reports.utils import insert_report_schedule
label_desc: Use image node_id 10 for calling the TestReportSchedulesApi obj's underlying member method code with example usage: obj.test_info_security_report() without return types