Source
xxxxxxxxxx
def run_bamboo(pkg, work_dir, branch = None, test_group = None, test_list= None, test_paths = [], test_config_path=None, ncores=2, verbosity=False, pmode=None, tests_to_ignore=None):
########################################################################################################################
############################################ Imports #############################################
########################################################################################################################
import argparse
import os
import shutil
import sys
import traceback
import subprocess
import unittest
import json
import datetime
import platform
########################################################################################################################
###################################### Imports / Constants #######################################
########################################################################################################################
default_timeout = 1800
sys.path.insert(0,'')
# cov mode variables
HAVE_COVTEST=True
COV = 0
try:
import coverage
except ImportError:
HAVE_COVTEST = False
# pybot mode variables
USE_PYBOT = 0
#### PYTEST IMPORT
HAVE_PYTEST = True
try:
import pytest
except ImportError:
HAVE_PYTEST = False
IS_CASA6 = False
CASA6 = False
verbose = False
# JIRA BRANCH TO CHECKOUT
JIRA_BRANCH = None
# Dry run of Tests
DRY_RUN = False
########################################################################################################################
########################################### Functions ############################################
########################################################################################################################
# At the moment, this needs to be a sep function due to repr and escape characters, try/ except for osx
def write_conftest_linux(filepath):
string = """
import pytest
import inspect
import os
@pytest.mark.trylast
def pytest_configure(config):
terminal_reporter = config.pluginmanager.getplugin('terminalreporter')
config.pluginmanager.register(TestDescriptionPlugin(terminal_reporter), 'testdescription')
class TestDescriptionPlugin:
def __init__(self, terminal_reporter):
self.terminal_reporter = terminal_reporter
self.desc = None
self.funcn = None
def pytest_runtest_protocol(self, item):
#from pprint import pprint
#d = item.__dict__
#pprint(d, indent=2)
self.desc = inspect.getdoc(item.obj)
#print(item._nodeid)
self.funcn = item._nodeid
@pytest.hookimpl(hookwrapper=True, tryfirst=True)
def pytest_runtest_logstart(self, nodeid, location):
#print("Verbosity Level: {}".format(self.terminal_reporter.verbosity))
if self.terminal_reporter.verbosity == 0:
yield
self.terminal_reporter.write(f'\\n{self.funcn} \\n')
else:
self.terminal_reporter.write('\\n')
yield
if self.desc:
self.terminal_reporter.write(f'\\n{self.desc} \\n')