@@ -46,11 +46,70 @@ def get_full_data():
4646
4747
4848def test_upload_file (client , filename = "corbi.og_brep" ):
49+ # Test upload normal
4950 response = client .put (
5051 f"/upload_file" ,
51- data = {"file" : FileStorage (open (f"./tests/{ filename } " , "rb" ))},
52+ data = {"file" : FileStorage (open (f"./tests/data/ { filename } " , "rb" ))},
5253 )
54+ assert response .status_code == 201
55+ assert response .json ["message" ] == "File uploaded"
56+ assert response .json ["filename" ] == filename
57+ assert response .json ["replaced" ] == False
58+
59+ # Test upload du même fichier sans remplacement (doit échouer)
60+ response = client .put (
61+ f"/upload_file" ,
62+ data = {
63+ "file" : FileStorage (open (f"./tests/data/{ filename } " , "rb" )),
64+ "replace_if_exists" : "false"
65+ },
66+ )
67+ assert response .status_code == 409
68+ assert "File already exists" in response .json ["error" ]
69+
70+ # Test upload du même fichier avec remplacement (doit réussir)
71+ response = client .put (
72+ f"/upload_file" ,
73+ data = {
74+ "file" : FileStorage (open (f"./tests/data/{ filename } " , "rb" )),
75+ "replace_if_exists" : "true"
76+ },
77+ )
78+ assert response .status_code == 201
79+ assert response .json ["message" ] == "File uploaded"
80+ assert response .json ["filename" ] == filename
81+ assert response .json ["replaced" ] == True
5382
83+
84+ def test_upload_file_new_parameter_validation (client ):
85+ """Test que le paramètre replace_if_exists est optionnel."""
86+ route = "/upload_file"
87+
88+ # Test avec replace_if_exists = true
89+ response = client .put (
90+ route ,
91+ data = {
92+ "file" : FileStorage (open ("./tests/data/corbi.og_brep" , "rb" )),
93+ "replace_if_exists" : "true"
94+ },
95+ )
96+ assert response .status_code == 201
97+
98+ # Test avec replace_if_exists = false
99+ response = client .put (
100+ route ,
101+ data = {
102+ "file" : FileStorage (open ("./tests/data/test.og_brep" , "rb" )),
103+ "replace_if_exists" : "false"
104+ },
105+ )
106+ assert response .status_code == 201
107+
108+ # Test sans replace_if_exists (doit utiliser la valeur par défaut false)
109+ response = client .put (
110+ route ,
111+ data = {"file" : FileStorage (open ("./tests/data/cube.og_brep" , "rb" ))},
112+ )
54113 assert response .status_code == 201
55114
56115
0 commit comments