pylint update and better tour viz
Some checks failed
Build and deploy the backend to staging / Build and push image (pull_request) Successful in 1m41s
Run linting on the backend code / Build (pull_request) Failing after 30s
Run testing on the backend code / Build (pull_request) Failing after 1m47s
Build and deploy the backend to staging / Deploy to staging (pull_request) Successful in 38s

This commit is contained in:
Helldragon67 2024-11-21 15:28:12 +01:00
parent a718b883d7
commit b56647f12e
4 changed files with 8 additions and 6 deletions

View File

@ -11,6 +11,7 @@ httpx = "*"
exceptiongroup = "*"
pytest-html = "*"
typing-extensions = "*"
dill = "*"
[packages]
numpy = "*"

5
backend/Pipfile.lock generated
View File

@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
"sha256": "4b48cf17e386da01e0b323e8444797de47837b8ee298aa4646ea7f93d67755d5"
"sha256": "0af258788e2a8ae214f9af013cd7a7b19fb3adb941d4ea1de23902daf9062f5a"
},
"pipfile-spec": 6,
"requires": {},
@ -1687,7 +1687,8 @@
"sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a",
"sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c"
],
"markers": "python_version >= '3.11'",
"index": "pypi",
"markers": "python_version >= '3.8'",
"version": "==0.3.9"
},
"exceptiongroup": {

View File

@ -328,7 +328,7 @@ div.media {
</head>
<body>
<h1 id="title">Backend Testing Report</h1>
<p>Report generated on 20-Nov-2024 at 16:43:04 by <a href="https://pypi.python.org/pypi/pytest-html">pytest-html</a>
<p>Report generated on 21-Nov-2024 at 14:51:16 by <a href="https://pypi.python.org/pypi/pytest-html">pytest-html</a>
v4.1.1</p>
<div id="environment-header">
<h2>Environment</h2>
@ -382,7 +382,7 @@ div.media {
<h2>Summary</h2>
<div class="additional-summary prefix">
</div>
<p class="run-count">3 tests took 00:00:09.</p>
<p class="run-count">3 tests took 00:00:43.</p>
<p class="filter">(Un)check the boxes to filter the results.</p>
<div class="summary__reload">
<div class="summary__reload__button hidden" onclick="location.reload()">
@ -432,7 +432,7 @@ div.media {
</table>
</body>
<footer>
<div id="data-container" data-jsonblob="{&#34;environment&#34;: {&#34;Python&#34;: &#34;3.12.3&#34;, &#34;Platform&#34;: &#34;Linux-6.8.0-48-generic-x86_64-with-glibc2.39&#34;, &#34;Packages&#34;: {&#34;pytest&#34;: &#34;8.3.3&#34;, &#34;pluggy&#34;: &#34;1.5.0&#34;}, &#34;Plugins&#34;: {&#34;html&#34;: &#34;4.1.1&#34;, &#34;metadata&#34;: &#34;3.1.1&#34;, &#34;anyio&#34;: &#34;4.6.2.post1&#34;}}, &#34;tests&#34;: {&#34;src/tests/test_main.py::test_new_trip_invalid_prefs&#34;: [{&#34;extras&#34;: [], &#34;result&#34;: &#34;Passed&#34;, &#34;testId&#34;: &#34;src/tests/test_main.py::test_new_trip_invalid_prefs&#34;, &#34;resultsTableRow&#34;: [&#34;&lt;td class=\&#34;col-result\&#34;&gt;Passed&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-testId\&#34;&gt;src/tests/test_main.py::test_new_trip_invalid_prefs&lt;/td&gt;&#34;, &#34;&lt;td&gt;N/A&lt;/td&gt;&#34;, &#34;&lt;td&gt;N/A&lt;/td&gt;&#34;, &#34;&lt;td&gt;N/A&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-duration\&#34;&gt;12 ms&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-links\&#34;&gt;&lt;/td&gt;&#34;], &#34;log&#34;: &#34;No log output captured.&#34;}], &#34;src/tests/test_main.py::test_turckheim&#34;: [{&#34;extras&#34;: [], &#34;result&#34;: &#34;Passed&#34;, &#34;testId&#34;: &#34;src/tests/test_main.py::test_turckheim&#34;, &#34;resultsTableRow&#34;: [&#34;&lt;td class=\&#34;col-result\&#34;&gt;Passed&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-testId\&#34;&gt;src/tests/test_main.py::test_turckheim&lt;/td&gt;&#34;, &#34;&lt;td&gt;start (0) - 5 - Porte de France (257) - 5 - finish (0) - 0&lt;/td&gt;&#34;, &#34;&lt;td&gt;15 min&lt;/td&gt;&#34;, &#34;&lt;td&gt;15 min&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-duration\&#34;&gt;18 ms&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-links\&#34;&gt;&lt;/td&gt;&#34;], &#34;log&#34;: &#34;No log output captured.&#34;}], &#34;src/tests/test_main.py::test_bellecour&#34;: [{&#34;extras&#34;: [], &#34;result&#34;: &#34;Failed&#34;, &#34;testId&#34;: &#34;src/tests/test_main.py::test_bellecour&#34;, &#34;resultsTableRow&#34;: [&#34;&lt;td class=\&#34;col-result\&#34;&gt;Failed&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-testId\&#34;&gt;src/tests/test_main.py::test_bellecour&lt;/td&gt;&#34;, &#34;&lt;td&gt;start (0) - 3 - M\u00e9morial Lyonnais du G\u00e9nocide Arm\u00e9nien (265) - 4 - \u00c9glise Saint-Fran\u00e7ois-de-Sales (211) - 7 - Basilique Saint-Martin d&#39;Ainay (333) - 11 - finish (0) - 0&lt;/td&gt;&#34;, &#34;&lt;td&gt;40 min&lt;/td&gt;&#34;, &#34;&lt;td&gt;35 min&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-duration\&#34;&gt;00:00:08&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-links\&#34;&gt;&lt;/td&gt;&#34;], &#34;log&#34;: &#34;client = &amp;lt;starlette.testclient.TestClient object at 0x7bca5bce57c0&amp;gt;\nrequest = &amp;lt;FixtureRequest for &amp;lt;Function test_bellecour&amp;gt;&amp;gt;\n\n def test_bellecour(client, request) :\n duration_minutes = 35\n response = client.post(\n &amp;quot;/trip/new&amp;quot;,\n json={\n &amp;quot;preferences&amp;quot;: {&amp;quot;sightseeing&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;sightseeing&amp;quot;, &amp;quot;score&amp;quot;: 5}, &amp;quot;nature&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;nature&amp;quot;, &amp;quot;score&amp;quot;: 5}, &amp;quot;shopping&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;shopping&amp;quot;, &amp;quot;score&amp;quot;: 5}, &amp;quot;max_time_minute&amp;quot;: duration_minutes, &amp;quot;detour_tolerance_minute&amp;quot;: 0},\n &amp;quot;start&amp;quot;: [45.7576485, 4.8330241]\n }\n )\n result = response.json()\n landmarks = load_trip_landmarks(client, result[&amp;#x27;first_landmark_uuid&amp;#x27;])\n osm_ids = landmarks_to_osmid(landmarks)\n \n # Create the trip string\n trip_string = [f&amp;quot;{landmark.name} ({landmark.attractiveness}) - {landmark.time_to_reach_next}&amp;quot; for landmark in landmarks]\n \n # Pass additional info to pytest for reporting\n request.node.trip_details = trip_string\n request.node.trip_duration = str(result[&amp;#x27;total_time&amp;#x27;])\n request.node.target_duration = str(duration_minutes)\n \n # checks :\n assert response.status_code == 200 # check for successful planning\n assert duration_minutes*0.8 &amp;lt; int(result[&amp;#x27;total_time&amp;#x27;]) &amp;lt; duration_minutes*1.2\n&amp;gt; assert 136200148 in osm_ids # check for Cath\u00e9drale St. Jean in trip\nE assert 136200148 in [0, 265922306, 82260098, 82254733, 0]\n\nsrc/tests/test_main.py:78: AssertionError\n&#34;}]}, &#34;renderCollapsed&#34;: [&#34;passed&#34;], &#34;initialSort&#34;: &#34;result&#34;, &#34;title&#34;: &#34;Backend Testing Report&#34;}"></div>
<div id="data-container" data-jsonblob="{&#34;environment&#34;: {&#34;Python&#34;: &#34;3.12.3&#34;, &#34;Platform&#34;: &#34;Linux-6.8.0-49-generic-x86_64-with-glibc2.39&#34;, &#34;Packages&#34;: {&#34;pytest&#34;: &#34;8.3.3&#34;, &#34;pluggy&#34;: &#34;1.5.0&#34;}, &#34;Plugins&#34;: {&#34;html&#34;: &#34;4.1.1&#34;, &#34;metadata&#34;: &#34;3.1.1&#34;, &#34;anyio&#34;: &#34;4.6.2.post1&#34;}}, &#34;tests&#34;: {&#34;src/tests/test_main.py::test_new_trip_invalid_prefs&#34;: [{&#34;extras&#34;: [], &#34;result&#34;: &#34;Passed&#34;, &#34;testId&#34;: &#34;src/tests/test_main.py::test_new_trip_invalid_prefs&#34;, &#34;resultsTableRow&#34;: [&#34;&lt;td class=\&#34;col-result\&#34;&gt;Passed&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-testId\&#34;&gt;src/tests/test_main.py::test_new_trip_invalid_prefs&lt;/td&gt;&#34;, &#34;&lt;td&gt;N/A&lt;/td&gt;&#34;, &#34;&lt;td&gt;N/A&lt;/td&gt;&#34;, &#34;&lt;td&gt;N/A&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-duration\&#34;&gt;15 ms&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-links\&#34;&gt;&lt;/td&gt;&#34;], &#34;log&#34;: &#34;No log output captured.&#34;}], &#34;src/tests/test_main.py::test_turckheim&#34;: [{&#34;extras&#34;: [], &#34;result&#34;: &#34;Passed&#34;, &#34;testId&#34;: &#34;src/tests/test_main.py::test_turckheim&#34;, &#34;resultsTableRow&#34;: [&#34;&lt;td class=\&#34;col-result\&#34;&gt;Passed&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-testId\&#34;&gt;src/tests/test_main.py::test_turckheim&lt;/td&gt;&#34;, &#34;&lt;td&gt;start (0) - 5 - Porte de France (257) - 5 - finish (0) - 0&lt;/td&gt;&#34;, &#34;&lt;td&gt;15 min&lt;/td&gt;&#34;, &#34;&lt;td&gt;15 min&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-duration\&#34;&gt;29 ms&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-links\&#34;&gt;&lt;/td&gt;&#34;], &#34;log&#34;: &#34;No log output captured.&#34;}], &#34;src/tests/test_main.py::test_bellecour&#34;: [{&#34;extras&#34;: [], &#34;result&#34;: &#34;Failed&#34;, &#34;testId&#34;: &#34;src/tests/test_main.py::test_bellecour&#34;, &#34;resultsTableRow&#34;: [&#34;&lt;td class=\&#34;col-result\&#34;&gt;Failed&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-testId\&#34;&gt;src/tests/test_main.py::test_bellecour&lt;/td&gt;&#34;, &#34;&lt;td&gt;start (0) - 11 - Impasse Turquet (387) - 9 - Site historique de Lyon (681) - 13 - Fontaine des Jacobins (163) - 6 - finish (0) - 0&lt;/td&gt;&#34;, &#34;&lt;td&gt;54 min&lt;/td&gt;&#34;, &#34;&lt;td&gt;50 min&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-duration\&#34;&gt;00:00:43&lt;/td&gt;&#34;, &#34;&lt;td class=\&#34;col-links\&#34;&gt;&lt;/td&gt;&#34;], &#34;log&#34;: &#34;client = &amp;lt;starlette.testclient.TestClient object at 0x79ec42b03980&amp;gt;\nrequest = &amp;lt;FixtureRequest for &amp;lt;Function test_bellecour&amp;gt;&amp;gt;\n\n def test_bellecour(client, request) :\n duration_minutes = 50\n response = client.post(\n &amp;quot;/trip/new&amp;quot;,\n json={\n &amp;quot;preferences&amp;quot;: {&amp;quot;sightseeing&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;sightseeing&amp;quot;, &amp;quot;score&amp;quot;: 5}, &amp;quot;nature&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;nature&amp;quot;, &amp;quot;score&amp;quot;: 5}, &amp;quot;shopping&amp;quot;: {&amp;quot;type&amp;quot;: &amp;quot;shopping&amp;quot;, &amp;quot;score&amp;quot;: 5}, &amp;quot;max_time_minute&amp;quot;: duration_minutes, &amp;quot;detour_tolerance_minute&amp;quot;: 0},\n &amp;quot;start&amp;quot;: [45.7576485, 4.8330241]\n }\n )\n result = response.json()\n landmarks = load_trip_landmarks(client, result[&amp;#x27;first_landmark_uuid&amp;#x27;])\n osm_ids = landmarks_to_osmid(landmarks)\n \n # Create the trip string\n trip_string = [f&amp;quot;{landmark.name} ({landmark.attractiveness}) - {landmark.time_to_reach_next}&amp;quot; for landmark in landmarks]\n \n # Pass additional info to pytest for reporting\n request.node.trip_details = trip_string\n request.node.trip_duration = str(result[&amp;#x27;total_time&amp;#x27;])\n request.node.target_duration = str(duration_minutes)\n \n # checks :\n assert response.status_code == 200 # check for successful planning\n assert duration_minutes*0.8 &amp;lt; int(result[&amp;#x27;total_time&amp;#x27;]) &amp;lt; duration_minutes*1.2\n&amp;gt; assert 136200148 in osm_ids # check for Cath\u00e9drale St. Jean in trip\nE assert 136200148 in [0, 120502985, 236823541, 25101472, 0]\n\nsrc/tests/test_main.py:78: AssertionError\n&#34;}]}, &#34;renderCollapsed&#34;: [&#34;passed&#34;], &#34;initialSort&#34;: &#34;result&#34;, &#34;title&#34;: &#34;Backend Testing Report&#34;}"></div>
<script>
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
const { getCollapsedCategory, setCollapsedIds } = require('./storage.js')

View File

@ -36,7 +36,7 @@ def test_turckheim(client, request):
landmarks = load_trip_landmarks(client, result['first_landmark_uuid'])
# Create the trip string
trip_string = [f"{landmark.name} ({landmark.attractiveness}) - {landmark.time_to_reach_next}" for landmark in landmarks]
trip_string = [f"{landmark.name} ({landmark.attractiveness} | {landmark.duration}) - {landmark.time_to_reach_next}" for landmark in landmarks]
# Pass additional info to pytest for reporting
request.node.trip_details = trip_string