[tracker/sam/index-file-sync: 9/11] functional-tests: Add tracker_test_main()



commit 73a9c9ceabcb8bbc34e8b922cc29f68aae430c37
Author: Sam Thursfield <sam afuera me uk>
Date:   Sat Mar 21 16:51:39 2020 +0100

    functional-tests: Add tracker_test_main()
    
    This wraps unittest.main() but also sets up logging correctly.
    Previously the logging setup happened as a sideeffect of importing
    the 'configuration' module, which was not a good approach.

 tests/functional-tests/cli.py              |  2 +-
 tests/functional-tests/coalesce.py         |  2 +-
 tests/functional-tests/collation.py        |  2 +-
 tests/functional-tests/concurrent-query.py |  2 +-
 tests/functional-tests/configuration.py    | 16 ++--------------
 tests/functional-tests/distance.py         |  2 +-
 tests/functional-tests/fixtures.py         | 22 ++++++++++++++++++++++
 tests/functional-tests/fts-functions.py    |  2 +-
 tests/functional-tests/graph.py            |  2 +-
 tests/functional-tests/group-concat.py     |  2 +-
 tests/functional-tests/insertion.py        |  2 +-
 tests/functional-tests/notifier.py         |  2 +-
 tests/functional-tests/ontology-changes.py |  3 ++-
 tests/functional-tests/query.py            |  2 +-
 tests/functional-tests/sparql-bugs.py      |  2 +-
 15 files changed, 38 insertions(+), 27 deletions(-)
---
diff --git a/tests/functional-tests/cli.py b/tests/functional-tests/cli.py
index 885d22b00..199be2470 100644
--- a/tests/functional-tests/cli.py
+++ b/tests/functional-tests/cli.py
@@ -82,4 +82,4 @@ class TestCli(fixtures.TrackerCommandLineTestCase):
 
 
 if __name__ == '__main__':
-    unittest.main(verbosity=2)
+    fixtures.tracker_test_main()
diff --git a/tests/functional-tests/coalesce.py b/tests/functional-tests/coalesce.py
index e03ac2644..f8961edf7 100644
--- a/tests/functional-tests/coalesce.py
+++ b/tests/functional-tests/coalesce.py
@@ -116,4 +116,4 @@ class TestCoalesce (fixtures.TrackerSparqlDirectTest):
 
 
 if __name__ == '__main__':
-    ut.main(verbosity=2)
+    fixtures.tracker_test_main()
diff --git a/tests/functional-tests/collation.py b/tests/functional-tests/collation.py
index db662c4d9..2b46b46e2 100644
--- a/tests/functional-tests/collation.py
+++ b/tests/functional-tests/collation.py
@@ -132,4 +132,4 @@ if __name__ == "__main__":
       * Check what happens in non-english encoding
       * Dynamic change of collation (not implemented yet in tracker)
     """)
-    ut.main(verbosity=2)
+    fixtures.tracker_test_main()
diff --git a/tests/functional-tests/concurrent-query.py b/tests/functional-tests/concurrent-query.py
index 90a0eb80c..9620756b4 100644
--- a/tests/functional-tests/concurrent-query.py
+++ b/tests/functional-tests/concurrent-query.py
@@ -105,4 +105,4 @@ class TestConcurrentQueryBus(fixtures.TrackerSparqlBusTest, ConcurrentQueryTests
 
 
 if __name__ == "__main__":
-    ut.main(verbosity=2)
+    fixtures.tracker_test_main()
diff --git a/tests/functional-tests/configuration.py b/tests/functional-tests/configuration.py
index 60db8cade..d49d228f7 100644
--- a/tests/functional-tests/configuration.py
+++ b/tests/functional-tests/configuration.py
@@ -69,17 +69,5 @@ def get_environment_int(variable, default=0):
         return default
 
 
-if get_environment_boolean('TRACKER_TESTS_VERBOSE'):
-    # Output all logs to stderr
-    logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
-else:
-    # Output some messages from D-Bus daemon to stderr by default. In practice,
-    # only errors and warnings should be output here unless the environment
-    # contains G_MESSAGES_DEBUG= and/or TRACKER_VERBOSITY=1 or more.
-    handler_stderr = logging.StreamHandler(stream=sys.stderr)
-    handler_stderr.addFilter(logging.Filter('trackertestutils.dbusdaemon.stderr'))
-    handler_stdout = logging.StreamHandler(stream=sys.stderr)
-    handler_stdout.addFilter(logging.Filter('trackertestutils.dbusdaemon.stdout'))
-    logging.basicConfig(level=logging.INFO,
-                        handlers=[handler_stderr, handler_stdout],
-                        format='%(message)s')
+def tests_verbose():
+    return get_environment_boolean('TRACKER_TESTS_VERBOSE')
diff --git a/tests/functional-tests/distance.py b/tests/functional-tests/distance.py
index 47e016b3a..746153b1c 100644
--- a/tests/functional-tests/distance.py
+++ b/tests/functional-tests/distance.py
@@ -126,4 +126,4 @@ class TestDistanceFunctions (fixtures.TrackerSparqlDirectTest):
 
 
 if __name__ == '__main__':
-    ut.main(verbosity=2)
+    fixtures.tracker_test_main()
diff --git a/tests/functional-tests/fixtures.py b/tests/functional-tests/fixtures.py
index a047995e9..7e715c3f0 100644
--- a/tests/functional-tests/fixtures.py
+++ b/tests/functional-tests/fixtures.py
@@ -34,6 +34,7 @@ import pathlib
 import multiprocessing
 import shutil
 import subprocess
+import sys
 import tempfile
 import unittest as ut
 
@@ -43,6 +44,27 @@ import configuration as cfg
 log = logging.getLogger(__name__)
 
 
+def tracker_test_main():
+    """Entry point that all functional-test modules must call."""
+
+    if cfg.tests_verbose():
+        # Output all logs to stderr
+        logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
+    else:
+        # Output some messages from D-Bus daemon to stderr by default. In practice,
+        # only errors and warnings should be output here unless the environment
+        # contains G_MESSAGES_DEBUG= and/or TRACKER_VERBOSITY=1 or more.
+        handler_stderr = logging.StreamHandler(stream=sys.stderr)
+        handler_stderr.addFilter(logging.Filter('trackertestutils.dbusdaemon.stderr'))
+        handler_stdout = logging.StreamHandler(stream=sys.stderr)
+        handler_stdout.addFilter(logging.Filter('trackertestutils.dbusdaemon.stdout'))
+        logging.basicConfig(level=logging.INFO,
+                            handlers=[handler_stderr, handler_stdout],
+                            format='%(message)s')
+
+    ut.main(verbosity=2)
+
+
 class TrackerSparqlDirectTest(ut.TestCase):
     """
     Fixture for tests using a direct (local) connection to a Tracker database.
