示例#1
0
 def test_creates_correct_path_to_examples_based_on_service_name(self):
     path = os.sep.join(
         [os.path.dirname(ibm_boto3.__file__), 'examples', 'myservice.rst'])
     path = os.path.realpath(path)
     with mock.patch('os.path.isfile') as isfile:
         isfile.return_value = False
         s = ServiceDocumenter('myservice', self.session)
         s.document_service()
         assert isfile.call_args_list[-1] == mock.call(path)
示例#2
0
 def test_injects_examples_when_found(self):
     examples_path = os.sep.join(
         [os.path.dirname(__file__), '..', 'data', 'examples'])
     service_documenter = ServiceDocumenter('myservice', self.session)
     service_documenter.EXAMPLE_PATH = examples_path
     contents = service_documenter.document_service().decode('utf-8')
     assert 'This is an example' in contents
     assert 'This is for another service' not in contents
示例#3
0
 def test_document_service_no_waiter(self):
     # Delete the resource model so that the resource is not documented
     # as it may try to look at the waiter model during documentation.
     os.remove(self.resource_model_file)
     os.remove(self.waiter_model_file)
     service_documenter = ServiceDocumenter('myservice', self.session)
     contents = service_documenter.document_service().decode('utf-8')
     assert 'Waiters' not in contents
 def test_document_service_no_paginators(self):
     # Delete the resource model so that the resource is not documented
     # as it may try to look at the paginator model during documentation.
     os.remove(self.resource_model_file)
     os.remove(self.paginator_model_file)
     service_documenter = ServiceDocumenter('myservice', self.session)
     contents = service_documenter.document_service().decode('utf-8')
     self.assertNotIn('Paginators', contents)
示例#5
0
class TestS3Customizations(BaseDocsFunctionalTests):
    def setUp(self):
        self.documenter = ServiceDocumenter(
            's3', session=Session(region_name='us-east-1'))
        self.generated_contents = self.documenter.document_service()
        self.generated_contents = self.generated_contents.decode('utf-8')

    def test_file_transfer_methods_are_documented(self):
        self.assert_contains_lines_in_order([
            '.. py:class:: S3.Client',
            '  *   :py:meth:`~S3.Client.download_file`',
            '  *   :py:meth:`~S3.Client.upload_file`',
            '  .. py:method:: download_file(', '  .. py:method:: upload_file('
        ], self.generated_contents)
示例#6
0
 def test_document_service_no_resource(self):
     os.remove(self.resource_model_file)
     service_documenter = ServiceDocumenter('myservice', self.session)
     contents = service_documenter.document_service().decode('utf-8')
     assert 'Service Resource' not in contents
示例#7
0
 def test_document_service(self):
     service_documenter = ServiceDocumenter('myservice', self.session)
     contents = service_documenter.document_service().decode('utf-8')
     lines = [
         '*********',
         'MyService',
         '*********',
         '.. contents:: Table of Contents',
         '   :depth: 2',
         '======',
         'Client',
         '======',
         '.. py:class:: MyService.Client',
         '  These are the available methods:',
         '  *   :py:meth:`~MyService.Client.sample_operation`',
         '    **Examples** ',
         '    Sample Description.',
         '    ::',
         '      response = client.sample_operation(',
         '==========',
         'Paginators',
         '==========',
         'The available paginators are:',
         '* :py:class:`MyService.Paginator.SampleOperation`',
         '.. py:class:: MyService.Paginator.SampleOperation',
         '  .. py:method:: paginate(**kwargs)',
         '=======',
         'Waiters',
         '=======',
         'The available waiters are:',
         '* :py:class:`MyService.Waiter.SampleOperationComplete`',
         '.. py:class:: MyService.Waiter.SampleOperationComplete',
         '  .. py:method:: wait(**kwargs)',
         '================',
         'Service Resource',
         '================',
         '.. py:class:: MyService.ServiceResource()',
         "  These are the resource's available actions:",
         '  *   :py:meth:`sample_operation()`',
         "  These are the resource's available sub-resources:",
         '  *   :py:meth:`Sample()`',
         "  These are the resource's available collections:",
         '  *   :py:attr:`samples`',
         '  .. py:method:: sample_operation(**kwargs)',
         '  .. py:method:: Sample(name)',
         '  .. py:attribute:: samples',
         '    .. py:method:: all()',
         '    .. py:method:: filter(**kwargs)',
         '    .. py:method:: limit(**kwargs)',
         '    .. py:method:: page_size(**kwargs)',
         '======',
         'Sample',
         '======',
         '.. py:class:: MyService.Sample(name)',
         "  These are the resource's available identifiers:",
         '  *   :py:attr:`name`',
         "  These are the resource's available attributes:",
         '  *   :py:attr:`bar`',
         '  *   :py:attr:`foo`',
         "  These are the resource's available actions:",
         '  *   :py:meth:`load()`',
         '  *   :py:meth:`operate()`',
         '  *   :py:meth:`reload()`',
         "  These are the resource's available waiters:",
         '  *   :py:meth:`wait_until_complete()`',
         '  .. py:attribute:: name',
         '  .. py:attribute:: bar',
         '  .. py:attribute:: foo',
         '  .. py:method:: load()',
         '  .. py:method:: operate(**kwargs)',
         '  .. py:method:: reload()',
         '  .. py:method:: wait_until_complete(**kwargs)',
     ]
     self.assert_contains_lines_in_order(lines, contents)