コード例 #1
0
 def _CheckGeneratedFiles(self, api_name, api_version):
     prefix = api_name + '_' + api_version
     with test_utils.TempDir() as tmp_dir_path:
         gen_client.main([
             gen_client.__file__,
             '--generate_cli',
             '--init-file', 'empty',
             '--infile',
             GetSampleClientPath(api_name, prefix + '.json'),
             '--outdir', tmp_dir_path,
             '--overwrite',
             '--root_package',
             'samples.{0}_sample.{0}_{1}'.format(api_name, api_version),
             'client'
         ])
         expected_files = (
             set([prefix + '.py']) |  # CLI files
             set([prefix + '_client.py',
                  prefix + '_messages.py',
                  '__init__.py']))
         self.assertEquals(expected_files, set(os.listdir(tmp_dir_path)))
         for expected_file in expected_files:
             self.AssertDiffEqual(
                 _GetContent(GetSampleClientPath(
                     api_name, prefix, expected_file)),
                 _GetContent(os.path.join(tmp_dir_path, expected_file)))
コード例 #2
0
 def testGenPipPackage_SimpleDoc(self):
     with test_utils.TempDir() as tmp_dir_path:
         gen_client.main([
             gen_client.__file__, '--nogenerate_cli', '--infile',
             GetDocPath('dns_v1.json'), '--outdir', tmp_dir_path,
             '--overwrite', '--root_package', 'google.apis', 'pip_package'
         ])
         self.assertEquals(set(['apitools', 'setup.py']),
                           set(os.listdir(tmp_dir_path)))
コード例 #3
0
 def testGenClient_SimpleDocNoInit(self):
     with test_utils.TempDir() as tmp_dir_path:
         gen_client.main([
             gen_client.__file__, '--init-file', 'none', '--infile',
             GetTestDataPath('dns',
                             'dns_v1.json'), '--outdir', tmp_dir_path,
             '--overwrite', '--root_package', 'google.apis', 'client'
         ])
         expected_files = (set(['dns_v1_client.py', 'dns_v1_messages.py']))
         self.assertEquals(expected_files, set(os.listdir(tmp_dir_path)))
コード例 #4
0
 def testGenProto_SimpleDoc(self):
     with test_utils.TempDir() as tmp_dir_path:
         gen_client.main([
             gen_client.__file__, '--nogenerate_cli', '--infile',
             GetDocPath('dns_v1.json'), '--outdir', tmp_dir_path,
             '--overwrite', '--root_package', 'google.apis', 'proto'
         ])
         self.assertEquals(
             set(['dns_v1_messages.proto', 'dns_v1_services.proto']),
             set(os.listdir(tmp_dir_path)))
コード例 #5
0
 def testGenClient_SimpleDocWithV5(self):
     with test_utils.TempDir() as tmp_dir_path:
         gen_client.main([
             gen_client.__file__, '--infile',
             GetTestDataPath('dns', 'dns_v1.json'), '--outdir',
             tmp_dir_path, '--overwrite', '--apitools_version', '0.5.0',
             '--root_package', 'google.apis', 'client'
         ])
         self.assertEquals(
             set(['dns_v1_client.py', 'dns_v1_messages.py', '__init__.py']),
             set(os.listdir(tmp_dir_path)))
コード例 #6
0
    def testGenClient_SimpleDocEmptyInit(self):
        with test_utils.TempDir() as tmp_dir_path:
            gen_client.main([
                gen_client.__file__, '--init-file', 'empty', '--infile',
                GetTestDataPath('dns',
                                'dns_v1.json'), '--outdir', tmp_dir_path,
                '--overwrite', '--root_package', 'google.apis', 'client'
            ])
            expected_files = (set(
                ['dns_v1_client.py', 'dns_v1_messages.py', '__init__.py']))
            self.assertEquals(expected_files, set(os.listdir(tmp_dir_path)))
            init_file = _GetContent(os.path.join(tmp_dir_path, '__init__.py'))
            self.assertEqual(
                """\"""Package marker file.\"""

import pkgutil

__path__ = pkgutil.extend_path(__path__, __name__)
""", init_file)
コード例 #7
0
 def testGenClient_SimpleDoc(self):
     with test_utils.TempDir() as tmp_dir_path:
         gen_client.main([
             gen_client.__file__,
             '--generate_cli',
             '--infile', GetTestDataPath('dns_v1.json'),
             '--outdir', tmp_dir_path,
             '--overwrite',
             '--root_package', 'google.apis',
             'client'
         ])
         expected_files = (
             set(['dns_v1.py']) |  # CLI files
             set(['dns_v1_client.py', 'dns_v1_messages.py', '__init__.py']))
         self.assertEquals(expected_files, set(os.listdir(tmp_dir_path)))
         for expected_file in expected_files:
             self.assertMultiLineEqual(
                 _GetContent(GetTestDataPath('gen_' + expected_file)),
                 _GetContent(os.path.join(tmp_dir_path, expected_file)))
コード例 #8
0
    def testGeneration(self):
        for api in _API_LIST:
            with test_utils.TempDir(change_to=True):
                args = [
                    self.gen_client_binary,
                    '--client_id=12345',
                    '--client_secret=67890',
                    '--discovery_url=%s' % api,
                    '--outdir=generated',
                    '--overwrite',
                    'client',
                ]
                logging.info('Testing API %s with command line: %s', api,
                             ' '.join(args))
                retcode = gen_client.main(args)
                if retcode == 128:
                    logging.error('Failed to fetch discovery doc, continuing.')
                    continue
                self.assertEqual(0, retcode)

                sys.path.insert(0, os.path.join(os.getcwd(), 'generated'))
                # Ensure we can import the generated client.
                importlib.import_module('{}_{}_client'.format(*api.split('.')))
コード例 #9
0
    def testGeneration(self):
        for api in _API_LIST:
            with test_utils.TempDir(change_to=True):
                args = [
                    self.gen_client_binary,
                    '--client_id=12345',
                    '--client_secret=67890',
                    '--discovery_url=%s' % api,
                    '--outdir=generated',
                    '--overwrite',
                    'client',
                ]
                logging.info('Testing API %s with command line: %s',
                             api, ' '.join(args))
                retcode = gen_client.main(args)
                if retcode == 128:
                    logging.error('Failed to fetch discovery doc, continuing.')
                    continue
                self.assertEqual(0, retcode)

                with tempfile.NamedTemporaryFile() as out:
                    with tempfile.NamedTemporaryFile() as err:
                        cmdline_args = [
                            os.path.join(
                                'generated', api.replace('.', '_') + '.py'),
                            'help',
                        ]
                        retcode = subprocess.call(
                            cmdline_args, stdout=out, stderr=err)
                        with open(err.name, 'rb') as f:
                            err_output = f.read()
                # appcommands returns 1 on help
                self.assertEqual(1, retcode)
                if 'Traceback (most recent call last):' in err_output:
                    err = '\n======\n%s======\n' % err_output
                    self.fail(
                        'Error raised in generated client:' + err)