diff --git a/tests/functional-tests/fts-functions.py b/tests/functional-tests/fts-functions.py
index a92a8ff3f..e1b33bc1c 100644
--- a/tests/functional-tests/fts-functions.py
+++ b/tests/functional-tests/fts-functions.py
@@ -127,4 +127,4 @@ class TestFTSFunctions (fixtures.TrackerSparqlDirectTest):
 
 
 if __name__ == '__main__':
-    ut.main(verbosity=2)
+    fixtures.tracker_test_main()
diff --git a/tests/functional-tests/graph.py b/tests/functional-tests/graph.py
index f24323769..1b93df467 100644
--- a/tests/functional-tests/graph.py
+++ b/tests/functional-tests/graph.py
@@ -146,4 +146,4 @@ class TestGraphs (fixtures.TrackerSparqlDirectTest):
 
 
 if __name__ == '__main__':
-    ut.main(verbosity=2)
+    fixtures.tracker_test_main()
diff --git a/tests/functional-tests/group-concat.py b/tests/functional-tests/group-concat.py
index 9b471d71c..7cb2e907e 100644
--- a/tests/functional-tests/group-concat.py
+++ b/tests/functional-tests/group-concat.py
@@ -89,4 +89,4 @@ class TestGroupConcat (fixtures.TrackerSparqlDirectTest):
 
 
 if __name__ == '__main__':
-    ut.main(verbosity=2)
+    fixtures.tracker_test_main()
diff --git a/tests/functional-tests/insertion.py b/tests/functional-tests/insertion.py
index cd56fa85c..fc1f3671e 100644
--- a/tests/functional-tests/insertion.py
+++ b/tests/functional-tests/insertion.py
@@ -787,4 +787,4 @@ class TrackerStorePhoneNumberTest (fixtures.TrackerSparqlDirectTest):
 
 
 if __name__ == "__main__":
-    ut.main(verbosity=2)
+    fixtures.tracker_test_main()
diff --git a/tests/functional-tests/notifier.py b/tests/functional-tests/notifier.py
index c6265f0d1..fc708f92b 100644
--- a/tests/functional-tests/notifier.py
+++ b/tests/functional-tests/notifier.py
@@ -176,4 +176,4 @@ class TrackerBusNotifierTest (fixtures.TrackerSparqlBusTest, TrackerNotifierTest
 
 
 if __name__ == "__main__":
-    ut.main(verbosity=2)
+    fixtures.tracker_test_main()
diff --git a/tests/functional-tests/ontology-changes.py b/tests/functional-tests/ontology-changes.py
index 867159e35..753b1eb4a 100644
--- a/tests/functional-tests/ontology-changes.py
+++ b/tests/functional-tests/ontology-changes.py
@@ -39,6 +39,7 @@ import trackertestutils.dconf
 import trackertestutils.helpers
 
 import configuration as cfg
+import fixtures
 
 
 RDFS_RANGE = "http://www.w3.org/2000/01/rdf-schema#range";
@@ -909,4 +910,4 @@ class PropertyRelegationTest (OntologyChangeTestTemplate):
 
 
 if __name__ == "__main__":
-    ut.main(verbosity=2)
+    fixtures.tracker_test_main()
diff --git a/tests/functional-tests/query.py b/tests/functional-tests/query.py
index e9ec3fabd..18a29b6f1 100644
--- a/tests/functional-tests/query.py
+++ b/tests/functional-tests/query.py
@@ -70,4 +70,4 @@ class TrackerBusQueryTest (fixtures.TrackerSparqlBusTest, TrackerQueryTests):
 
 
 if __name__ == "__main__":
-    ut.main(verbosity=2)
+    fixtures.tracker_test_main()
diff --git a/tests/functional-tests/sparql-bugs.py b/tests/functional-tests/sparql-bugs.py
index 9d6f527d4..ff997d2f1 100644
--- a/tests/functional-tests/sparql-bugs.py
+++ b/tests/functional-tests/sparql-bugs.py
@@ -239,4 +239,4 @@ class TrackerStoreSparqlBugsTests (fixtures.TrackerSparqlDirectTest):
 
 
 if __name__ == "__main__":
-    ut.main(verbosity=2)
+    fixtures.tracker_test_main()


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