[PATCH] Add optional copy_files attribute

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

msuraev at sysmocom.de msuraev at sysmocom.de
Thu Mar 31 13:23:16 UTC 2016


From: Max <msuraev at sysmocom.de>

This allows to specify additional files which shall be copied into
temporary directory where tests are executed.
---
 osmopy/osmotestconfig.py | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/osmopy/osmotestconfig.py b/osmopy/osmotestconfig.py
index b020d86..1e72d4b 100644
--- a/osmopy/osmotestconfig.py
+++ b/osmopy/osmotestconfig.py
@@ -18,20 +18,20 @@ import os
 import os.path
 import time
 import sys
-import tempfile
+import tempfile, shutil
 
 import osmopy.obscvty as obscvty
 import osmopy.osmoutil as osmoutil
 
 
 # Return true iff all the tests for the given config pass
-def test_config(app_desc, config, tmpdir, verbose=True):
+def test_config(app_desc, config, tmpdir, copy_files, verbose=True):
     try:
         err = 0
         if test_config_atest(app_desc, config, verify_doc, verbose)[0] > 0:
             err += 1
 
-        newconfig = copy_config(tmpdir, config)
+        newconfig = copy_config(tmpdir, config, copy_files)
         if test_config_atest(app_desc, newconfig, write_config, verbose) > 0:
             err += 1
 
@@ -73,7 +73,7 @@ def test_config_atest(app_desc, config, run_test, verbose=True):
     return ret
 
 
-def copy_config(dirname, config):
+def copy_config(dirname, config, copy_files):
     try:
         os.stat(dirname)
     except OSError:
@@ -82,6 +82,9 @@ def copy_config(dirname, config):
         remove_tmpdir(dirname)
         os.mkdir(dirname)
 
+    for f in copy_files:
+        shutil.copy(f, dirname)
+
     prefix = os.path.basename(config)
     tmpfile = tempfile.NamedTemporaryFile(
         dir=dirname, prefix=prefix, delete=False)
@@ -155,9 +158,10 @@ def check_configs_tested(basedir, app_configs, ignore_configs):
 
 
 def test_all_apps(apps, app_configs, tmpdir="writtenconfig", verbose=True,
-                  confpath=".", rmtmp=False, ignore_configs=[]):
+                  confpath=".", rmtmp=False, ignore_configs=[], copy_files=[]):
     check_configs_tested("doc/examples/", app_configs, ignore_configs)
     errors = 0
+
     for app in apps:
         if not app_exists(app):
             print >> sys.stderr, "Skipping app %s (not found)" % app[1]
@@ -166,7 +170,7 @@ def test_all_apps(apps, app_configs, tmpdir="writtenconfig", verbose=True,
         configs = app_configs[app[3]]
         for config in configs:
             config = os.path.join(confpath, config)
-            errors |= test_config(app, config, tmpdir, verbose)
+            errors |= test_config(app, config, tmpdir, copy_files, verbose)
 
     if rmtmp or not errors:
         remove_tmpdir(tmpdir)
@@ -203,10 +207,12 @@ if __name__ == '__main__':
     apps = osmoappdesc.apps
     configs = osmoappdesc.app_configs
     ignores = getattr(osmoappdesc, 'ignore_configs', [])
+    copycat = getattr(osmoappdesc, 'copy_files', [])
 
     if args.e1nitb:
         configs['nitb'].extend(osmoappdesc.nitb_e1_configs)
 
     os.chdir(workdir)
     sys.exit(test_all_apps(apps, configs, ignore_configs=ignores,
-                           confpath=confpath, verbose=args.verbose))
+                           confpath=confpath, copy_files=copycat,
+                           verbose=args.verbose))
-- 
2.8.0




More information about the OpenBSC mailing list