Stephen Dade 5 vuotta sitten
vanhempi
sitoutus
1a436511a0
2 muutettua tiedostoa jossa 21 lisäystä ja 36 poistoa
  1. 18 17
      app.py
  2. 3 19
      app_test.py

+ 18 - 17
app.py

@@ -1,8 +1,6 @@
 import uuid
 import os
 import zipfile
-import shutil
-import sys
 import urllib.request
 import gzip
 from io import BytesIO
@@ -57,7 +55,8 @@ def compressFiles(fileList, uuidkey, outfolder):
             for fn in fileList:
                 if not os.path.exists(fn):
                     #download if required
-                    g = urllib.request.urlopen('https://firmware.ardupilot.org/terrain/files/' + os.path.basename(fn))
+                    g = urllib.request.urlopen('https://firmware.ardupilot.org/terrain/files/' +
+                                               os.path.basename(fn))
                     print("Downloaded " + os.path.basename(fn))
                     with open(fn, 'b+w') as f:
                         f.write(g.read())
@@ -68,14 +67,13 @@ def compressFiles(fileList, uuidkey, outfolder):
                     print("Decomp " + os.path.basename(fn))
 
                     # and add file to zip
-                    terrain_zip.writestr(os.path.basename(fn)[:-3], myio.read(), compress_type = zipfile.ZIP_DEFLATED)
+                    terrain_zip.writestr(os.path.basename(fn)[:-3], myio.read(),
+                                         compress_type=zipfile.ZIP_DEFLATED)
 
     except Exception as ex:
         print("Unexpected error: {0}".format(ex))
         return False
-        
-     
-    #terrain_zip.close()
+
     return True
 
 @app.route('/')
@@ -98,7 +96,7 @@ def generate():
             radius = clamp(radius, 1, 400)
         except:
             print("Bad data")
-            return render_template('generate.html', error = "Error with input")
+            return render_template('generate.html', error="Error with input")
 
         # UUID for this terrain generation
         uuidkey = str(uuid.uuid1())
@@ -119,14 +117,16 @@ def generate():
                     continue
                 done.add(tag)
                 # make sure tile is inside the 60deg latitude limit
-                if (abs(lat_int) < 60):
-                    filelist.append(os.path.join(this_path, "processedTerrain", getDatFile(lat_int, lon_int)))
+                if abs(lat_int) < 60:
+                    filelist.append(os.path.join(this_path, "processedTerrain",
+                                                 getDatFile(lat_int, lon_int)))
                 else:
                     outsideLat = True
 
         # make sure tile is inside the 60deg latitude limit
-        if (abs(lat_int) < 60):
-            filelist.append(os.path.join(this_path, "processedTerrain", getDatFile(lat_int, lon_int)))
+        if abs(lat_int) < 60:
+            filelist.append(os.path.join(this_path, "processedTerrain",
+                                         getDatFile(lat_int, lon_int)))
         else:
             outsideLat = True
 
@@ -139,20 +139,21 @@ def generate():
 
         # as a cleanup, remove any generated terrain older than 24H
         for f in os.listdir(output_path):
-            if os.stat(os.path.join(output_path ,f)).st_mtime < time.time() - 24 * 60 * 60:
+            if os.stat(os.path.join(output_path, f)).st_mtime < time.time() - 24 * 60 * 60:
                 print("Removing old file: " + str(os.path.join(output_path, f)))
                 os.remove(os.path.join(output_path, f))
-        
+
         if success:
             print("Generated " + "/terrain/" + uuidkey + ".zip")
-            return render_template('generate.html', urlkey="/terrain/" + uuidkey + ".zip", uuidkey=uuidkey, outsideLat=outsideLat)
+            return render_template('generate.html', urlkey="/terrain/" + uuidkey + ".zip",
+                                   uuidkey=uuidkey, outsideLat=outsideLat)
         else:
             print("Failed " + "/terrain/" + uuidkey + ".zip")
-            return render_template('generate.html', error="Cannot generate terrain", uuidkey=uuidkey)
+            return render_template('generate.html', error="Cannot generate terrain",
+                                   uuidkey=uuidkey)
     else:
         print("Bad get")
         return render_template('generate.html', error="Need to use POST, not GET")
 
 if __name__ == "__main__":
     app.run()
-

+ 3 - 19
app_test.py

@@ -1,8 +1,6 @@
 import os
 import time
-
 import pytest
-import uuid
 
 from app import app
 
@@ -15,17 +13,6 @@ def createFile(name, size):
 @pytest.fixture
 def client():
     app.config['TESTING'] = True
-
-    # create fake pre-gen terrain files if they don't exist
-    #preGen = ['S35E149.DAT', 'S35E147.DAT', 'S30E137.DAT', 'S31E136.DAT', 'S31E137.DAT', 'S31E138.DAT',
-    #          'S30E136.DAT', 'S30E137.DAT', 'S30E138.DAT', 'S29E136.DAT', 'S29E137.DAT', 'S29E138.DAT']
-    #for fileSingle in preGen:
-    #    full = os.path.join(os.getcwd(), "processedTerrain", fileSingle)
-    #    print(full)
-    #    if not os.path.exists(full):
-    #        print("Making fake file: " + full)
-    #        createFile(full, 1024 * 1024)
-
     with app.test_client() as client:
         yield client
 
@@ -97,7 +84,7 @@ def test_simplegen(client):
     assert b'Tiles outside of +60 to -60 latitude were requested' not in rv.data
     assert b'download="terrain.zip"' in rv.data
 
-    uuidkey = (rv.data.split(b"footer")[1][1:-2]).decode("utf-8") 
+    uuidkey = (rv.data.split(b"footer")[1][1:-2]).decode("utf-8")
     assert uuidkey != ""
 
     #file should be ready for download and around 2MB in size
@@ -119,7 +106,7 @@ def test_simplegenoutside(client):
     assert b'Tiles outside of +60 to -60 latitude were requested' in rv.data
     assert b'download="terrain.zip"' in rv.data
 
-    uuidkey = (rv.data.split(b"footer")[1][1:-2]).decode("utf-8") 
+    uuidkey = (rv.data.split(b"footer")[1][1:-2]).decode("utf-8")
     assert uuidkey != ""
 
     #file should be ready for download and around 2MB in size
@@ -157,7 +144,7 @@ def test_multigen(client):
         assert b'<title>AP Terrain Generator</title>' in rv.data
         assert b'Error' not in rv.data
         assert b'download="terrain.zip"' in rv.data
-        uuidkey = (rv.data.split(b"footer")[1][1:-2]).decode("utf-8") 
+        uuidkey = (rv.data.split(b"footer")[1][1:-2]).decode("utf-8")
         assert uuidkey != ""
         allUuid.append(uuidkey)
 
@@ -166,6 +153,3 @@ def test_multigen(client):
         rdown = client.get('/terrain/' + uukey + ".zip", follow_redirects=True)
         assert b'404 Not Found' not in rdown.data
         assert len(rdown.data) > (0.7*1024*1024)
-
-
-