| 
						
						
							
								
							
						
						
					 | 
					@ -29,31 +29,10 @@ DEFAULT_SYNC = model.entity.SYNC_FULL_GIT2DB | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					TABLE_NAME = B.SUBJECT_APP | 
					 | 
					 | 
					TABLE_NAME = B.SUBJECT_APP | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					""" system-name for this entity """ | 
					 | 
					 | 
					""" system-name for this entity """ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					FIELD_ID = "tcid" | 
					 | 
					 | 
					FIELD_ID = "tcid" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					FIELD_NAME = D.FIELD_NAME | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					FIELD_DESCRIPTION = B.SUBJECT_DESCRIPTION | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					FIELD_REFERENCE = B.SUBJECT_REFERENCE | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					FIELD_PROJECT = B.SUBJECT_PROJECT | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					FIELD_APPLICATION = B.SUBJECT_APP | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					LIST_FIELDS = [FIELD_ID, FIELD_NAME, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					               FIELD_DESCRIPTION, FIELD_REFERENCE, FIELD_PROJECT] | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					""" list of object-attributes """ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					LIST_NODES = [B.NODE_ATTRIBUTES] | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					SUB_USECASE = B.SUBJECT_USECASES | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					SUB_STORIES = B.SUBJECT_STORIES | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					SUB_STEPS = "steps" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					SUB_TABLES = "tables" | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					LIST_SUBTABLES = { # with additional attributes for the subtable | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    B.SUBJECT_APPS: [], | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    SUB_TABLES: [D.DATA_ATTR_DATE], | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    SUB_STEPS: [], | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    SUB_USECASE: [B.SUBJECT_DESCRIPTION, B.SUBJECT_REFERENCE], | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    SUB_STORIES: [B.SUBJECT_DESCRIPTION, B.SUBJECT_REFERENCE] | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					LIST_SUB_DESCRIPT = [D.DATA_ATTR_USECASE_DESCR, D.DATA_ATTR_STORY_DESCR] | 
					 | 
					 | 
					LIST_SUB_DESCRIPT = [D.DATA_ATTR_USECASE_DESCR, D.DATA_ATTR_STORY_DESCR] | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					FILE_EXTENSION = D.DFILE_TYPE_YML | 
					 | 
					 | 
					FILE_EXTENSION = D.DFILE_TYPE_YML | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					UNIQUE_FIELDS = [FIELD_NAME] | 
					 | 
					 | 
					UNIQUE_FIELDS = [D.FIELD_NAME] | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					""" unique business field as human identifer """ | 
					 | 
					 | 
					""" unique business field as human identifer """ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					IDENTIFYER_FIELDS = [FIELD_ID] | 
					 | 
					 | 
					IDENTIFYER_FIELDS = [FIELD_ID] | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					""" unique technical field as technical identifer """ | 
					 | 
					 | 
					""" unique technical field as technical identifer """ | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -74,6 +53,8 @@ class Testcase(model.entity.Entity): | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    LIST_FIELDS = [FIELD_ID, D.FIELD_NAME, B.SUBJECT_APPS, | 
					 | 
					 | 
					    LIST_FIELDS = [FIELD_ID, D.FIELD_NAME, B.SUBJECT_APPS, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                   B.SUBJECT_DESCRIPTION, B.SUBJECT_REFERENCE, B.SUBJECT_PROJECT] | 
					 | 
					 | 
					                   B.SUBJECT_DESCRIPTION, B.SUBJECT_REFERENCE, B.SUBJECT_PROJECT] | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    LIST_NODES = [B.NODE_ATTRIBUTES] | 
					 | 
					 | 
					    LIST_NODES = [B.NODE_ATTRIBUTES] | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    LIST_SUBTABLES = [B.SUBJECT_USECASES, B.SUBJECT_STEPS, B.SUBJECT_DATATABLES, B.SUBJECT_STEPS] | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    tcid = "" | 
					 | 
					 | 
					    tcid = "" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    name = "" | 
					 | 
					 | 
					    name = "" | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    description = "" | 
					 | 
					 | 
					    description = "" | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -84,19 +65,8 @@ class Testcase(model.entity.Entity): | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    tables = {} | 
					 | 
					 | 
					    tables = {} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    steps = {} | 
					 | 
					 | 
					    steps = {} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    def __init__(self, job, project, name=""): | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        to be initialized by readSpec | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        :param job: | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        self.job = job | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        if len(project) > 1: | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            self.project = project | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        if len(name) > 1: | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            self.name = name | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            self.read_entity(job, name) | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    def read_unique_names(self, job, project, application, gran, args): | 
					 | 
					 | 
					    def read_unique_names(self, job, project, application, gran, args, ttype: str=""): | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					        """ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        reads the entity-names from file-storage | 
					 | 
					 | 
					        reads the entity-names from file-storage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        :param job: | 
					 | 
					 | 
					        :param job: | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -123,11 +93,23 @@ class Testcase(model.entity.Entity): | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        # r = tools.config_tool.select_config_path(job, P.KEY_TESTCASE, "TC0001") | 
					 | 
					 | 
					        # r = tools.config_tool.select_config_path(job, P.KEY_TESTCASE, "TC0001") | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        # ttype=testcase => Aufteilung der Testspec in Bloecke und separater Aufruf zur Pruefung der Bloecke | 
					 | 
					 | 
					        # ttype=testcase => Aufteilung der Testspec in Bloecke und separater Aufruf zur Pruefung der Bloecke | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        config = self.getConfig(job, P.KEY_TESTCASE, name, tools.config_tool.get_plain_filename(job, name), B.SUBJECT_TESTCASE) | 
					 | 
					 | 
					        config = self.getConfig(job, P.KEY_TESTCASE, name, tools.config_tool.get_plain_filename(job, name), B.SUBJECT_TESTCASE) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        self.setAttributes(job, config, name, LIST_FIELDS, LIST_NODES, LIST_SUBTABLES) | 
					 | 
					 | 
					        self.setAttributes(job, config, name, self.LIST_FIELDS, self.LIST_NODES, self.LIST_SUBTABLES) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        return self | 
					 | 
					 | 
					        return self | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @staticmethod | 
					 | 
					 | 
					    @staticmethod | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					    def rebuild_data(job, tdata: dict) -> dict: | 
					 | 
					 | 
					    def rebuild_data(job, data: dict) -> dict: | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        """ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        gets the subtable-tag from filecsv and sets the subtables in order to workable entity-elements | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        :param job: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        :param data: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        :return: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        """ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        data = tools.file_type.popSubjectsNode(job, data) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        # data = tools.file_type.popNameNode(job, data) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        return data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    @staticmethod | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					    def oldrebuild_data(job, tdata: dict) -> dict: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					        """ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        gets the subtable-tag from filecsv and sets the subtables in order to workable entity-elements | 
					 | 
					 | 
					        gets the subtable-tag from filecsv and sets the subtables in order to workable entity-elements | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        :param job: | 
					 | 
					 | 
					        :param job: | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -206,40 +188,6 @@ class Testcase(model.entity.Entity): | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        checkNodes[tools.file_type.OPT_NODES] = [B.SUBJECT_USECASES, B.SUBJECT_STORIES] | 
					 | 
					 | 
					        checkNodes[tools.file_type.OPT_NODES] = [B.SUBJECT_USECASES, B.SUBJECT_STORIES] | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return tools.file_type.check_nodes(job, data, checkNodes) | 
					 | 
					 | 
					        return tools.file_type.check_nodes(job, data, checkNodes) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    def getFieldList(self): | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        returns a list of scalar attributes | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        :return: LIST_FIELDS | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return LIST_FIELDS | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    def getNodeList(self): | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        returns a list of sub-nodes - which can be persisted in a clob-field | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        :return: LIST_NODES | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return LIST_NODES | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    def getSubtableList(self): | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        returns a list of sub-tables | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        :return: LIST_SUBTABLES | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return LIST_SUBTABLES | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    def getName(self): | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        returns the name - maybe build from other attributes | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        :return: | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return self.name | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    def getIDName(self): | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        it returns the name as unique-id - maybe build from few attributes | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        :return: | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return self.name | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    def xxread_entity(self, job, name): | 
					 | 
					 | 
					    def xxread_entity(self, job, name): | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ | 
					 | 
					 | 
					        """ | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |