aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python
diff options
context:
space:
mode:
authorVratko Polak <vrpolak@cisco.com>2018-09-14 17:09:35 +0200
committerVratko Polak <vrpolak@cisco.com>2019-02-28 13:46:34 +0100
commit8fedbb66528646f2d9afaf1b640c99dbf75b969b (patch)
treeac1db897ed41b609c1566582856ef55593e1e68d /resources/libraries/python
parent583ba8182192de288f5b9a291ac5aaa13a4dc8ab (diff)
Add tox.ini and few checker scripts
(cherry-pick from master, also pasted current bash code style) 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')
-rw-r--r--resources/libraries/python/autogen/Copyright.py29
-rw-r--r--resources/libraries/python/autogen/Regenerator.py29
2 files changed, 23 insertions, 35 deletions
diff --git a/resources/libraries/python/autogen/Copyright.py b/resources/libraries/python/autogen/Copyright.py
deleted file mode 100644
index e8c72f0624..0000000000
--- a/resources/libraries/python/autogen/Copyright.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2018 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:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Module defining sole constant holding copyright text for current year."""
-
-
-COPYRIGHT = '''# Copyright (c) 2018 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:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-''' \ No newline at end of file
diff --git a/resources/libraries/python/autogen/Regenerator.py b/resources/libraries/python/autogen/Regenerator.py
index 8bfe054e5e..c822b16d10 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
@@ -129,7 +143,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},
@@ -146,7 +161,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])
@@ -155,5 +171,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.