]> git.ipfire.org Git - location/libloc.git/commitdiff
tests: Add some simple database tests
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 22 Aug 2022 17:32:43 +0000 (17:32 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 22 Aug 2022 17:32:43 +0000 (17:32 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Makefile.am
tests/python/test-database.py [new file with mode: 0755]

index ee3c7add1925ffb5836b7981a7c4b56c20b00672..7ae0a9fe27abd4f6661ce222737da0330402ad07 100644 (file)
@@ -344,6 +344,7 @@ testdata.db: examples/python/create-database.py
                $(PYTHON) $< $@
 
 dist_check_SCRIPTS = \
+       tests/python/test-database.py \
        tests/python/test-export.py
 
 check_PROGRAMS = \
diff --git a/tests/python/test-database.py b/tests/python/test-database.py
new file mode 100755 (executable)
index 0000000..76136db
--- /dev/null
@@ -0,0 +1,43 @@
+#!/usr/bin/python3
+###############################################################################
+#                                                                             #
+# libloc - A library to determine the location of someone on the Internet     #
+#                                                                             #
+# Copyright (C) 2022 IPFire Development Team <info@ipfire.org>                #
+#                                                                             #
+# This library is free software; you can redistribute it and/or               #
+# modify it under the terms of the GNU Lesser General Public                  #
+# License as published by the Free Software Foundation; either                #
+# version 2.1 of the License, or (at your option) any later version.          #
+#                                                                             #
+# This library is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU           #
+# Lesser General Public License for more details.                             #
+#                                                                             #
+###############################################################################
+
+import location
+import os
+import unittest
+
+TEST_DATA_DIR = os.environ["TEST_DATA_DIR"]
+
+class Test(unittest.TestCase):
+       def setUp(self):
+               path = os.path.join(TEST_DATA_DIR, "location-2022-03-30.db")
+
+               # Load the database
+               self.db = location.Database(path)
+
+       def test_fetch_network(self):
+               n = self.db.lookup("81.3.27.38")
+               self.assertIsInstance(n, location.Network)
+
+       def test_fetch_network_invalid(self):
+               with self.assertRaises(ValueError):
+                       self.db.lookup("XXX")
+
+
+if __name__ == "__main__":
+       unittest.main()