From ab5d69e44d4f8a527268ab967e9cecf9e70e6a09 Mon Sep 17 00:00:00 2001 From: Colin Goutte Date: Wed, 22 Sep 2021 11:27:39 +0200 Subject: [PATCH 1/4] Test and implementation of sonde post --- papi/main.py | 12 ++++++++++++ tests/test_papi.py | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/papi/main.py b/papi/main.py index 23920b7..028ad74 100644 --- a/papi/main.py +++ b/papi/main.py @@ -1,10 +1,16 @@ from typing import Optional +from pydantic import BaseModel from fastapi import FastAPI app = FastAPI() +class Sonde(BaseModel): + identifiant: str + nom: str + + @app.get("/") def read_root(): return {"msg": "Hello World"} @@ -13,3 +19,9 @@ def read_root(): @app.get("/items/{item_id}") def read_item(item_id: int, q: Optional[str] = None): return {"item_id": item_id, "q": q} + + +@app.post("/sonde/") +def post_sonde(sonde: Sonde): + print(sonde) + return diff --git a/tests/test_papi.py b/tests/test_papi.py index 22a79eb..255afd5 100644 --- a/tests/test_papi.py +++ b/tests/test_papi.py @@ -16,3 +16,9 @@ def test_read_main(): response = client.get("/") assert response.status_code == 200 assert response.json() == {"msg": "Hello World"} + + +def test_creer_sonde(): + sonde1 = {"identifiant": "masonde_001", "nom": "client1"} + response = client.post("/sonde/", json=sonde1) + assert response.status_code == 200 From 546733d9984ed8e2f82c7e973cdcc7990b437c20 Mon Sep 17 00:00:00 2001 From: Colin Goutte Date: Wed, 22 Sep 2021 11:29:58 +0200 Subject: [PATCH 2/4] add test of adding sonde --- papi/main.py | 2 ++ tests/test_papi.py | 3 +++ 2 files changed, 5 insertions(+) diff --git a/papi/main.py b/papi/main.py index 028ad74..83013ef 100644 --- a/papi/main.py +++ b/papi/main.py @@ -5,6 +5,8 @@ from fastapi import FastAPI app = FastAPI() +sondes = [] + class Sonde(BaseModel): identifiant: str diff --git a/tests/test_papi.py b/tests/test_papi.py index 255afd5..6505835 100644 --- a/tests/test_papi.py +++ b/tests/test_papi.py @@ -3,6 +3,8 @@ from fastapi.testclient import TestClient from papi.main import app +from papi.main import sondes + from papi import __version__ client = TestClient(app) @@ -22,3 +24,4 @@ def test_creer_sonde(): sonde1 = {"identifiant": "masonde_001", "nom": "client1"} response = client.post("/sonde/", json=sonde1) assert response.status_code == 200 + assert sonde1 in sondes From d1730c9c5b27feee2127fa1712cdc30192b79410 Mon Sep 17 00:00:00 2001 From: Colin Goutte Date: Wed, 22 Sep 2021 11:31:03 +0200 Subject: [PATCH 3/4] Add sonde feature --- papi/main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/papi/main.py b/papi/main.py index 83013ef..6d320e8 100644 --- a/papi/main.py +++ b/papi/main.py @@ -26,4 +26,5 @@ def read_item(item_id: int, q: Optional[str] = None): @app.post("/sonde/") def post_sonde(sonde: Sonde): print(sonde) + sondes.append(sonde) return From 061ae2d89208390e9e3dbc96c82d9e84b5bef548 Mon Sep 17 00:00:00 2001 From: Colin Goutte Date: Wed, 22 Sep 2021 12:01:24 +0200 Subject: [PATCH 4/4] lister les sondes est ok --- papi/main.py | 5 +++++ tests/test_papi.py | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/papi/main.py b/papi/main.py index 6d320e8..15acf59 100644 --- a/papi/main.py +++ b/papi/main.py @@ -28,3 +28,8 @@ def post_sonde(sonde: Sonde): print(sonde) sondes.append(sonde) return + + +@app.get("/sonde/") +def list_sonde(): + return [x for x in sondes] diff --git a/tests/test_papi.py b/tests/test_papi.py index 6505835..3a6d7c3 100644 --- a/tests/test_papi.py +++ b/tests/test_papi.py @@ -25,3 +25,10 @@ def test_creer_sonde(): response = client.post("/sonde/", json=sonde1) assert response.status_code == 200 assert sonde1 in sondes + + +def test_lister_sondes(): + sonde1 = {"identifiant": "masonde_001", "nom": "client1"} + response = client.get("/sonde/") + assert response.status_code == 200 + assert sonde1 in response.json()