Message ID | 1459430596-9066-1-git-send-email-msuraev@sysmocom.de |
---|---|
State | New |
Headers | show |
> On 31 Mar 2016, at 15:23, msuraev@sysmocom.de wrote: > > From: Max <msuraev@sysmocom.de> > > This allows to specify additional files which shall be copied into > temporary directory where tests are executed. when we chatted I had something like this in make make_tmp_dir copy_recursively(orig, tmp_dir) run(tmp_dir/cfg_file) was your approach more simple?
On 03/31/2016 04:19 PM, Holger Freyther wrote: >> On 31 Mar 2016, at 15:23, msuraev@sysmocom.de wrote: >> >> From: Max <msuraev@sysmocom.de> >> >> This allows to specify additional files which shall be copied into >> temporary directory where tests are executed. > when we chatted I had something like this in make > > make_tmp_dir > copy_recursively(orig, tmp_dir) > run(tmp_dir/cfg_file) > > was your approach more simple? > Yes - instead of trying to re-create directory structure (which would make test runner unnecessary complex) I simply copy necessary additional configs explicitly. Using extension other than .cfg makes sure that they won't be copied (this one is recursive already btw) by config tester.
> On 06 Apr 2016, at 17:20, Max <msuraev@sysmocom.de> wrote: > > >> was your approach more simple? >> > Yes - instead of trying to re-create directory structure (which would > make test runner unnecessary complex) I simply copy necessary additional > configs explicitly. Using extension other than .cfg makes sure that they > won't be copied (this one is recursive already btw) by config tester. yes, but the code seems to be more involved than: shutil.copytree Can't we simplify the code by using this routine instead of having an extra list of files to copy?
> On 06 Apr 2016, at 15:03, Holger Freyther <holger@freyther.de> wrote: > > Max, > yes, but the code seems to be more involved than: > > shutil.copytree > > Can't we simplify the code by using this routine instead of having an extra list of files to copy? is this still relevant? Or old because of the other patch? holger
No, it's superseded by another patch. On 04/12/2016 04:06 PM, Holger Freyther wrote: >> On 06 Apr 2016, at 15:03, Holger Freyther <holger@freyther.de> wrote: >> >> > Max, > > >> yes, but the code seems to be more involved than: >> >> shutil.copytree >> >> Can't we simplify the code by using this routine instead of having an extra list of files to copy? > is this still relevant? Or old because of the other patch? > > holger
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))
From: Max <msuraev@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(-)