From 75fc9309505612478aa49b4d463d514a77ee6d06 Mon Sep 17 00:00:00 2001
From: Sara <sarasdj@stud.ntnu.no>
Date: Mon, 13 May 2024 13:40:40 +0200
Subject: [PATCH] add: unit tests for get_lake_realtion.py

---
 .coverage                                     | Bin 53248 -> 53248 bytes
 .../get_lake_relation.cpython-311.pyc         | Bin 2213 -> 2035 bytes
 server/map_handler/get_lake_relation.py       |  31 +++++++++---------
 ...lake_relation.cpython-311-pytest-8.2.0.pyc | Bin 0 -> 3036 bytes
 .../unit_tests/test_get_lake_relation.py      |  25 ++++++++++++++
 5 files changed, 41 insertions(+), 15 deletions(-)
 create mode 100644 server/map_handler/unit_tests/__pycache__/test_get_lake_relation.cpython-311-pytest-8.2.0.pyc
 create mode 100644 server/map_handler/unit_tests/test_get_lake_relation.py

diff --git a/.coverage b/.coverage
index 947808bfdf95dfe02c7c8f3a2eb95b8642601207..33e83fadb35bea307b53549f033bd58858f40a41 100644
GIT binary patch
delta 425
zcmZozz}&Eac>{}s2nX+e2L4n0?fjN}kNDQ{rSoy~?%ymZu$-68i-U!sQF5}qzmZgW
zYDs)fVs>hLQEE<NNoIbYUO{CPJ5bsZC~YfWl3H96k4=p$8&C~D$cWAJ{Zbi$mK|W=
zKh3wEzk@G>_W-{Y-(x-=pk*s~S-n{rB^hzr#SzWYXbF<WV;8#{OCvwnh|TlkQWZrw
z_~$V2|K$J3|C0YM{}ukt{44n90PSkwH|OGDVdNC!5Mp4QZpz6HWQ(wG+7!ho&jw^V
zu>DhIKmh^_YV-9O)6^IyU+y;qntF<X|2O{^{<r+k`0w-I;J?U!3TWykem;<HMh*@z
z#m>I@#(W(Gpz0eS)!%@wc*Fmk{}Iq7H-M@S@M|!0Ff;Hnvx5jW5Wxx}SU?0bh+qN{
Hj6ebaO$l<U

delta 223
zcmZozz}&Eac>{}s02^OA1OF-hc798~M||t}(l-kV1oN@Evav8U@=q4@Guk}gFO?Cf
zDuaRlG~asu4!#V2E564-RUv$=ZY+)bj1Wa}sfq$@{F@p0fAW9if60HB{|f(RprZNw
z3i50$jGPW^|5O=JfB=Kqe0|2WG`7i?`wf9wZ!qxx=KsR~mj4<5ef}Fjtw;Db-<YqX
q0F-(JlKKWT_YMDZ{zpKmbNq75Y|IS2%&Z`S1w=4|2qqB02qXY&EjXJ1

diff --git a/server/map_handler/__pycache__/get_lake_relation.cpython-311.pyc b/server/map_handler/__pycache__/get_lake_relation.cpython-311.pyc
index 0fd58c6d138d4c59f692b857fd1258738781ea3b..f00723a019e00b75f19812ef8cd73a543fdbf61b 100644
GIT binary patch
delta 1107
zcmZ`&&ube;6n^t-wX$Q`j%CSd-9}hW91&s%5~x#J7nQ_^7JO(9O-vdiG_#3<qjh#y
zI6qd{lpK7Nx&`;rqC=au1X>^4Tl@#KNI{UW5OOHJ<PZcd!6cWwS<5yJ<n7Kk-^};k
z?3*{UKMij6PyF21*8^yOy~<lZaDadGVAo<@vh`toV(dMtsAP&sp@gCqwG3(8<@1J&
zorj!RpUa;S=+3ZhaRRUo9^$U~#HaTtz<q2xb_rRPRk;rh66DEH8hmySBku1-5kQS<
zZ3rZhZ^Q===sUqlHjwb)8s@!Y4WZoy_`G3g#z3;*1vzX0=E&!Qr+gxji-kRw@`_g%
zWWg&0S@FqaPK4Z5i<YAoa`ZOBUe_yl6?dU%OBI^e3rmr=tF_>FacSis67B7-AgscZ
z(W8x98^>FtGwsot7C*H5d2OU)fQUchsfRpOyVK&?HqSPB_Axgf@#I6EtX*y%`Jlz8
z+kCpor}w5?Jk{o@CQn7-cR%YoUszxGW})$AYxqQa_(Y4(PPX}EbNAiC93V6t<yD+=
zaj(QUX<&<v<T;Xch=WfYCP|f+siaj}|Lsr=ZlmPW`rm26e6~~YV2btADi0E5azzTC
zTl73+!PBdCZ5*5!0cl(Tix%lctgmP8Y5-j|wy!S3O?DBMNzT0eswdO6FQSCqjCWOK
zigwvkWzWsnRy20hjf!$T)gv=l{ft#wRKfS`c<?^o{J8WjUXs#(2>RsgB~^CxCPVJ1
zf(!>|(Ra@FX6;H@o^u@A3FGH(7S)nhvdcLUtckH>`W&MqoIzxczUUDQAaS1|tU_m?
zU!;S>Mt#MAfuY*jwOdVdWc%OV(GC!i-iOEi2Wy|MEw3f?^Q1SquSD#Ba))8)_V%`W
z20!ujSUw3q4(A2?^8m6<!SnIhW}In$fN0)lXr4?a@~7G6c%Q~o1aU4G3x>_il)i)^
zE0w({_g}#o!ii`{FU^mx+p@B#W}I=H)Blva6wI6Ner3eTR3qB~>^9Cu-J39yCh70c
W1G`_)1G|mlAE!3vBl=c|zWo|*6b8uv

delta 1114
zcmbVK&1(}u6n~rD$xf1neweoTu+5k%HE3(mo5o673q6V0f)o@<yAw@KH+6SQMN=!D
zy@c_jc&IsOMS4)Y6+x)zQAkRlQm7#Q1A%x5o_w1&tzZS|W9Gfzn|bf|-h5OVUp9BY
z@_OBXQfNM#yh#9l*iK!PZBU8ix+8>)K-8H_#=}lrmT^|zIRKu53$hMF)}%REcW90|
zS=^HYs&oefva(o|+li7@@{Zj11LBL^BoXmV?iD8`f15^@B!Fd{TOvUg@(RWUKyzy9
z5|S_D{9}`Bku)~hp_6tSHOZ^EP9RJ26oCvH6;Gsat1<#zV71hv01ksODEg#eo95bY
zWxoVtpdqv6+l$w|U*2nV-dVUUkHM@I^(4meX54IBF7bqBvILt-OtWMv%~?X%*sPJV
zxXDtM$tE(o#dQQ$hFLc_Gq^dO(M`@W<CA>C5|5Q*Lncor+0lW7$%jWrFJ9ueX1Hk$
zBT<?g(bFu>Qo3m+^a)H#VyV3Y#T#W!yqCH=Qjf5|)K64V&xVqj=DJ~jiVelURz+Dl
zCl*Oqb#5qjS@D5Hi2YzpTy<RW`4Qn~19Jt_??bu8PeOt^bMq8j-gO#Wqrrt!MH(*A
zaDj%u(uQ^FU!(qo&O-D|k;Y0iR-mz+<suE1Xs|$oWhbUTbZ-ayo`;@=@|TN&o>HKv
zNPA1Pw@@F|P0ztH$RxC@Y`Xb<m&WQ_W7Ff?<*cDvpZ|BH>wlkVhq$a_yVYvdjN!#S
zhz#_@i`F=iR~itl5+&|ZS6#A=8zdWh<0sJh*dKQdwaK5{af;@1tAzSOl!)UhJ7Pb=
wYp9?GqaD>R8k@>!Gily$bfSwd1LmN(tA_gMAt{vaDg&Cg=WFJl%ILtf-;^O2y#N3J

diff --git a/server/map_handler/get_lake_relation.py b/server/map_handler/get_lake_relation.py
index 2b820eb0..220ebf52 100644
--- a/server/map_handler/get_lake_relation.py
+++ b/server/map_handler/get_lake_relation.py
@@ -1,13 +1,23 @@
 from server.consts import LAKE_RELATIONS_PATH
 
 
-# Writes contents of a lake json file to the response
 def get_map_data(self, file_name: str, measurement: bool):
+    status_code, map_data = fetch_data(file_name, measurement)
+
+    # Set HTTP headers
+    self.send_response(status_code)
+    self.send_header("Content-type", "application/json")
+    self.end_headers()
+
+    # Write contents of the JSON file to response
+    self.wfile.write(map_data.encode('utf-8'))
+
+
+def fetch_data(file_name: str, measurement: bool) -> (int, str):
     """
-        Reads a map file and writes its contents to the response object.
+        Returns the contents of the requested map file.
 
             Parameters:
-                self (BaseHTTPRequestHandler): A instance of a BaseHTTPRequestHandler
                 file_name (str): The name of the requested file/lake
                 measurement (bool): Whether the file is of type _measurements.json or _div.json
     """
@@ -21,19 +31,10 @@ def get_map_data(self, file_name: str, measurement: bool):
         with open(LAKE_RELATIONS_PATH + file_name + file_type, "r") as file:
             data = file.read()
 
-        # Set HTTP headers
-        self.send_response(200)
-        self.send_header("Content-type", "application/json")
-        self.end_headers()
+        return 200, data
 
-        # Write contents of the JSON file to response
-        self.wfile.write(data.encode('utf-8'))
     except FileNotFoundError:
-        self.send_response(404)
-        self.send_header("Content-type", "application/json")
-        self.end_headers()
+        return 404, []
     except Exception:
-        self.send_response(500)
-        self.send_header("Content-type", "application/json")
-        self.end_headers()
+        return 500, []
 
diff --git a/server/map_handler/unit_tests/__pycache__/test_get_lake_relation.cpython-311-pytest-8.2.0.pyc b/server/map_handler/unit_tests/__pycache__/test_get_lake_relation.cpython-311-pytest-8.2.0.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..498461db33caa3aaa66d942e959682911a937c5d
GIT binary patch
literal 3036
zcmeGeJ#X7a^p2z`Sx%HVvCt3Ht=l9>G(>Qm*g%`QXwWoEQ7!!#3;_p5JlV1-l6ZGY
zY(oOvAU~i(fGiz4xe&Z`?B1ngT)04RQ-PvGHUmZ$qeI^vO@?xuB}<DSPt?2jb?@Gh
z@7}wgPM$0igm?bA(Vn#k`Aah?Aa7v*CJqmYPkb7XMQTQ?Yqu;)y3S&OYK;}R-Qr>q
z>7wu4cNR-H7H}NH(Z#Xs)2~Ra^h7&s)Tk=Axoj;n-;<tlfy*9*Ewk7mD&lD4e}99T
zwdsIJq*CbPidz`pb{ZpTA~m1`%eM!1pZ4ulqZv4TM?93;(;=*6GknywsbA36ZEMRx
zZ}?BZccqTt5LPnz7D~2LF}Xv;<cRM=s_N4%jCMPV7)I^f7ukgrSI$TK%+en9=of#m
zHc&e#_$7a=U+7T7x$;!%n~)JtrBvQ`M?H;l_wf6!(Sb9teS%-C+<2-(_;TgfUxfGd
zli!dY(gSN@VMsU5T(}gk&(y^9!osvBuhxVb7t)hG!CH~ehnBL@K%=V%6;B8b(iqO6
zAqwY)W1#n{%AdyTk_*W^P!p`>1pxydLo4dW9&mL6)$De!6Ua^|lp927A=H~pEJwY-
zH>PYUh;DlU3%xE^V@!B$u05#A4YO(|3O@&kK%Hgn2)dqRd@T;V(37Yc7FETp9(b$V
zcz|&o6=iB%ubc!vn`f>hOycWWo|zXqZ>AGC`1Z4pn&05IMKhFPuX&S;RT;(27^0=w
z4`*hYsJg?U+4W+!?1g@SbT8~kro$0U6Vwuy%mfBJFyYqYbv0>J&yEn2(Btp{uB<av
z=u@^y9#^L}8-G{d`?2z~vs0bht<HVd*!<%Ai9emGN9pr>N}%KqXKFXcW;RIdq^iUw
zWAn2zVdf{39BY=iMVx<dN@9G(N#0f79_fADENN+!!t2^$-o(m(UpqjDa0~PY0bPGU
zHyd-h;Dn}ht%B1UO=$EsqWt-R_fep#N0Ysc$DhLm)M+QrXM16%I=@?;e<iaW&f%6{
zXFDPP!%n#|5k}!<zSa?vhw`$n+P69n@DA|ux&Ow|+z%tu4d5cC!P$KFUrKBJE1&%}
z3v`!j)W%gQy%oSDO4M5{xkuEKmW{o=4*V{3B;E-!kt!a_;EbMgKIy^rTo0~4*K^G^
z#q?KGcFfx!5_1+!jXEfO+>QKRz(0XHI@Q-cv4&{Rrj$O`&G`7=BXa%7v*#A*yL)65
QogQV4wsMRtn`R>W7Z}%~D*ylh

literal 0
HcmV?d00001

diff --git a/server/map_handler/unit_tests/test_get_lake_relation.py b/server/map_handler/unit_tests/test_get_lake_relation.py
new file mode 100644
index 00000000..26ba06b5
--- /dev/null
+++ b/server/map_handler/unit_tests/test_get_lake_relation.py
@@ -0,0 +1,25 @@
+from server.map_handler.get_lake_relation import fetch_data
+
+
+def test_fetch_data_true() -> None:
+    test_lake_name = "Mjøsa"
+
+    status_code, _ = fetch_data(test_lake_name, True)
+
+    assert status_code == 200
+
+
+def test_fetch_data_false() -> None:
+    test_lake_name = "Mjøsa"
+
+    status_code, _ = fetch_data(test_lake_name, False)
+
+    assert status_code == 200
+
+
+def test_fetch_data_no_lake() -> None:
+    test_lake_name = "non-existent-lake"
+
+    status_code, _ = fetch_data(test_lake_name, False)
+
+    assert status_code == 404
-- 
GitLab