From 70b5d7732d7a0a5ae3ba08a7ebde832edbb89612 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florent=20Thi=C3=A9ry?= <florent.thiery@ubicast.eu> Date: Thu, 8 Jun 2017 10:34:46 +0200 Subject: [PATCH] support single user test execution, refs #21724 --- tester.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/tester.py b/tester.py index 2725d146..795c7612 100755 --- a/tester.py +++ b/tester.py @@ -40,7 +40,7 @@ def strip_colors(text): class Tester(): - USAGE = '''%s [-e] [-f] [-b] [-d] [-h] + USAGE = '''%s [-e] [-f] [-b] [-d] [-h] [msuser] -e: send email with report. -f: send email with report only if at least one test failed. -b: run only basic tests (exclude mediaserver tests). @@ -55,15 +55,23 @@ class Tester(): log('\033[96m- UbiCast applications tester -\033[0m') log('\033[96m-------------------------------\033[0m') args = list(args) + msuser = None # Check if help is required if '-h' in args: log('USAGE: ' + self.USAGE) sys.exit(0) - for arg in args: - if arg not in self.VALID_ARGS: + for index, arg in enumerate(args): + if arg not in self.VALID_ARGS and index + 1 != len(args): log('Invalid argument given: "%s".\n' % arg) log('USAGE: ' + self.USAGE) sys.exit(1) + else: + log("Optional target user : %s" % arg) + if not os.path.isdir(os.path.join('/home', arg)): + log("Mediaserver user %s does not exist" % arg) + sys.exit(1) + else: + msuser = arg # Check current dir root_dir = utils.get_dir(__file__) if root_dir != '': @@ -89,7 +97,7 @@ class Tester(): email = '-e' in args email_if_fail = '-f' in args basic_only = '-b' in args - tests = self.discover_tests(basic_only) + tests = self.discover_tests(basic_only, msuser) if not tests: sys.exit(1) exit_code = self.run_tests(tests, email, email_if_fail) @@ -123,7 +131,7 @@ class Tester(): criticality = 'not specified' return criticality, description - def discover_tests(self, basic_only=False): + def discover_tests(self, basic_only=False, msuser=None): ignored_tests = utils.get_conf('TESTER_IGNORED_TESTS', '').split(',') # Get standard tests path = os.path.join(self.root_dir, 'tests') @@ -151,10 +159,12 @@ class Tester(): if basic_only: tests.sort(key=lambda i: (-criticalities_map.get(i[1], 0), i[0])) return tests + elif msuser: + tests = list() # Get MS instances ms_users = list() for user in os.listdir('/home'): - if os.path.exists('/home/%s/msinstance' % user): + if os.path.exists('/home/%s/msinstance' % user) and user == msuser: ms_users.append(user) # Get MediaServer tests if ms_users: -- GitLab