예제 #1
0
 def _mock_backend(self):
     # type: () -> typing.Tuple[PythonTypesBackend, typing.List]
     backend = PythonTypesBackend(
         target_folder_path='output',
         args=['-r', 'dropbox.dropbox.Dropbox.{ns}_{route}'])
     emitted = _mock_emit(backend)
     return backend, emitted
예제 #2
0
    def test__generate_types_single_ns(self):
        # type: () -> None
        api, _ = self._get_api()
        backend = TSDClientBackend(target_folder_path="output",
                                   args=['files', 'files'])
        emitted = _mock_emit(backend)
        backend._generate_routes(api, 0, 0)
        result = "".join(emitted)
        expected = textwrap.dedent('''\

            /**
             * getMetadata()
             *
             * When an error occurs, the route rejects the promise with type Error<void>.
             * @param arg The request parameters.
             */
            public filesGetMetadata(arg: void): Promise<void>;

            /**
             * getMetadataV2()
             *
             * When an error occurs, the route rejects the promise with type Error<void>.
             * @param arg The request parameters.
             */
            public filesGetMetadataV2(arg: void): Promise<number>;
            ''')
        self.assertEqual(result, expected)
예제 #3
0
    def _evaluate_namespace(self, ns):
        # type: (ApiNamespace) -> typing.Text
        backend = _make_backend()
        emitted = _mock_emit(backend)
        backend._generate_base_namespace_module(ns)

        result = "".join(emitted)
        return result
예제 #4
0
    def _evaluate_namespace(self, ns):
        # type: (ApiNamespace) -> typing.Text
        backend = _make_backend()
        emitted = _mock_emit(backend)
        backend._generate_base_namespace_module(ns)

        result = "".join(emitted)
        return result
예제 #5
0
    def _evaluate_namespace(self, ns):
        # type: (ApiNamespace) -> typing.Text

        backend = PythonClientBackend(
            target_folder_path='output',
            args=['-m', 'files', '-c', 'DropboxBase', '-t', 'dropbox'])
        emitted = _mock_emit(backend)
        backend._generate_routes(ns)
        result = "".join(emitted)
        return result
예제 #6
0
    def _evaluate_namespace(self, ns):
        # type: (ApiNamespace) -> typing.Text

        backend = PythonTypesBackend(
            target_folder_path='output',
            args=['-r', 'dropbox.dropbox.Dropbox.{ns}_{route}'])
        emitted = _mock_emit(backend)
        route_schema = self._mk_route_schema()
        backend._generate_routes(route_schema, ns)
        result = "".join(emitted)
        return result
예제 #7
0
    def _evaluate_namespace_with_auth_mode(self, ns, auth_mode):
        # type: (ApiNamespace, str) -> typing.Text

        # supply supported auth modes to the SDK generator using the new syntax
        backend = PythonClientBackend(target_folder_path='output',
                                      args=[
                                          '-w', auth_mode, '-m', 'files', '-c',
                                          'DropboxBase', '-t', 'dropbox'
                                      ])
        emitted = _mock_emit(backend)
        backend._generate_route_methods({ns})
        result = "".join(emitted)
        return result
예제 #8
0
def _evaluate_namespace(backend, namespace_list):
    # type: (TSDTypesBackend, typing.List[ApiNamespace]) -> typing.Text

    emitted = _mock_emit(backend)
    filename = "types.d.ts"
    backend.split_by_namespace = False
    backend._generate_base_namespace_module(namespace_list=namespace_list,
                                            filename=filename,
                                            extra_args={},
                                            template="""/*TYPES*/""",
                                            exclude_error_types=True)
    result = "".join(emitted)
    return result
예제 #9
0
def _evaluate_namespace(backend, namespace_list):
    # type: (TSDTypesBackend, typing.List[ApiNamespace]) -> typing.Text

    emitted = _mock_emit(backend)
    filename = "types.d.ts"
    backend.split_by_namespace = False
    backend._generate_base_namespace_module(namespace_list=namespace_list,
                                            filename=filename,
                                            extra_args={},
                                            template="""/*TYPES*/""",
                                            exclude_error_types=True)
    result = "".join(emitted)
    return result
예제 #10
0
    def test_route_versions(self):
        # type: () -> None
        api, _ = self._get_api()
        backend = JavascriptClientBackend(
            target_folder_path='output',
            args=['files', '-c', 'DropboxBase'])
        emitted = _mock_emit(backend)
        backend.generate(api)
        result = "".join(emitted)

        expected = textwrap.dedent('''\
            // Auto-generated by Stone, do not modify.
            var routes = {};

            /**
             * get_metadata
             * @function DropboxBase#filesGetMetadata
             * @arg {void} arg - The request parameters.
             * @returns {Promise.<void, Error.<void>>}
             */
            routes.filesGetMetadata = function (arg) {
              return this.request("files/get_metadata", arg);
            };

            /**
             * get_metadata_v2
             * @function DropboxBase#filesGetMetadataV2
             * @arg {void} arg - The request parameters.
             * @returns {Promise.<number, Error.<void>>}
             */
            routes.filesGetMetadataV2 = function (arg) {
              return this.request("files/get_metadata_v2", arg);
            };

            export { routes };
            ''')
        assert result == expected