from graphql.error import GraphQLLocatedError

from core.tests.base_test import SkillboxTestCase

TOPIC_QUERY = """
query TopicQuery($slug: String!) {
  topic(slug: $slug) {
    __typename
    ...on TopicNode {
      title
    }
    ...on NotFound {
      reason
    }
  }
}
"""


class ContentBlockTestCase(SkillboxTestCase):
    def setUp(self) -> None:
        self.createDefault()
        self.client = self.get_client()

    def test_topic(self):
        slug = "non-existing"
        result = self.client.execute(TOPIC_QUERY, variables={
            "slug": slug
        })
        self.assertIsNone(result.errors)
        topic = result.data.get('topic')
        self.assertEqual(topic.get('__typename'), 'NotFound')
        self.assertEqual(topic.get('reason'), 'Not Found')
