[Libosinfo] [osinfo-db-tools PATCH 4/7] tests: Add osinfo-db-path tests

Fabiano Fidêncio fidencio at redhat.com
Fri Apr 5 11:33:16 UTC 2019


Add a set of functional tests to ensure osinfo-db-path works as
expected. The covered scenarios are:
- osinfo-db-path --system
- osinfo-db-path --local
- osinfo-db-oath --user
- osinfo-db-path --dir
- osinfo-db-path --root ROOT --system

https://gitlab.com/libosinfo/osinfo-db-tools/issues/2

Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
---
 .gitignore                   |  2 ++
 tests/Makefile.am            |  5 ++-
 tests/test_osinfo_db_path.py | 70 ++++++++++++++++++++++++++++++++++++
 3 files changed, 76 insertions(+), 1 deletion(-)
 create mode 100755 tests/test_osinfo_db_path.py

diff --git a/.gitignore b/.gitignore
index 8981135..27cea41 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,6 +32,8 @@ stamp-h1
 *.spec
 build/
 tests/*.log
+tests/*.trs
+tests/__pycache__
 tools/osinfo-db-validate
 tools/osinfo-db-validate.exe
 tools/osinfo-db-validate.1
diff --git a/tests/Makefile.am b/tests/Makefile.am
index ba267ad..16b760b 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -5,6 +5,7 @@ test_helpers = \
 	$(NULL)
 
 test_programs = \
+	test_osinfo_db_path.py \
 	$(NULL)
 
 EXTRA_DIST += \
@@ -18,4 +19,6 @@ TESTS = \
 
 TESTS_ENVIRONMENT = \
 	abs_top_builddir="$(abs_top_builddir)" \
-	abs_top_srcdir="$(abs_top_srcdir)"
+	abs_top_srcdir="$(abs_top_srcdir)" \
+	datadir="$(datadir)" \
+	sysconfdir="$(sysconfdir)"
diff --git a/tests/test_osinfo_db_path.py b/tests/test_osinfo_db_path.py
new file mode 100755
index 0000000..51fa787
--- /dev/null
+++ b/tests/test_osinfo_db_path.py
@@ -0,0 +1,70 @@
+#!/usr/bin/env python3
+#
+# This work is licensed under the GNU GPLv2 or later.
+# See the COPYING file in the top-level directory.
+
+import os
+import pytest
+import sys
+import util
+
+
+DATADIR = os.environ.get("datadir")
+SYSCONFDIR = os.environ.get("sysconfdir")
+FOOBAR_DIR = "/foo/bar"
+
+
+def test_osinfo_db_path_system():
+    """
+    Test osinfo-db-path --system
+    """
+    cmd = [util.Tools.db_path, util.ToolsArgs.SYSTEM]
+    output = util.get_output(cmd)
+    expected_output = os.path.join(DATADIR, "osinfo\n")
+    assert output == expected_output
+
+
+def test_osinfo_db_path_local():
+    """
+    Test osinfo-db-path --local
+    """
+    cmd = [util.Tools.db_path, util.ToolsArgs.LOCAL]
+    output = util.get_output(cmd)
+    expected_output = os.path.join(SYSCONFDIR, "osinfo\n")
+    assert output == expected_output
+
+
+def test_osinfo_db_path_user():
+    """
+    Test osinfo-db-path --user
+    """
+    cmd = [util.Tools.db_path, util.ToolsArgs.USER]
+    output = util.get_output(cmd)
+    expected_output = os.path.join(os.environ["HOME"], ".config",
+            "osinfo\n")
+    assert output == expected_output
+
+
+def test_osinfo_db_path_dir():
+    """
+    Test osinfo-db-path --dir
+    """
+    cmd = [util.Tools.db_path, util.ToolsArgs.DIR, FOOBAR_DIR]
+    output = util.get_output(cmd)
+    expected_output = FOOBAR_DIR + "\n"
+    assert output == expected_output
+
+
+def test_osinfo_db_path_root():
+    """
+    Test osinfo-db-path --root FOOBAR_DIR --system
+    """
+    cmd = [util.Tools.db_path, util.ToolsArgs.ROOT, FOOBAR_DIR,
+            util.ToolsArgs.SYSTEM]
+    output = util.get_output(cmd)
+    expected_output = os.path.join(FOOBAR_DIR, *DATADIR.split("/"), "osinfo\n")
+    assert output == expected_output
+
+
+if __name__ == "__main__":
+    exit(pytest.main(sys.argv))
-- 
2.21.0




More information about the Libosinfo mailing list