def setUp(self): super(TestTopicDocumentEventHandler, self).setUp() self.name = 'topic-name-1' self.title = 'The first topic title' self.description = 'This is about the first topic' self.category = 'General' self.related_command = 'foo' self.related_topic = 'topic-name-2' self.topic_body = 'Hello World!' self.tags_dict = { self.name: { 'title': [self.title], 'description': [self.description], 'category': [self.category], 'related topic': [self.related_topic], 'related command': [self.related_command] } } with open(self.json_index, 'w') as f: json.dump(self.tags_dict, f, indent=4, sort_keys=True) self.cmd = TopicHelpCommand(self.session, self.name) self.doc_handler = TopicDocumentEventHandler(self.cmd)
class TestTopicDocumentEventHandler(TestTopicDocumentEventHandlerBase): def setUp(self): super(TestTopicDocumentEventHandler, self).setUp() self.name = 'topic-name-1' self.title = 'The first topic title' self.description = 'This is about the first topic' self.category = 'General' self.related_command = 'foo' self.related_topic = 'topic-name-2' self.topic_body = 'Hello World!' self.tags_dict = { self.name: { 'title': [self.title], 'description': [self.description], 'category': [self.category], 'related topic': [self.related_topic], 'related command': [self.related_command] } } with open(self.json_index, 'w') as f: json.dump(self.tags_dict, f, indent=4, sort_keys=True) self.cmd = TopicHelpCommand(self.session, self.name) self.doc_handler = TopicDocumentEventHandler(self.cmd) def test_breadcrumbs(self): self.doc_handler.doc_breadcrumbs(self.cmd) self.assertEqual(self.cmd.doc.getvalue().decode('utf-8'), '') self.cmd.doc.target = 'html' self.doc_handler.doc_breadcrumbs(self.cmd) self.assertEqual( '[ :ref:`aws <cli:aws>` . :ref:`topics <cli:aws help topics>` ]', self.cmd.doc.getvalue().decode('utf-8') ) def test_title(self): self.doc_handler.doc_title(self.cmd) title_contents = self.cmd.doc.getvalue().decode('utf-8') self.assertIn('.. _cli:aws help %s:' % self.name, title_contents) self.assertIn(self.title, title_contents) def test_description(self): lines = [ ':title: ' + self.title, ':description: ' + self.description, ':category:' + self.category, ':related command: ' + self.related_command, ':related topic: ' + self.related_topic, self.topic_body ] body = '\n'.join(lines) self.file_creator.create_file(self.name + '.rst', body) self.doc_handler.doc_description(self.cmd) contents = self.cmd.doc.getvalue().decode('utf-8') self.assertIn(self.topic_body, contents) self.assertNotIn(':title ' + self.title, contents) def test_description_no_tags(self): lines = [ self.topic_body ] body = '\n'.join(lines) self.file_creator.create_file(self.name + '.rst', body) self.doc_handler.doc_description(self.cmd) contents = self.cmd.doc.getvalue().decode('utf-8') self.assertIn(self.topic_body, contents) def test_description_tags_in_body(self): lines = [ ':title: ' + self.title, ':description: ' + self.description, ':related command: ' + self.related_command ] body_lines = [ ':related_topic: ' + self.related_topic, self.topic_body, ':foo: bar' ] body = '\n'.join(lines + body_lines) ref_body = '\n'.join(body_lines) self.file_creator.create_file(self.name + '.rst', body) self.doc_handler.doc_description(self.cmd) contents = self.cmd.doc.getvalue().decode('utf-8') self.assertIn(ref_body, contents)