home · contact · privacy
Add rump HTTP server/handler testing.
authorChristian Heller <c.heller@plomlompom.de>
Wed, 20 Mar 2024 01:32:07 +0000 (02:32 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Wed, 20 Mar 2024 01:32:07 +0000 (02:32 +0100)
.pylintrc
tests/test_days.py

index 80339836e456f9e97a56f4deeab696752fe18a7c..82e4d962179f10cfda7a1744d97ed91d8f268686 100644 (file)
--- a/.pylintrc
+++ b/.pylintrc
@@ -1,3 +1,3 @@
 [BASIC]
 init-hook='import sys; sys.path.append(".")'
 [BASIC]
 init-hook='import sys; sys.path.append(".")'
-good-names-rgxs=do_(GET|POST)(_[a-z]+)?,test_[A-Z]+
+good-names-rgxs=(test_)?do_(GET|POST)(_[a-z]+)?,test_[A-Z]+
index 3a6c6331c689b482d5a14296c4d5a07f747579ac..35380c690f65c5fa18029311f5c7446667c1f116 100644 (file)
@@ -1,7 +1,10 @@
 """Test days module."""
 from unittest import TestCase
 """Test days module."""
 from unittest import TestCase
+from threading import Thread
+from http.client import HTTPConnection
 from datetime import datetime
 from os import remove as remove_file
 from datetime import datetime
 from os import remove as remove_file
+from plomtask.http import TaskHandler, TaskServer
 from plomtask.days import Day
 from plomtask.misc import HandledException
 from plomtask.db import DatabaseFile, DatabaseConnection
 from plomtask.days import Day
 from plomtask.misc import HandledException
 from plomtask.db import DatabaseFile, DatabaseConnection
@@ -97,3 +100,27 @@ class TestsWithDB(TestCase):
         d2.save(self.db_conn)
         day_retrieved = Day.by_date(self.db_conn, d2.date)
         self.assertEqual(day_retrieved.comment, 'foo')
         d2.save(self.db_conn)
         day_retrieved = Day.by_date(self.db_conn, d2.date)
         self.assertEqual(day_retrieved.comment, 'foo')
+
+
+class TestsWithServer(TestsWithDB):
+    """Tests against our HTTP server/handler (and database)."""
+
+    def setUp(self):
+        super().setUp()
+        self.httpd = TaskServer(self.db_file, ('localhost', 0), TaskHandler)
+        self.server_thread = Thread(target=self.httpd.serve_forever)
+        self.server_thread.daemon = True
+        self.server_thread.start()
+
+    def test_do_GET_day(self):
+        """Test /day response."""
+        conn = HTTPConnection(*self.httpd.server_address)
+        conn.request('GET', '/day')
+        response = conn.getresponse()
+        self.assertEqual(response.status, 200)
+
+    def tearDown(self):
+        self.httpd.shutdown()
+        self.httpd.server_close()
+        self.server_thread.join()
+        super().tearDown()