]> git.ipfire.org Git - location/libloc.git/commitdiff
tests: Add a simple test that lists all networks
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 30 Mar 2022 14:57:13 +0000 (14:57 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 30 Mar 2022 14:57:13 +0000 (14:57 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Makefile.am
tests/python/test-export.py [new file with mode: 0755]

index 9e76955c3d07d4cfb388b34bf89270d3ece119f5..129e6d862cb1664c6a209dec52881f1e9a5660bb 100644 (file)
@@ -320,6 +320,9 @@ TESTS_LDADD = \
        src/libloc.la \
        src/libloc-internal.la
 
+TESTS_ENVIRONMENT = \
+       TEST_DATA_DIR="$(abs_top_srcdir)/tests/data"
+
 TESTS = \
        src/test-libloc \
        src/test-stringpool \
@@ -328,7 +331,11 @@ TESTS = \
        src/test-network \
        src/test-country \
        src/test-signature \
-       src/test-address
+       src/test-address \
+       tests/python/test-export.py
+
+EXTRA_DIST += \
+       tests/data/location-2022-03-30.db
 
 CLEANFILES += \
        testdata.db
diff --git a/tests/python/test-export.py b/tests/python/test-export.py
new file mode 100755 (executable)
index 0000000..cef87b3
--- /dev/null
@@ -0,0 +1,49 @@
+#!/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_list_networks(self):
+               """
+                       Lists all available networks
+               """
+               for network in self.db.networks:
+                       print(network)
+
+       def test_list_networks_flattened(self):
+               """
+                       Lists all networks but flattened
+               """
+               for network in self.db.networks_flattened:
+                       print(network)
+
+
+if __name__ == "__main__":
+       unittest.main()