[gobject-introspection] tests: add some tests for get_source_root_dirs



commit 781711c33c4252802d74908a03b0135f8c7cc17b
Author: Christoph Reiter <reiter christoph gmail com>
Date:   Tue Jan 8 13:54:33 2019 +0100

    tests: add some tests for get_source_root_dirs
    
    To make it easier to test make sure it always returns absolute paths.
    Also fix a typo, oops!

 giscanner/scannermain.py      |  4 ++--
 tests/scanner/Makefile.am     |  3 ++-
 tests/scanner/meson.build     |  1 +
 tests/scanner/test_scanner.py | 30 ++++++++++++++++++++++++++++++
 4 files changed, 35 insertions(+), 3 deletions(-)
---
diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
index b6bbe9d7..df721212 100644
--- a/giscanner/scannermain.py
+++ b/giscanner/scannermain.py
@@ -493,10 +493,10 @@ def write_output(data, options):
 
 def get_source_root_dirs(options, filenames):
     if options.sources_top_dirs:
-        return options.sources_top_dir
+        return [os.path.realpath(p) for p in options.sources_top_dirs]
 
     # None passed, we need to guess
-    assert all(os.path.isabs(f) for f in filenames)
+    filenames = [os.path.realpath(p) for p in filenames]
     dirs = sorted(set([os.path.dirname(f) for f in filenames]))
 
     # We need commonpath (3.5+), otherwise give up
diff --git a/tests/scanner/Makefile.am b/tests/scanner/Makefile.am
index 9e424d76..734f30e8 100644
--- a/tests/scanner/Makefile.am
+++ b/tests/scanner/Makefile.am
@@ -235,7 +235,8 @@ PYTESTS = \
        test_sourcescanner.py \
        test_transformer.py \
        test_xmlwriter.py \
-       test_docwriter.py
+       test_docwriter.py \
+       test_scanner.py
 
 TESTS = $(CHECKGIRS) $(CHECKDOCS) $(TYPELIBS) $(PYTESTS)
 TESTS_ENVIRONMENT = env srcdir=$(srcdir) top_srcdir=$(top_srcdir) builddir=$(builddir) 
top_builddir=$(top_builddir) \
diff --git a/tests/scanner/meson.build b/tests/scanner/meson.build
index ab5da15a..95a9dacc 100644
--- a/tests/scanner/meson.build
+++ b/tests/scanner/meson.build
@@ -12,6 +12,7 @@ scanner_test_files = [
   'test_xmlwriter.py',
   'test_pkgconfig.py',
   'test_docwriter.py',
+  'test_scanner.py',
 ]
 
 foreach f : scanner_test_files 
diff --git a/tests/scanner/test_scanner.py b/tests/scanner/test_scanner.py
new file mode 100644
index 00000000..2513c0de
--- /dev/null
+++ b/tests/scanner/test_scanner.py
@@ -0,0 +1,30 @@
+import unittest
+import optparse
+import os
+
+from giscanner.scannermain import get_source_root_dirs
+
+
+class TestScanner(unittest.TestCase):
+
+    def test_get_source_root_dirs_options(self):
+        options = optparse.Values({"sources_top_dirs": ["foo"]})
+        paths = get_source_root_dirs(options, ["nope"])
+        self.assertEqual(len(paths), 1)
+        self.assertTrue(os.path.isabs(paths[0]))
+        self.assertEqual(paths[0], os.path.join(os.getcwd(), "foo"))
+
+    def test_get_source_root_dirs_guess(self):
+        options = optparse.Values({"sources_top_dirs": []})
+        cwd = os.getcwd()
+        paths = get_source_root_dirs(
+            options, [os.path.join(cwd, "foo"), os.path.join(cwd, "bar")])
+        self.assertEqual(len(paths), 1)
+        self.assertEqual(paths[0], cwd)
+
+        paths = get_source_root_dirs(options, [])
+        self.assertEqual(paths, [])
+
+
+if __name__ == '__main__':
+    unittest.main()


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]