From: Michael Tremer Date: Mon, 22 Aug 2022 17:32:43 +0000 (+0000) Subject: tests: Add some simple database tests X-Git-Tag: 0.9.15~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c86039674394fce631555790334c89536ba7523a;p=location%2Flibloc.git tests: Add some simple database tests Signed-off-by: Michael Tremer --- diff --git a/Makefile.am b/Makefile.am index ee3c7ad..7ae0a9f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 index 0000000..76136db --- /dev/null +++ b/tests/python/test-database.py @@ -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 # +# # +# 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()