def setUp(self): super(TestTopicListerDocumentEventHandler, self).setUp() self.descriptions = [ 'This describes the first topic', 'This describes the second topic', 'This describes the third topic' ] self.tags_dict = { 'topic-name-1': { 'title': ['The first topic title'], 'description': [self.descriptions[0]], 'category': ['General'] }, 'topic-name-2': { 'title': ['The second topic title'], 'description': [self.descriptions[1]], 'category': ['S3'] }, 'topic-name-3': { 'title': ['The third topic title'], 'description': [self.descriptions[2]], 'category': ['General'] } } with open(self.json_index, 'w') as f: json.dump(self.tags_dict, f, indent=4, sort_keys=True) self.cmd = TopicListerCommand(self.session) self.doc_handler = TopicListerDocumentEventHandler(self.cmd)
class TestTopicListerDocumentEventHandler(TestTopicDocumentEventHandlerBase): def setUp(self): super(TestTopicListerDocumentEventHandler, self).setUp() self.descriptions = [ 'This describes the first topic', 'This describes the second topic', 'This describes the third topic' ] self.tags_dict = { 'topic-name-1': { 'title': ['The first topic title'], 'description': [self.descriptions[0]], 'category': ['General'] }, 'topic-name-2': { 'title': ['The second topic title'], 'description': [self.descriptions[1]], 'category': ['S3'] }, 'topic-name-3': { 'title': ['The third topic title'], 'description': [self.descriptions[2]], 'category': ['General'] } } with open(self.json_index, 'w') as f: json.dump(self.tags_dict, f, indent=4, sort_keys=True) self.cmd = TopicListerCommand(self.session) self.doc_handler = TopicListerDocumentEventHandler(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>` ]', 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.cmd.name, title_contents) self.assertIn('AWS CLI Topic Guide', title_contents) def test_description(self): self.doc_handler.doc_description(self.cmd) self.assertIn( 'This is the AWS CLI Topic Guide', self.cmd.doc.getvalue().decode('utf-8') ) def test_subitems_start(self): ref_output = [ '-------\nGeneral\n-------', ('* topic-name-1: %s\n' '* topic-name-3: %s\n' % (self.descriptions[0], self.descriptions[2])), '--\nS3\n--', '* topic-name-2: %s\n' % self.descriptions[1] ] self.doc_handler.doc_subitems_start(self.cmd) contents = self.cmd.doc.getvalue().decode('utf-8') for line in ref_output: self.assertIn(line, contents) # Make sure the toctree is not in the man page self.assertNotIn('.. toctree::', contents) def test_subitems_start_html(self): self.cmd.doc.target = 'html' ref_output = [ '-------\nGeneral\n-------', ('* :ref:`topic-name-1 <cli:aws help topic-name-1>`: %s\n' '* :ref:`topic-name-3 <cli:aws help topic-name-3>`: %s\n' % (self.descriptions[0], self.descriptions[2])), '--\nS3\n--', ('* :ref:`topic-name-2 <cli:aws help topic-name-2>`: %s\n' % self.descriptions[1]) ] self.doc_handler.doc_subitems_start(self.cmd) contents = self.cmd.doc.getvalue().decode('utf-8') for line in ref_output: self.assertIn(line, contents) # Make sure the hidden toctree is in the html self.assertIn('.. toctree::', contents) self.assertIn(':hidden:', contents)