aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/autogen/Regenerator.py
diff options
context:
space:
mode:
authorVratko Polak <vrpolak@cisco.com>2018-09-14 17:09:35 +0200
committerVratko Polak <vrpolak@cisco.com>2019-02-27 09:02:55 +0000
commit694b418272e9d7670ac69d477ed731bb7445b65a (patch)
tree2ec006cb61562bddabbf4cd68ba8ef5963694768 /resources/libraries/python/autogen/Regenerator.py
parent228c27de3986731fc6be39445dd0b23b4003d78c (diff)
Add tox.ini and few checker scripts
The plan is to change csit-validate-pylint-master job to fail if (and only if) tox fails. This will allow us to easily add checks, with or without the voting power. Each check produces log (ignored in .gitignore) the voting job can archive. + Made autogen quiet by default, to avoid spam in autogen checker. + Unified the way direct csit subdirectories are git-ignored. Change-Id: I6477b1ef7da6d3e30f68c5850d04900cc52f431e Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Diffstat (limited to 'resources/libraries/python/autogen/Regenerator.py')
-rw-r--r--resources/libraries/python/autogen/Regenerator.py29
1 files changed, 23 insertions, 6 deletions
diff --git a/resources/libraries/python/autogen/Regenerator.py b/resources/libraries/python/autogen/Regenerator.py
index 64bcea917d..bae0e4f9fe 100644
--- a/resources/libraries/python/autogen/Regenerator.py
+++ b/resources/libraries/python/autogen/Regenerator.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
+# Copyright (c) 2019 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -13,16 +13,25 @@
"""Module defining utilities for test directory regeneration."""
+from __future__ import print_function
+
from glob import glob
from os import getcwd
+import sys
from .DefaultTestcase import DefaultTestcase
+# Copied from https://stackoverflow.com/a/14981125
+def eprint(*args, **kwargs):
+ """Print to stderr."""
+ print(*args, file=sys.stderr, **kwargs)
+
+
class Regenerator(object):
"""Class containing file generating methods."""
- def __init__(self, testcase_class=DefaultTestcase):
+ def __init__(self, testcase_class=DefaultTestcase, quiet=True):
"""Initialize Testcase class to use.
TODO: See the type doc for testcase_class?
@@ -31,9 +40,12 @@ class Regenerator(object):
:param testcase_class: Subclass of DefaultTestcase for generation.
Default: DefaultTestcase
+ :param quiet: Reduce log prints (to stderr) when True (default).
:type testcase_class: subclass of DefaultTestcase accepting suite_id
+ :type quiet: boolean
"""
self.testcase_class = testcase_class
+ self.quiet = quiet
def regenerate_glob(self, pattern, protocol="ip4", tc_kwargs_list=None):
"""Regenerate files matching glob pattern based on arguments.
@@ -43,6 +55,8 @@ class Regenerator(object):
test cases, autonumbering them, taking arguments from list.
If the list is None, use default list, which depends on ip6 usage.
+ Log-like prints are emited to sys.stderr.
+
:param pattern: Glob pattern to select files. Example: *-ndrpdr.robot
:param is_ip6: Flag determining minimal frame size. Default: False
:param tc_kwargs_list: Arguments defining the testcases. Default: None
@@ -140,7 +154,8 @@ class Regenerator(object):
num = add_testcase(testcase, iface, suite_id, file_out, num,
**tc_kwargs)
- print "Regenerator starts at {cwd}".format(cwd=getcwd())
+ if not self.quiet:
+ eprint("Regenerator starts at {cwd}".format(cwd=getcwd()))
min_framesize = protocol_to_min_framesize[protocol]
kwargs_list = tc_kwargs_list if tc_kwargs_list else [
{"framesize": min_framesize, "phy_cores": 1},
@@ -157,7 +172,8 @@ class Regenerator(object):
{"framesize": "IMIX_v4_1", "phy_cores": 4}
]
for filename in glob(pattern):
- print "Regenerating filename:", filename
+ if not self.quiet:
+ eprint("Regenerating filename:", filename)
with open(filename, "r") as file_in:
text = file_in.read()
text_prolog = "".join(text.partition("*** Test Cases ***")[:-1])
@@ -166,5 +182,6 @@ class Regenerator(object):
with open(filename, "w") as file_out:
file_out.write(text_prolog)
add_testcases(testcase, iface, suite_id, file_out, kwargs_list)
- print "Regenerator ends."
- print # To make autogen check output more readable.
+ if not self.quiet:
+ eprint("Regenerator ends.")
+ eprint() # To make autogen check output more readable.