def _define_execution_list(self): """Generate the execution list Generates a list with the required combinations for each of the following elements: - tests - data sets - environments - browsers """ execution_list = [] envs = self.execution.envs or [''] envs_data = environment_manager.get_environment_data(self.project) secrets = secrets_manager.get_secrets(self.project) for test in self.tests: data_sets = test_data.get_test_data(self.project, test) for data_set in data_sets: for env in envs: data_set_env = dict(data_set) if env in envs_data: # add env_data to data_set data_set_env['env'] = envs_data[env] data_set_env['env']['name'] = env for browser in self.execution.browsers: testdef = SimpleNamespace(name=test, data_set=data_set_env, secrets=secrets, browser=browser, reportdir=None) execution_list.append(testdef) return execution_list
def test_get_secrets_in_case_secrets_file_does_not_exists( self, project_session): testdir = project_session.testdir project = project_session.name secrets = secrets_manager.get_secrets(testdir, project) assert len(secrets) == 0 assert {} == secrets
def test_get_secrets_in_case_secrets_file_exists(self, project_session): _, project = project_session.activate() secrets_path = os.path.join(project_session.path, 'secrets.json') with open(secrets_path, 'w') as secrets_file: secrets_file.write(json.dumps(SECRETS, indent=True)) secrets = secrets_manager.get_secrets(project) assert len(secrets) == 3 assert 'db_host' in secrets assert 'schema' in secrets assert secrets['users']['user01'] == 'Mike'
def _define_execution_list(self): """Generate the execution list Generates a list with the required combinations for each of the following elements: - tests - data sets - environments - browsers """ execution_list = [] envs = self.execution.envs or [None] envs_data = environment_manager.get_environment_data(self.project.name) secrets = secrets_manager.get_secrets(self.project.name) for test in self.tests: data_sets = test_data.get_parsed_test_data(self.project.name, test) if len(data_sets) > 1 or len(envs) > 1 or len( self.execution.browsers) > 1: # If the test file contain multiple data sets, envs or browsers # then each set will have a unique id (set_name) multiple_data_sets = True else: # otherwise it's just one set with set_name = '' multiple_data_sets = False for data_set in data_sets: for env in envs: data_set_env = dict(data_set) if env in envs_data: # add env_data to data_set data_set_env['env'] = envs_data[env] data_set_env['env']['name'] = env for browser in self.execution.browsers: if multiple_data_sets: set_name = str(uuid.uuid4())[:6] else: set_name = '' testdef = SimpleNamespace( name=test, data_set=data_set_env, secrets=secrets, browser=browser, reportdir=self.execution.reportdir, env=env, set_name=set_name) execution_list.append(testdef) return execution_list
def test_get_secrets_in_case_secrets_file_does_not_exists( self, project_session): _, project = project_session.activate() secrets = secrets_manager.get_secrets(project) assert len(secrets) == 0 assert secrets == {}