From 71aa22191386f114e6fd0e066e9b09d167f70179 Mon Sep 17 00:00:00 2001 From: Joe LeVeque Date: Fri, 13 Nov 2020 12:17:10 -0800 Subject: [PATCH] [tests] Do not trim from PATH if we did not append to it; Clean up/fix shebangs in scripts (#1233) Some tests were trimming the last item from system PATH, but they never appended anything to it, thus these tests were trimming valid entries from the tail of the system path, which in turn caused scripts with shebangs like `#!/usr/bin/env python` to fail, because once `/usr/bin` was removed from PATH, `python` could not be found. **- How I did it** - Remove lines which trimmed the last entry from system PATH in the teardown function if nothing was appended to PATH in the setup method. - Remove shebangs from non-executable Python files - Fix shebangs which had a space in them - Replace `#!/usr/bin/python` shebangs with the preferred, more portable `#!/usr/bin/env python` in executable scripts --- clear/main.py | 2 -- config/kube.py | 3 --- connect/main.py | 2 -- counterpoll/main.py | 2 -- debug/main.py | 3 --- pfcwd/main.py | 2 -- scripts/aclshow | 3 ++- scripts/dump_nat_entries.py | 2 +- scripts/ecnconfig | 3 ++- scripts/fanshow | 3 ++- scripts/fdbclear | 3 ++- scripts/fdbshow | 3 ++- scripts/gearboxutil | 2 +- scripts/intfutil | 2 +- scripts/mmuconfig | 3 ++- scripts/natclear | 3 ++- scripts/natconfig | 2 +- scripts/natshow | 2 +- scripts/nbrshow | 3 ++- scripts/portconfig | 3 ++- scripts/psushow | 2 +- scripts/sfpshow | 3 ++- scripts/sonic-kdump-config | 3 ++- scripts/sonic_sku_create.py | 3 ++- scripts/tempershow | 3 ++- scripts/watermarkstat | 2 +- show/kube.py | 3 --- show/main.py | 2 -- sonic_installer/main.py | 2 -- tests/crm_test.py | 2 -- tests/sflow_test.py | 1 - tests/show_breakout_test.py | 1 - tests/show_platform_test.py | 1 - tests/system_health_test.py | 2 -- undebug/main.py | 3 --- 35 files changed, 33 insertions(+), 51 deletions(-) diff --git a/clear/main.py b/clear/main.py index 23cbeb7e7d..a1dcc4d237 100755 --- a/clear/main.py +++ b/clear/main.py @@ -1,5 +1,3 @@ -#! /usr/bin/python -u - import click import os import subprocess diff --git a/config/kube.py b/config/kube.py index b98b22da6a..5726d7881d 100644 --- a/config/kube.py +++ b/config/kube.py @@ -1,6 +1,3 @@ -#!/usr/bin/python -u -# -*- coding: utf-8 -*- - import fcntl import os import shutil diff --git a/connect/main.py b/connect/main.py index 224bd0174a..939db4b0c8 100755 --- a/connect/main.py +++ b/connect/main.py @@ -1,5 +1,3 @@ -#! /usr/bin/python -u - import click import os import pexpect diff --git a/counterpoll/main.py b/counterpoll/main.py index 079ec2fce1..dbbbe7aac5 100644 --- a/counterpoll/main.py +++ b/counterpoll/main.py @@ -1,5 +1,3 @@ -#! /usr/bin/python -u - import click import json import swsssdk diff --git a/debug/main.py b/debug/main.py index cbcca05064..b91d22e78a 100755 --- a/debug/main.py +++ b/debug/main.py @@ -1,6 +1,3 @@ -#! /usr/bin/python -u -# date: 07/12/17 - import click import subprocess diff --git a/pfcwd/main.py b/pfcwd/main.py index 6c96c3b749..1076fa5e1b 100644 --- a/pfcwd/main.py +++ b/pfcwd/main.py @@ -1,5 +1,3 @@ -#! /usr/bin/python -u - import os import sys diff --git a/scripts/aclshow b/scripts/aclshow index 22c263d405..7e4c42a435 100755 --- a/scripts/aclshow +++ b/scripts/aclshow @@ -1,4 +1,5 @@ -#!/usr/bin/python +#!/usr/bin/env python + """ using aclshow to display SONiC switch acl rules and counters diff --git a/scripts/dump_nat_entries.py b/scripts/dump_nat_entries.py index 5535394907..09899b8336 100644 --- a/scripts/dump_nat_entries.py +++ b/scripts/dump_nat_entries.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python """" Description: dump_nat_entries.py -- dump conntrack nat entries from kernel into a file diff --git a/scripts/ecnconfig b/scripts/ecnconfig index f9adad1d4e..4102f9d586 100755 --- a/scripts/ecnconfig +++ b/scripts/ecnconfig @@ -1,4 +1,5 @@ -#!/usr/bin/python +#!/usr/bin/env python + """ ecnconfig is the utility to diff --git a/scripts/fanshow b/scripts/fanshow index e375e79d6c..e8d41c7517 100755 --- a/scripts/fanshow +++ b/scripts/fanshow @@ -1,4 +1,5 @@ -#!/usr/bin/python +#!/usr/bin/env python + """ Script to show fan status. """ diff --git a/scripts/fdbclear b/scripts/fdbclear index 522d78d13c..18fa286484 100644 --- a/scripts/fdbclear +++ b/scripts/fdbclear @@ -1,4 +1,5 @@ -#!/usr/bin/python +#!/usr/bin/env python + """ Script to clear MAC/FDB entries learnt in Hardware diff --git a/scripts/fdbshow b/scripts/fdbshow index 14aea41544..b9f38a71fe 100755 --- a/scripts/fdbshow +++ b/scripts/fdbshow @@ -1,4 +1,5 @@ -#!/usr/bin/python +#!/usr/bin/env python + """ Script to show MAC/FDB entries learnt in Hardware diff --git a/scripts/gearboxutil b/scripts/gearboxutil index 678b6b6484..f6027ea022 100755 --- a/scripts/gearboxutil +++ b/scripts/gearboxutil @@ -1,4 +1,4 @@ -#! /usr/bin/python +#!/usr/bin/env python import swsssdk import sys diff --git a/scripts/intfutil b/scripts/intfutil index 8ba3a9bb6b..eff145b9eb 100755 --- a/scripts/intfutil +++ b/scripts/intfutil @@ -1,4 +1,4 @@ -#! /usr/bin/python +#!/usr/bin/env python import argparse import os diff --git a/scripts/mmuconfig b/scripts/mmuconfig index 2ae7770178..ed9d2e52d3 100644 --- a/scripts/mmuconfig +++ b/scripts/mmuconfig @@ -1,4 +1,5 @@ -#!/usr/bin/python +#!/usr/bin/env python + """ mmuconfig is the utility to show and change mmu configuration diff --git a/scripts/natclear b/scripts/natclear index b2a516a0f5..37af71c8db 100644 --- a/scripts/natclear +++ b/scripts/natclear @@ -1,4 +1,5 @@ -#!/usr/bin/python +#!/usr/bin/env python + """ Script to clear nat dynamic entries from Hardware and also to clear the nat statistics diff --git a/scripts/natconfig b/scripts/natconfig index 4fdf80991d..7fd0726f54 100644 --- a/scripts/natconfig +++ b/scripts/natconfig @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python """ Script to show nat configuration diff --git a/scripts/natshow b/scripts/natshow index c13120983d..0599c759ae 100644 --- a/scripts/natshow +++ b/scripts/natshow @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python """ Script to show nat entries and nat statistics in a summary view diff --git a/scripts/nbrshow b/scripts/nbrshow index 73c5c67e07..f210f99d90 100644 --- a/scripts/nbrshow +++ b/scripts/nbrshow @@ -1,4 +1,5 @@ -#!/usr/bin/python +#!/usr/bin/env python + """ Script to show Ipv4/Ipv6 neighbor entries diff --git a/scripts/portconfig b/scripts/portconfig index 0c9a47e8a0..5f700a1cf3 100755 --- a/scripts/portconfig +++ b/scripts/portconfig @@ -1,4 +1,5 @@ -#!/usr/bin/python +#!/usr/bin/env python + """ portconfig is the utility to show and change ECN configuration diff --git a/scripts/psushow b/scripts/psushow index 20b2aa1e5f..b3af3faa83 100755 --- a/scripts/psushow +++ b/scripts/psushow @@ -1,4 +1,4 @@ -#! /usr/bin/python +#!/usr/bin/env python import argparse import sys diff --git a/scripts/sfpshow b/scripts/sfpshow index 1875e832c5..43f243ceb9 100755 --- a/scripts/sfpshow +++ b/scripts/sfpshow @@ -1,4 +1,5 @@ -#!/usr/bin/python +#!/usr/bin/env python + """ Script to show sfp eeprom and presence status. Not like sfputil this scripts get the sfp data from DB directly. diff --git a/scripts/sonic-kdump-config b/scripts/sonic-kdump-config index c19b4dea16..5ef5a136ce 100755 --- a/scripts/sonic-kdump-config +++ b/scripts/sonic-kdump-config @@ -1,4 +1,5 @@ -#!/usr/bin/python +#!/usr/bin/env python + ''' Copyright 2019 Broadcom. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. diff --git a/scripts/sonic_sku_create.py b/scripts/sonic_sku_create.py index c1ceda7e0a..d0256c7291 100755 --- a/scripts/sonic_sku_create.py +++ b/scripts/sonic_sku_create.py @@ -1,4 +1,5 @@ -#!/usr/bin/python +#!/usr/bin/env python + """ usage: sonic_sku_create.py [-h] [-v] [-f FILE] [-m [MINIGRAPH_FILE]] [-b BASE] [-r] [-k HWSKU] diff --git a/scripts/tempershow b/scripts/tempershow index 19b797b4c3..3bfb260e41 100644 --- a/scripts/tempershow +++ b/scripts/tempershow @@ -1,4 +1,5 @@ -#!/usr/bin/python +#!/usr/bin/env python + """ Script to show fan status. """ diff --git a/scripts/watermarkstat b/scripts/watermarkstat index b818411608..79c5a201e2 100755 --- a/scripts/watermarkstat +++ b/scripts/watermarkstat @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python ##################################################################### # diff --git a/show/kube.py b/show/kube.py index 59db972705..fbcfbe3e23 100644 --- a/show/kube.py +++ b/show/kube.py @@ -1,6 +1,3 @@ -#!/usr/bin/python -u -# -*- coding: utf-8 -*- - import os import click diff --git a/show/main.py b/show/main.py index cff194dc42..0252bd7d41 100755 --- a/show/main.py +++ b/show/main.py @@ -1,5 +1,3 @@ -#! /usr/bin/python -u - import json import netaddr import os diff --git a/sonic_installer/main.py b/sonic_installer/main.py index 98909f4a42..6a6deaf5de 100644 --- a/sonic_installer/main.py +++ b/sonic_installer/main.py @@ -1,5 +1,3 @@ -#! /usr/bin/python -u - try: import ConfigParser as configparser except ImportError: diff --git a/tests/crm_test.py b/tests/crm_test.py index f6fe980bd5..57e3f72ad5 100644 --- a/tests/crm_test.py +++ b/tests/crm_test.py @@ -999,7 +999,6 @@ def test_crm_show_resources_nexthop(self): @classmethod def teardown_class(cls): print("TEARDOWN") - os.environ["PATH"] = os.pathsep.join(os.environ["PATH"].split(os.pathsep)[:-1]) os.environ["UTILITIES_UNIT_TESTING"] = "0" class TestCrmMultiAsic(object): @@ -1295,7 +1294,6 @@ def test_crm_multi_asic_show_resources_nexthop(self): @classmethod def teardown_class(cls): print("TEARDOWN") - os.environ["PATH"] = os.pathsep.join(os.environ["PATH"].split(os.pathsep)[:-1]) os.environ["UTILITIES_UNIT_TESTING"] = "0" os.environ["UTILITIES_UNIT_TESTING_TOPOLOGY"] = "" import mock_tables.mock_single_asic diff --git a/tests/sflow_test.py b/tests/sflow_test.py index a326a7ef72..724e22ef9e 100644 --- a/tests/sflow_test.py +++ b/tests/sflow_test.py @@ -267,5 +267,4 @@ def test_config_sflow_intf_sample_rate(self): @classmethod def teardown_class(cls): print("TEARDOWN") - os.environ["PATH"] = os.pathsep.join(os.environ["PATH"].split(os.pathsep)[:-1]) os.environ["UTILITIES_UNIT_TESTING"] = "0" diff --git a/tests/show_breakout_test.py b/tests/show_breakout_test.py index f3636e9907..5a55c81b6b 100644 --- a/tests/show_breakout_test.py +++ b/tests/show_breakout_test.py @@ -61,5 +61,4 @@ def test_single_intf_current_mode(self): @classmethod def teardown_class(cls): print("TEARDOWN") - os.environ["PATH"] = os.pathsep.join(os.environ["PATH"].split(os.pathsep)[:-1]) os.environ["UTILITIES_UNIT_TESTING"] = "0" diff --git a/tests/show_platform_test.py b/tests/show_platform_test.py index 028a90fb69..ee30ea6825 100644 --- a/tests/show_platform_test.py +++ b/tests/show_platform_test.py @@ -54,5 +54,4 @@ def test_summary(self): @classmethod def teardown_class(cls): print("TEARDOWN") - os.environ["PATH"] = os.pathsep.join(os.environ["PATH"].split(os.pathsep)[:-1]) os.environ["UTILITIES_UNIT_TESTING"] = "0" diff --git a/tests/system_health_test.py b/tests/system_health_test.py index 8e2a39c585..ea80c15a03 100644 --- a/tests/system_health_test.py +++ b/tests/system_health_test.py @@ -1,5 +1,3 @@ -#! /usr/bin/python -u - import sys import os diff --git a/undebug/main.py b/undebug/main.py index 313c551cb6..9d77866fa8 100644 --- a/undebug/main.py +++ b/undebug/main.py @@ -1,6 +1,3 @@ -#! /usr/bin/python -u -# date: 07/12/17 - import click import subprocess