def test_parameter(self): """ Parameter -> Parameter """ # body o = self.app.root.paths['/api/pet/{petId}'].patch p = [p for p in o.parameters if getattr(p, 'in') == 'body'][0] self.assertEqual(getattr(p, 'in'), 'body') self.assertEqual(p.required, True) self.assertEqual(getattr(p.schema, '$ref'), _pf('/definitions/pet!##!Pet')) # form o = self.app.root.paths['/api/pet/uploadImage'].post p = [p for p in o.parameters if getattr(p, 'in') == 'formData' and p.type == 'string'][0] self.assertEqual(p.name, 'additionalMetadata') self.assertEqual(p.required, False) # file o = self.app.root.paths['/api/pet/uploadImage'].post p = [p for p in o.parameters if getattr(p, 'in') == 'formData' and p.type == 'file'][0] self.assertEqual(p.name, 'file') self.assertEqual(p.required, False) # non-body can't have $ref try: App._create_(get_test_data_folder( version='1.2', which='upgrade_parameter' )) except errs.SchemaError as e: self.failUnlessEqual(e.args, ("Can't have $ref in non-body Parameters",)) else: self.fail('SchemaError not raised')
def __init__(self, creds=elicit_creds.ElicitCreds(), api_url=PRODUCTION_URL, send_opt=dict(verify=True)): print("Initialize Elicit client library for %s options:" % api_url) print(send_opt) if ((not send_opt['verify']) and api_url.startswith("https")): print('WARNING: not checking SSL') dont_check_ssl() self.api_url = api_url self.swagger_url = self.api_url + '/apidocs/v1/swagger.json' self.app = App._create_(self.swagger_url) self.auth = Security(self.app) self.creds = creds # init swagger client self.client = Client( self.auth, send_opt=send_opt ) # HACK to work around self-signed SSL certs used in development if (self.app.root.host != self.api_url): print( 'WARNING: API URL from swagger doesn\'t match this configuration: [%s] vs [%s]' % (self.api_url, self.app.root.host))
def test_uploadImages(self): """ test for uploading multiple files """ global received_files app = App._create_( get_test_data_folder(version='2.0', which=os.path.join('io', 'files'))) resp = yield self.client.request(app.op['upload_images'](images=[ dict(data=six.BytesIO(six.b('test image 1')), filename='_1.k'), dict(data=six.BytesIO(six.b('test image 2')), filename='_2.k'), dict(data=six.BytesIO(six.b('test image 3')), filename='_3.k'), ]), opt=dict(url_netloc='localhost:' + str(self.get_http_port()))) self.assertEqual( received_files[0], { 'body': six.b('test image 1'), 'content_type': 'application/unknown', 'filename': u'_1.k' }) self.assertEqual( received_files[1], { 'body': six.b('test image 2'), 'content_type': 'application/unknown', 'filename': u'_2.k' }) self.assertEqual( received_files[2], { 'body': six.b('test image 3'), 'content_type': 'application/unknown', 'filename': u'_3.k' })
def init(self): self.server = self["server"] self.port = self["port"] self.api = self["api"] openapi_spec = 'http://{}:{}/{}/swagger.json'.format( self.server, str(self.port), self.api) self.app = App._create_(openapi_spec) self.client = Client() StratusClient.init(self)
def __init__(self, url, *auths): app = App._create_(url) auth = Security(app) for t, cred in auths: auth.update_with(t, cred) client = Client(auth) self.app, self.client = app, client self.client._Client__s.hooks['response'] = logHttp
def test_item(self): """ make sure to raise exception for invalid item """ try: App._create_(get_test_data_folder( version='1.2', which=os.path.join('upgrade_items', 'with_ref') )) except errs.SchemaError as e: self.failUnlessEqual(e.args, ('Can\'t have $ref for Items',)) else: self.fail('SchemaError not raised') try: App._create_(get_test_data_folder( version='1.2', which=os.path.join('upgrade_items', 'invalid_primitive') )) except errs.SchemaError as e: self.failUnlessEqual(e.args, ('Non primitive type is not allowed for Items',)) else: self.fail('SchemaError not raised')
def test_parameter(self): """ Parameter -> Parameter """ # body o = self.app.root.paths['/api/pet/{petId}'].patch p = [p for p in o.parameters if getattr(p, 'in') == 'body'][0] self.assertEqual(getattr(p, 'in'), 'body') self.assertEqual(p.required, True) self.assertEqual(getattr(p.schema, '$ref'), _pf('/definitions/pet!##!Pet')) # form o = self.app.root.paths['/api/pet/uploadImage'].post p = [ p for p in o.parameters if getattr(p, 'in') == 'formData' and p.type == 'string' ][0] self.assertEqual(p.name, 'additionalMetadata') self.assertEqual(p.required, False) # file o = self.app.root.paths['/api/pet/uploadImage'].post p = [ p for p in o.parameters if getattr(p, 'in') == 'formData' and p.type == 'file' ][0] self.assertEqual(p.name, 'file') self.assertEqual(p.required, False) # non-body can't have $ref try: App._create_( get_test_data_folder(version='1.2', which='upgrade_parameter')) except errs.SchemaError as e: self.failUnlessEqual(e.args, ("Can't have $ref in non-body Parameters", )) else: self.fail('SchemaError not raised')
def test_item(self): """ make sure to raise exception for invalid item """ try: App._create_( get_test_data_folder(version='1.2', which=os.path.join( 'upgrade_items', 'with_ref'))) except errs.SchemaError as e: self.failUnlessEqual(e.args, ('Can\'t have $ref for Items', )) else: self.fail('SchemaError not raised') try: App._create_( get_test_data_folder(version='1.2', which=os.path.join( 'upgrade_items', 'invalid_primitive'))) except errs.SchemaError as e: self.failUnlessEqual( e.args, ('Non primitive type is not allowed for Items', )) else: self.fail('SchemaError not raised')
def get_swagger(self): """Gets an authenticated Swagger Client.""" swagger_url = self.get_url( 'swagger', replacement_fields={'base_url': self.base_url}) # load Swagger resource file into App object app = App._create_(swagger_url) auth = Security(app) # TODO: this isn't working... # ValueError: Unknown security name: [api_key] auth.update_with('api_key', self.api_token) # init swagger client client = Client(auth) return app, client
def connect(self, token: str) -> None: """ Establish connection for OpenSTF server :param token: stf access token :return: None """ url = self.swagger_uri self.logger.debug(f"Fetch API spec from: {url}") # load Swagger resource file into App object try: self._app = App._create_(url) # pylint: disable-line except (FileNotFoundError, urllib.error.URLError) as error: self.logger.error(error) raise auth = Security(self._app) auth.update_with('accessTokenAuth', f"Bearer {token}") # token # init swagger client self._client = Client(auth) self.logger.info('StfClient library initiated')
def test_uploadImages(self): """ test for uploading multiple files """ global received_files app = App._create_(get_test_data_folder(version='2.0', which=os.path.join('io', 'files'))) resp = yield self.client.request( app.op['upload_images'](images=[ dict(data=six.BytesIO(six.b('test image 1')), filename='_1.k'), dict(data=six.BytesIO(six.b('test image 2')), filename='_2.k'), dict(data=six.BytesIO(six.b('test image 3')), filename='_3.k'), ]), opt=dict( url_netloc='localhost:'+str(self.get_http_port()) ) ) self.assertEqual(received_files[0], {'body': six.b('test image 1'), 'content_type': 'application/unknown', 'filename': u'_1.k'}) self.assertEqual(received_files[1], {'body': six.b('test image 2'), 'content_type': 'application/unknown', 'filename': u'_2.k'}) self.assertEqual(received_files[2], {'body': six.b('test image 3'), 'content_type': 'application/unknown', 'filename': u'_3.k'})
def test_uploadImages(self): """ upload multiple files """ httpretty.register_uri(httpretty.POST, 'http://test.com/upload', status=200) app = App._create_(get_test_data_folder(version='2.0', which=os.path.join('io', 'files'))) resp = client.request(app.op['upload_images'](images=[ dict(data=six.BytesIO(six.b('test image 1')), filename='_1.k'), dict(data=six.BytesIO(six.b('test image 2')), filename='_2.k'), dict(data=six.BytesIO(six.b('test image 3')), filename='_3.k') ]) ) self.assertEqual(resp.status, 200) body = httpretty.last_request().body.decode() self.assertTrue(body.find('_1.k') != -1) self.assertTrue(body.find('test image 1') != -1) self.assertTrue(body.find('_2.k') != -1) self.assertTrue(body.find('test image 2') != -1) self.assertTrue(body.find('_3.k') != -1) self.assertTrue(body.find('test image 3') != -1)
def test_auto_schemes(self): """ make sure we scheme of url to access swagger.json as default scheme """ # load swagger.json data = None with open(os.path.join(get_test_data_folder( version='2.0', which=os.path.join('schema', 'model') ), 'swagger.json')) as f: data = f.read() httpretty.register_uri( httpretty.GET, 'http://test.com/api-doc/swagger.json', body=data ) app = App._create_('http://test.com/api-doc/swagger.json') self.assertEqual(app.schemes, ['http'])
def test_upload_multiple_files(self): """ upload multiple files """ global received_files global received_file_names app = App._create_( get_test_data_folder(version='2.0', which=os.path.join('io', 'files'))) self.client.request(app.op['upload_images'](images=[ dict(data=six.BytesIO(six.b('test image 1')), filename='_1.k'), dict(data=six.BytesIO(six.b('test image 2')), filename='_2.k'), dict(data=six.BytesIO(six.b('test image 3')), filename='_3.k') ])) # filename self.assertEqual(received_files[0].filename, '_1.k') self.assertEqual(received_files[1].filename, '_2.k') self.assertEqual(received_files[2].filename, '_3.k') # parameter name self.assertEqual(received_files[0].name, 'images') self.assertEqual(received_files[1].name, 'images') self.assertEqual(received_files[2].name, 'images')
import sys import json from pyswagger import App vertices = [] app = App._create_(sys.argv[1]) for id, op in app.op.items(): vertices.append({ 'id': id, 'type': "route", 'props': [ {"name": "path", "value": op.path}, {"name": "verb", "value": op.method.upper()}, ] }) print(json.dumps({ "id": "swagger_map", "vertices": vertices, "edges": [] }))
def main(): gp = goldPoint() # 初始化 swagger 客户端 host = 'https://goldennumber.aiedu.msra.cn/' jsonpath = '/swagger/v1/swagger.json' app = App._create_(host + jsonpath) client = Client() parser = argparse.ArgumentParser() parser.add_argument('--room', type=int, help='Room ID', required=False) args = parser.parse_args() roomId = args.room if roomId is None: # 如果参数中没有给出room ID,则要求输入room ID roomId = input("Input room id: ") try: roomId = int(roomId) except: roomId = 0 print('Parse room id failed, default join in to room 0') userInfoFile = "userinfo.txt" userId = "019" nickName = None try: # 使用已存在的玩家 with open(userInfoFile) as f: nickName, userId, key = f.read().split(',')[:3] print('Use an exist player: ' + nickName + ' Id: ' + userId) except: # 创建一个新的玩家 userResp = client.request(app.op['NewUser'](nickName='019')) assert userResp.status == 200 user = userResp.data userId = user.userId nickName = user.nickName print('Create a new player: ' + nickName + ' Id: ' + userId) with open(userInfoFile, "w") as f: f.write("%s,%s" % (userId, nickName)) print('Room id: ' + str(roomId)) while True: stateResp = client.request(app.op['State'](uid=userId, roomid=roomId)) if stateResp.status != 200: print('Network issue, query again after 1 second') time.sleep(1) continue state = stateResp.data if state.state == 2: print('The game has finished') break if state.state == 1: print('The game has not started, query again after 1 second') time.sleep(1) continue if state.hasSubmitted: print('Already submitted this round, wait for next round') if state.maxUserCount == 0: time.sleep(state.leftTime + 1) else: # 每秒检测一次:当设置了最大用户数量后,当所有用户都已提交信息后,一个回合就应该结束 time.sleep(1) continue print('\r\nThis is round ' + str(state.finishedRoundCount + 1)) todayGoldenListResp = client.request( app.op['TodayGoldenList'](roomid=roomId)) if todayGoldenListResp.status != 200: print('Network issue, query again after 1 second') time.sleep(1) continue todayGoldenList = todayGoldenListResp.data if len(todayGoldenList.goldenNumberList) != 0: print('Last golden number is: ' + str(todayGoldenList.goldenNumberList[-1])) lastRoundResp = client.request(app.op['History'](roomid=roomId, count=1)) if lastRoundResp.status != 200: print('Network issue, query again after 1 second') time.sleep(1) continue lastScore = 0 if len(lastRoundResp.data.rounds) > 0: scoreArray = [ user for user in lastRoundResp.data.rounds[0].userNumbers if user.userId == userId ] if len(scoreArray) == 1: lastScore = scoreArray[0].score print('Last round score: {}'.format(lastScore)) number1, number2 = gp.predict(todayGoldenList.goldenNumberList) # number1, number2 = random.random(), random.random() print(number1, number2) if (state.numbers == 2): submitRsp = client.request(app.op['Submit']( uid=userId, rid=state.roundId, n1=str(number1), n2=str(number2), token=base64.b64encode( hashlib.sha256( (userId + state.roundId + key).encode(encoding='utf-8')).hexdigest().encode( encoding='utf-8')))) if submitRsp.status == 200: print('You submit numbers: ' + str(number1) + ', ' + str(number2)) else: print('Error: ' + submitRsp.data.message) time.sleep(1) else: submitRsp = client.request(app.op['Submit']( uid=userId, rid=state.roundId, n1=str(number1), token=base64.b64encode( hashlib.sha256( (userId + state.roundId + key).encode(encoding='utf-8')).hexdigest().encode( encoding='utf-8')))) if submitRsp.status == 200: print('You submit number: ' + str(number1)) else: print('Error: ' + submitRsp.data.message) time.sleep(1)
def test_http_getter(self): """ make sure HTTPGetter works """ folder = get_test_data_folder(version='1.2', which='wordnik') resource_list = user = pet = store = None with open(os.path.join(folder, 'resource_list.json')) as f: resource_list = f.read() with open(os.path.join(folder, 'user.json')) as f: user = f.read() with open(os.path.join(folder, 'pet.json')) as f: pet = f.read() with open(os.path.join(folder, 'store.json')) as f: store = f.read() httpretty.register_uri( httpretty.GET, 'http://petstore.swagger.wordnik.com/api/api-docs', status=200, body=resource_list ) httpretty.register_uri( httpretty.GET, 'http://petstore.swagger.wordnik.com/api/api-docs/user', status=200, body=user ) httpretty.register_uri( httpretty.GET, 'http://petstore.swagger.wordnik.com/api/api-docs/pet', status=200, body=pet ) httpretty.register_uri( httpretty.GET, 'http://petstore.swagger.wordnik.com/api/api-docs/store', status=200, body=store ) local_app = App._create_('http://petstore.swagger.wordnik.com/api/api-docs') self.assertEqual(sorted(local_app.raw._field_names_), sorted(['info', 'authorizations', 'apiVersion', 'swaggerVersion', 'apis'])) op = local_app.raw.apis['pet'].apis['updatePet'] self.assertEqual(sorted(op._field_names_), sorted([ 'authorizations', 'consumes', 'defaultValue', 'deprecated', 'enum', 'format', 'items', 'maximum', 'method', 'minimum', 'nickname', 'parameters', 'produces', '$ref', 'responseMessages', 'type', 'uniqueItems', 'summary', 'notes' ]))
from __future__ import absolute_import from tornado import web, testing from tornado.ioloop import IOLoop from pyswagger import App from pyswagger.contrib.client.tornado import TornadoClient from ...utils import create_pet_db, get_test_data_folder, pet_Mary import json import six import os sapp = App._create_(get_test_data_folder(version='1.2', which='wordnik')) received_file = None received_meta = None received_headers = None """ refer to pyswagger.tests.data.v1_2.wordnik for details """ class RESTHandler(web.RequestHandler): """ base implementation of RequestHandler, accept a db as init paramaeter. """ def initialize(self, db): self.db = db def prepare(self): """ According to FAQ of tornado, they won't handle json media-type. """ super(RESTHandler, self).prepare()
def setUpClass(kls): kls.app = App._create_( get_test_data_folder(version='2.0', which='patch'))
def main(roomId): host = 'https://goldennumber.aiedu.msra.cn/' jsonpath = '/swagger/v1/swagger.json' app = App._create_(host + jsonpath) client = Client() if not roomId: # Input the roomid if there is no roomid in args roomId = input("Input room id: ") try: roomId = int(roomId) except: roomId = 0 print('Parse room id failed, default join in to room 0') userInfoFile = "userinfo.txt" userId = None nickName = None try: # Use an exist player with open(userInfoFile) as f: userId, nickName = f.read().split(',')[:2] print('Use an exist player: ' + nickName + ' Id: ' + userId) except: # Create a new player userResp = client.request(app.op['NewUser']( nickName='AI Player ' + str(random.randint(0, 9999)))) assert userResp.status == 200 user = userResp.data userId = user.userId nickName = user.nickName print('Create a new player: ' + nickName + ' Id: ' + userId) with open(userInfoFile, "w") as f: f.write("%s,%s" % (userId, nickName)) print('Room id: ' + str(roomId)) while True: stateResp = client.request(app.op['State'](uid=userId, roomid=roomId)) assert stateResp.status == 200 state = stateResp.data if state.state == 2: print('The game has finished') break if state.state == 1: print('The game has not started, query again after 1 second') time.sleep(1) continue if state.hasSubmitted: print('Already submitted this round, wait for next round') if state.maxUserCount == 0: time.sleep(state.leftTime + 1) else: # One round can be finished when all players submitted their numbers if the room have set the max count of users, need to check the state every second. time.sleep(1) continue print('\r\nThis is round ' + str(state.finishedRoundCount + 1)) todayGoldenListResp = client.request( app.op['TodayGoldenList'](roomid=roomId)) assert todayGoldenListResp.status == 200 todayGoldenList = todayGoldenListResp.data if len(todayGoldenList.goldenNumberList) != 0: print('Last golden number is: ' + str(todayGoldenList.goldenNumberList[-1])) number1, number2 = GeneratePredictionNumbers( todayGoldenList.goldenNumberList, state.numbers) if (state.numbers == 2): submitRsp = client.request(app.op['Submit'](uid=userId, rid=state.roundId, n1=str(number1), n2=str(number2))) if submitRsp.status == 200: print('You submit numbers: ' + str(number1) + ', ' + str(number2)) else: print('Error: ' + submitRsp.data.message) else: submitRsp = client.request(app.op['Submit'](uid=userId, rid=state.roundId, n1=str(number1))) if submitRsp.status == 200: print('You submit number: ' + str(number1)) else: print('Error: ' + submitRsp.data.message)
def setUpClass(kls): kls.app = App._create_(get_test_data_folder(version='2.0', which=os.path.join('schema', 'model')))
from pyswagger import App from pyswagger.contrib.client.requests import Client from pyswagger.primitives import Model from ..utils import get_test_data_folder import unittest import httpretty import json import pytest import sys app = App._create_(get_test_data_folder(version='1.2', which='model_subtypes')) client = Client() u_mission = dict(id=1, username='******', password='******') uwi_mary = dict(id=2, username='******', password='******', email='*****@*****.**', phone='123') uwi_kevin = dict(id=3, username='******') class ModelInteritanceTestCase(unittest.TestCase): """ test cases for model inheritance """ @httpretty.activate def test_inheritantce_full(self): """ init a Model with every property along the inheritance path. """ httpretty.register_uri( httpretty.GET, 'http://petstore.swagger.wordnik.com/api/user/mary', status=200, content_type='application/json',
from pyswagger import App, Security from pyswagger.contrib.client.requests import Client from pyswagger.utils import jp_compose # load Swagger resource file into App object app = App._create_('https://canvas.instructure.com/doc/api/courses.json') auth = Security(app) # auth.update_with('api_key', '9371~SNSl0krgbvfe8JYXS5NSKh7FJLcqO8yNmwZOb9ku79YGDmIXLNCjzjiOBGvfFya9') # api key # auth.update_with('petstore_auth', '12334546556521123fsfss') # oauth2 # init swagger client client = Client(auth)
def setUpClass(kls): kls.app = App._create_(get_test_data_folder(version='2.0', which=os.path.join('schema', 'additionalProperties')))
def test_http_getter(self): """ make sure HTTPGetter works """ folder = get_test_data_folder(version='1.2', which='wordnik') resource_list = user = pet = store = None with open(os.path.join(folder, 'resource_list.json')) as f: resource_list = f.read() with open(os.path.join(folder, 'user.json')) as f: user = f.read() with open(os.path.join(folder, 'pet.json')) as f: pet = f.read() with open(os.path.join(folder, 'store.json')) as f: store = f.read() httpretty.register_uri( httpretty.GET, 'http://petstore.swagger.wordnik.com/api/api-docs', status=200, body=resource_list) httpretty.register_uri( httpretty.GET, 'http://petstore.swagger.wordnik.com/api/api-docs/user', status=200, body=user) httpretty.register_uri( httpretty.GET, 'http://petstore.swagger.wordnik.com/api/api-docs/pet', status=200, body=pet) httpretty.register_uri( httpretty.GET, 'http://petstore.swagger.wordnik.com/api/api-docs/store', status=200, body=store) local_app = App._create_( 'http://petstore.swagger.wordnik.com/api/api-docs') self.assertEqual( sorted(local_app.raw._field_names_), sorted([ 'info', 'authorizations', 'apiVersion', 'swaggerVersion', 'apis' ])) op = local_app.raw.apis['pet'].apis['updatePet'] self.assertEqual( sorted(op._field_names_), sorted([ 'authorizations', 'consumes', 'defaultValue', 'deprecated', 'enum', 'format', 'items', 'maximum', 'method', 'minimum', 'nickname', 'parameters', 'produces', '$ref', 'responseMessages', 'type', 'uniqueItems', 'summary', 'notes' ]))
def connect_to_stf(self, host, token): self.app = App._create_('http://%s/api/v1/swagger.json' % host) auth = Security(self.app) auth.update_with('accessTokenAuth', 'Bearer ' + token) self.client = Client(auth)
#!/usr/bin/env python3 from pyswagger import App, Security from pyswagger.contrib.client.requests import Client as SwagClient from shared.config import config import startup oauth_credentials = startup.run_flow() # Autheticates against the Bikebuds API using google-based oauth identity. # I can't figure out how to do this with firebase identity swag_app = App._create_(config.api_url + '/bikebudsv1openapi.json') swag_auth = Security(swag_app) swag_auth.update_with('api_key', config.python_client_testing_api_key) api_client = SwagClient(swag_auth) api_client._Client__s.headers[ 'Authorization'] = 'Bearer ' + oauth_credentials.id_token # This is a hack for my server, auth_util.verify_claims by default tries to # validate via firebase. api_client._Client__s.headers['UseAltAuth'] = '1' req, resp = swag_app.op['getProfile'](body=None) req.produce('application/json') api_client.request((req, resp)) print(resp.status) print(resp.data)
def setUpClass(kls): kls.app = App._create_(get_test_data_folder( version='2.0', which=os.path.join('resolve', 'deref') ))
def setUpClass(kls): kls.app = App._create_(folder)
def generate_client(URL, KEY=None): app = App._create_(URL) auth = Security(app) auth.update_with('apiKeyHeader', KEY) # api key client = Client(auth) return app, client
from pyswagger import App from pyswagger.contrib.client.requests import Client from pyswagger.primitives import Model from ..utils import get_test_data_folder import unittest import httpretty import json import pytest import sys app = App._create_(get_test_data_folder(version='1.2', which='model_subtypes')) client = Client() u_mission = dict(id=1, username='******', password='******') uwi_mary = dict(id=2, username='******', password='******', email='*****@*****.**', phone='123') uwi_kevin = dict(id=3, username='******') class ModelInteritanceTestCase(unittest.TestCase): """ test cases for model inheritance """ @httpretty.activate def test_inheritantce_full(self): """ init a Model with every property along the inheritance path. """ httpretty.register_uri( httpretty.GET,
def setUpClass(kls): kls.app = App._create_(get_test_data_folder(version='1.2', which='model_subtypes'))
from __future__ import absolute_import from pyswagger import App from pyswagger.contrib.client.flask import FlaskTestClient from ...utils import create_pet_db, get_test_data_folder, pet_Mary from flask import Flask, json, request import unittest import six import os sapp = App._create_(get_test_data_folder(version='1.2', which='wordnik')) pet_db = create_pet_db() received_file = None received_meta = None # # a minimum flask application for pet-store example # fapp = Flask(__name__) @fapp.route('/api/pet', methods=['POST', 'PUT']) def pet(): if request.method == 'POST': if pet_db.read_(request.json['id']) != None: return "", 409 else: pet_db.create_(**request.json) return "", 200 elif request.method == 'PUT': if not isinstance(request.json['id'], int): return "", 400
def setUpClass(kls): kls.app = App._create_( get_test_data_folder(version='1.2', which='model_subtypes'))
from pyswagger import App, Security from ..utils import get_test_data_folder import unittest app = App._create_(get_test_data_folder(version='1.2', which='simple_auth')) class BasicAuthAndApiKeyTestCase(unittest.TestCase): """ test cases for authorzation related """ def setUp(self): self.s = Security(app) self.s.update_with('simple_key', '123456') self.s.update_with('simple_basic', ('mission', '123123')) self.s.update_with('simple_basic2', ('qoo', '456456')) self.s.update_with('simple_key2', '789789') def test_deleteUser(self): """ basic auth """ req, _ = app.op['deleteUser'](username='******') self.s(req).prepare() self.assertTrue('Authorization' in req.header) self.assertEqual(req.header['Authorization'], 'Basic bWlzc2lvbjoxMjMxMjM=') def test_getUserByName(self): """ api key, passed by query """ req, _ = app.op['getUserByName'](username='******') self.s(req).prepare() qk = [x for x in req.query if x[0] == 'simpleQK']
def setUpClass(kls): kls.app = App._create_(get_test_data_folder( version='2.0', which='patch' ))
from pyswagger import App, Security from ..utils import get_test_data_folder import unittest app = App._create_(get_test_data_folder(version='1.2', which='simple_auth')) class BasicAuthAndApiKeyTestCase(unittest.TestCase): """ test cases for authorzation related """ def setUp(self): self.s = Security(app) self.s.update_with('simple_key', '123456') self.s.update_with('simple_basic', ('mission', '123123')) self.s.update_with('simple_basic2', ('qoo', '456456')) self.s.update_with('simple_key2', '789789') def test_deleteUser(self): """ basic auth """ req, _ = app.op['deleteUser'](username='******') self.s(req).prepare() self.assertTrue('Authorization' in req.header) self.assertEqual(req.header['Authorization'], 'Basic bWlzc2lvbjoxMjMxMjM=') def test_getUserByName(self): """ api key, passed by query """ req, _ = app.op['getUserByName'](username='******') self.s(req).prepare()
def initOpenAPI(self): with open('stratzAPI.yaml') as f: spec = yaml.safe_load(f.read()) app = App._create_('spec') auth = Security
if lastState != None and lastAction != None: RL.learn(lastState, lastAction, lastScore, state) action = RL.choose_action(state) number1, number2 = actions[action](goldenNumberList) lastState = state lastAction = action return number1, number2 # Init swagger client host = 'https://goldennumber.aiedu.msra.cn/' jsonpath = '/swagger/v1/swagger.json' app = App._create_(host + jsonpath) client = Client() def main(roomId): if roomId is None: # Input the roomid if there is no roomid in args roomId = input("Input room id: ") try: roomId = int(roomId) except: roomId = 0 print('Parse room id failed, default join in to room 0') userInfoFile = "userinfo.txt" userId = None
def setUpClass(kls): kls.app = App._create_( get_test_data_folder(version='2.0', which=os.path.join('resolve', 'deref')))