Commit bd254d62 by SaevBzh

Première version de la library API + environement d'utilisation

parents
/Python/param.py
import unittest
from Python.library import APILibrary
class TestAPILibrary(unittest.TestCase):
def test_init(self):
adresse = 'google.com'
c = APILibrary.api(adresse)
self.assertEqual(c.adresse, adresse)
self.assertEqual(c.header, {})
def test_getoken(self):
from Python import param
adresse = 'https://accessadministrateuraitp.aneo.fr'
c = APILibrary.api(adresse)
endpoint = "api/auth-tokens"
data = {'identifiant': param.login, 'motdepasse': param.motdepasse}
retour = c.gettoken(endpoint, data)
self.assertIsInstance(retour, str)
def test_call(self):
adresse = 'https://accessadministrateuraitp.aneo.fr'
c = APILibrary.api(adresse)
endpoint = "api/evenements"
retour = c.call(endpoint, {}, APILibrary.method['GET'])
self.assertEqual(retour.status_code, 200)
self.assertEqual(retour.json()[0]['id'], 1)
def test_callJson(self):
adresse = 'https://accessadministrateuraitp.aneo.fr'
c = APILibrary.api(adresse)
endpoint = "api/evenements"
retour = c.callJSON(endpoint, {}, APILibrary.method['GET'])
self.assertEqual(retour[0]['id'], 1)
self.assertEqual(retour[0]['titre'], 'Convention annuelle')
if __name__ == '__main__':
unittest.main()
from Python.library import APILibrary
adresse = 'https://accessadministrateuraitp.aneo.fr'
c = APILibrary.api(adresse)
endpoint = "api/evenements"
retour = c.call(endpoint, {}, APILibrary.method['GET'])
retourJSON = c.callJSON(endpoint, {}, APILibrary.method['GET'])
print(retourJSON)
import unittest
class MyTestCase(unittest.TestCase):
def test_something(self):
self.assertEqual(True, False)
class TestParamFile(unittest.TestCase):
def test_import(self):
from Python import param
try:
self.assertIsInstance(param.isLogin, bool, "Le type de conection n'est pas correct dans le fichier param.py")
if param.isLogin:
try:
self.assertIsInstance(param.login, str, "Le login n'est pas défini dans le fichier param.py")
self.assertIsInstance(param.motdepasse, str,
"Le mot de passe n'est pas défini dans le fichier param.py")
except AttributeError:
self.assertEqual(True, False,
"Le login ou le mot de passe n'est pas défini dans le fichier param.py")
else:
try:
self.assertIsInstance(param.token, str, "Le token n'est pas défini dans le fichier param.py")
except AttributeError:
self.assertEqual(True, False, "Le token n'est pas défini dans le fichier param.py")
except AttributeError:
self.assertEqual(True, False, "Le type de conection n'est pas défini dans le fichier param.py")
if __name__ == '__main__':
unittest.main()
import requests
from Python import param
try:
# python 3
from urllib.parse import urlencode
except ImportError:
# python 2
from urllib import urlencode
from io import BytesIO
method = {'GET': requests.get, 'POST': requests.post}
class api():
def __init__(self, adresse):
self.reponse = None
self.adresse = adresse
self.header = {}
self.buffer = BytesIO()
def call(self, endpoint, data, method):
if param.isLogin:
data = {'identifiant': param.login, 'motdepasse': param.motdepasse}
self.token = self.gettoken(param.urllogin, data)
else:
self.token = param.token
self.header = {'X-Auth-Token':self.token}
self.reponse = method(self.adresse + '/' + endpoint, data=data, verify=False,headers=self.header)
return self.reponse
def callJSON(self,endpoint, data, method):
return self.call(endpoint, data, method).json()
def gettoken(self,endpoint, data):
self.reponse = method['POST'](self.adresse + '/' + endpoint, data=data, verify=False)
return self.reponse.json()['valeur']
# définition de la méthode de log auprès de l'API
# Vrai si conection avec login et mot de passe,
# faux si token
isLogin = True
# Si connection par login et mot de passe, il faut les indiquer
# ainsi que l'url de login
login = "myloginId"
motdepasse = "mySecurePassword"
urllogin = "endpointforlogin"
# Si connection par token, il faut l'indiquer
token = 'mySecureToken'
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment