@ -20,16 +20,330 @@ The constants desribes the keywords of the main datastructures, these are 
			
		
	
		
			
				
					"""  
			
		
	
		
			
				
					import  os  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					home  =  " "  
			
		
	
		
			
				
					if  home  ==  " " :  
			
		
	
		
			
				
					    home  =  os . getcwd ( )  
			
		
	
		
			
				
					    prgdir  =  " "  
			
		
	
		
			
				
					    if  home [ - 4 : ]  ==  " test " :  
			
		
	
		
			
				
					        home  =  home [ 0 : - 5 ]  
			
		
	
		
			
				
					    if  home [ - 10 : ]  ==  " components " :  
			
		
	
		
			
				
					        home  =  home [ 0 : - 11 ]  
			
		
	
		
			
				
					    if  home [ - 9 : ]  ==  " program " :  
			
		
	
		
			
				
					        prgdir  =  home [ - 6 : ]  
			
		
	
		
			
				
					        home  =  home [ 0 : - 7 ]  
			
		
	
		
			
				
					    elif  home [ - 7 : ]  ==  " program " :  
			
		
	
		
			
				
					        prgdir  =  home [ - 7 : ]  
			
		
	
		
			
				
					        home  =  home [ 0 : - 8 ]  
			
		
	
		
			
				
					    HOME_PATH  =  home  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    # -- example -----------------------------------------------------  
			
		
	
		
			
				
					    # example testcase - nodes  
			
		
	
		
			
				
					    # the internal datastructure is a tree with this design:  
			
		
	
		
			
				
					    # root {                  : subject itself - subject-singular-constant  
			
		
	
		
			
				
					    # + option {              : subtable of subject - subject-plural-constant  
			
		
	
		
			
				
					    #   + attribute           : attribute of subtable - allowed attribute-names in data-const LIST_ATTR_<subject>  
			
		
	
		
			
				
					    # + stories               : subtable of subject  
			
		
	
		
			
				
					    #   + <NAME>              : element of subtable - the unique name  
			
		
	
		
			
				
					    #     + name              : redundant name-attribute  
			
		
	
		
			
				
					    #     + attribute         : some main attributes  
			
		
	
		
			
				
					    # + datas                 :  
			
		
	
		
			
				
					    #   + <NAME>              : table name  
			
		
	
		
			
				
					    #     + ddl               : topic, functionality relating to ddl  
			
		
	
		
			
				
					    #       + _header    [    : specific data-node of the topic - constant  
			
		
	
		
			
				
					    #          - fields       : variable field-name  
			
		
	
		
			
				
					    # + steps                 : special topic  
			
		
	
		
			
				
					    #  
			
		
	
		
			
				
					    # + comp {                : variable component-name  
			
		
	
		
			
				
					    #   + substructure {      : variable maybe scheme, table of a database-component  
			
		
	
		
			
				
					    #   + + _header    [      : constant  
			
		
	
		
			
				
					    #       - fields          : variable field-name  
			
		
	
		
			
				
					    # -------------------------------------------------------------  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    # --Domain ----------------------------------------------------  
			
		
	
		
			
				
					    #  ____                        _  
			
		
	
		
			
				
					    # |  _ \  ___  _ __ ___   __ _(_)_ __  
			
		
	
		
			
				
					    # | | | |/ _ \| '_ ` _ \ / _` | | '_ \  
			
		
	
		
			
				
					    # | |_| | (_) | | | | | | (_| | | | | |  
			
		
	
		
			
				
					    # |____/ \___/|_| |_| |_|\__,_|_|_| |_|  
			
		
	
		
			
				
					    #  
			
		
	
		
			
				
					    # -------------------------------------------------------------  
			
		
	
		
			
				
					    DOM_PROJECT  =  " project "  
			
		
	
		
			
				
					    """  
			
		
	
		
			
				
					    this  domain  is  relating  to  project - management  and  - knowledge  
			
		
	
		
			
				
					    subjects  of  the  domain  are :  
			
		
	
		
			
				
					    -  project  
			
		
	
		
			
				
					    -  application  
			
		
	
		
			
				
					    -  release  
			
		
	
		
			
				
					    topics  relating  to  the  domain  are :  
			
		
	
		
			
				
					    """  
			
		
	
		
			
				
					DOM_SPECIFICATION  =  " specification "  
			
		
	
		
			
				
					"""  
			
		
	
		
			
				
					this  domain  is  relating  to  project - management  and  - knowledge  
			
		
	
		
			
				
					subjects  of  the  domain  are :  
			
		
	
		
			
				
					-  application  
			
		
	
		
			
				
					  -  usercase  
			
		
	
		
			
				
					  -  variant  
			
		
	
		
			
				
					-  release  
			
		
	
		
			
				
					  -  story  
			
		
	
		
			
				
					topics  relating  to  the  domain  are :  
			
		
	
		
			
				
					"""  
			
		
	
		
			
				
					DOM_TEST  =  " test "  
			
		
	
		
			
				
					"""  
			
		
	
		
			
				
					this  domain  is  relating  to  project - management  and  - knowledge  
			
		
	
		
			
				
					subjects  of  the  domain  are :  
			
		
	
		
			
				
					-  testplan  
			
		
	
		
			
				
					  -  release  
			
		
	
		
			
				
					-  testsuite  
			
		
	
		
			
				
					  -  application  
			
		
	
		
			
				
					  -  variant  
			
		
	
		
			
				
					-  testcase  
			
		
	
		
			
				
					  -  application  
			
		
	
		
			
				
					  -  usercase  
			
		
	
		
			
				
					  -  variant  
			
		
	
		
			
				
					  -  story  
			
		
	
		
			
				
					  -  option  
			
		
	
		
			
				
					  -  data  
			
		
	
		
			
				
					  -  step  
			
		
	
		
			
				
					-  testreport  
			
		
	
		
			
				
					  -  release  
			
		
	
		
			
				
					  -  artifact  
			
		
	
		
			
				
					topics  relating  to  the  domain  are :  
			
		
	
		
			
				
					"""  
			
		
	
		
			
				
					DOM_IMPLEMENTATION  =  " implementation "  
			
		
	
		
			
				
					"""  
			
		
	
		
			
				
					this  domain  is  relating  to  project - management  and  - knowledge  
			
		
	
		
			
				
					subjects  of  the  domain  are :  
			
		
	
		
			
				
					-  component  
			
		
	
		
			
				
					  -  artifact  
			
		
	
		
			
				
					  -  data  
			
		
	
		
			
				
					  -  step  
			
		
	
		
			
				
					topics  relating  to  the  domain  are :  
			
		
	
		
			
				
					-  db  
			
		
	
		
			
				
					-  cli  
			
		
	
		
			
				
					-  api  
			
		
	
		
			
				
					-  conn  
			
		
	
		
			
				
					-  ddl  
			
		
	
		
			
				
					"""  
			
		
	
		
			
				
					DOM_INSTALLATION  =  " installation "  
			
		
	
		
			
				
					"""  
			
		
	
		
			
				
					this  domain  is  relating  to  project - management  and  - knowledge  
			
		
	
		
			
				
					subjects  of  the  domain  are :  
			
		
	
		
			
				
					-  environent  
			
		
	
		
			
				
					  -  component  
			
		
	
		
			
				
					topics  relating  to  the  domain  are :  
			
		
	
		
			
				
					-  db  
			
		
	
		
			
				
					-  cli  
			
		
	
		
			
				
					-  api  
			
		
	
		
			
				
					-  conn  
			
		
	
		
			
				
					-  instance  
			
		
	
		
			
				
					"""  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					# --Subject ----------------------------------------------------  
			
		
	
		
			
				
					#  ____        _     _           _  
			
		
	
		
			
				
					# / ___| _   _| |__ (_) ___  ___| |_  
			
		
	
		
			
				
					# \___ \| | | | '_ \| |/ _ \/ __| __|  
			
		
	
		
			
				
					#  ___) | |_| | |_) | |  __/ (__| |_  
			
		
	
		
			
				
					# |____/ \__,_|_.__// |\___|\___|\__|  
			
		
	
		
			
				
					#                 |__/  
			
		
	
		
			
				
					# -------------------------------------------------------------  
			
		
	
		
			
				
					# values and keywords  
			
		
	
		
			
				
					BASIS_FILE  =  " basis "  
			
		
	
		
			
				
					# the configuration of a component or tool  
			
		
	
		
			
				
					# entity {              : variable name of the group, xbasic, component-name or tool-name  
			
		
	
		
			
				
					# + subject       {     : variable subject-name - it correspondends to a tool  
			
		
	
		
			
				
					# + + sub-subject {     : variable subject-name - it correspondends to a tool  
			
		
	
		
			
				
					#     + attributes      : constant of the tool in which the attribute ist implemented  
			
		
	
		
			
				
					# the main subjects            # prog xbasic envir tool comp testcase main implentation module  
			
		
	
		
			
				
					"""  This constant defines the debug-folder in testing-filesystem   """  
			
		
	
		
			
				
					SUBJECT_PROJECT  =  " project "  
			
		
	
		
			
				
					SUBJECT_PROJECTS  =  SUBJECT_PROJECT  +  " s "  
			
		
	
		
			
				
					SUBJECT_APP  =  " application "  
			
		
	
		
			
				
					SUBJECT_APPS  =  " applications "   #  
			
		
	
		
			
				
					SUBJECT_COMP  =  " component "  
			
		
	
		
			
				
					SUBJECT_COMPS  =  SUBJECT_COMP  +  " s "  
			
		
	
		
			
				
					SUBJECT_USECASE  =  " usecase "  
			
		
	
		
			
				
					SUBJECT_USECASES  =  SUBJECT_USECASE  +  " s "  
			
		
	
		
			
				
					SUBJECT_REL  =  " release "  
			
		
	
		
			
				
					SUBJECT_RELS  =  SUBJECT_REL  +  " s "  
			
		
	
		
			
				
					SUBJECT_TESTCASE  =  " testcase "  
			
		
	
		
			
				
					SUBJECT_TESTCASES  =  SUBJECT_TESTCASE  +  " s "  
			
		
	
		
			
				
					SUBJECT_TESTSUITE  =  " testsuite "  
			
		
	
		
			
				
					SUBJECT_TESTSUITES  =  SUBJECT_TESTSUITE  +  " s "  
			
		
	
		
			
				
					SUBJECT_TESTPLAN  =  " testplan "  
			
		
	
		
			
				
					SUBJECT_TESTPLANS  =  SUBJECT_TESTPLAN  +  " s "  
			
		
	
		
			
				
					SUBJECT_ARTIFACT  =  " artifact "  
			
		
	
		
			
				
					SUBJECT_ARTIFACTS  =  SUBJECT_ARTIFACT  +  " s "  
			
		
	
		
			
				
					ATTR_ARTS_LOG  =  " log "  
			
		
	
		
			
				
					ATTR_ARTS_LOB  =  " lob "  
			
		
	
		
			
				
					ATTR_ARTS_FILE  =  " file "  
			
		
	
		
			
				
					ATTR_ARTS_TYPE  =  " type "  
			
		
	
		
			
				
					"""  must attribute for the type of the technique  """  
			
		
	
		
			
				
					ATTR_ARTS_NAME  =  " name "  
			
		
	
		
			
				
					"""  optional attribute just for information  """  
			
		
	
		
			
				
					ATTR_ARTS_PATH  =  " path "  
			
		
	
		
			
				
					"""  optional attribute for the xbasic folder if the artifact is stored in the filesystem  """  
			
		
	
		
			
				
					ATTR_ARTS_RESET  =  " reset "  
			
		
	
		
			
				
					"""  optional attribute if the artefact should be reset in the initializing-phase  """  
			
		
	
		
			
				
					ATTR_ARTS_PRESTEP  =  " prestep "  
			
		
	
		
			
				
					"""  optional attribute to define a source-table for this table  """  
			
		
	
		
			
				
					LIST_ARTS_ATTR  =  [ ATTR_ARTS_TYPE ,  ATTR_ARTS_PATH ,  ATTR_ARTS_RESET ,  ATTR_ARTS_PRESTEP ,  ATTR_ARTS_NAME ]  
			
		
	
		
			
				
					SUBJECT_VARIANTS  =  " variants "  
			
		
	
		
			
				
					SUBJECT_ENVIRONMENT  =  ' environment '  
			
		
	
		
			
				
					SUBJECT_ENVIRONMENTS  =  SUBJECT_ENVIRONMENT  +  " s "  
			
		
	
		
			
				
					SUBJECT_STORY  =  " story "  
			
		
	
		
			
				
					SUBJECT_STORIES  =  " stories "  
			
		
	
		
			
				
					SUBJECT_DESCRIPTION  =  " description "   # --> MAIN-ATTR  
			
		
	
		
			
				
					SUBJECT_REFERENCE  =  " reference "   # --> MAIN-ATTR  
			
		
	
		
			
				
					LIST_SUBJECTS  =  [ SUBJECT_APPS ,  SUBJECT_ARTIFACT ,  SUBJECT_COMPS ,  SUBJECT_PROJECTS ]  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					SVAL_YES  =  " y "  
			
		
	
		
			
				
					SVAL_NO  =  " n "  
			
		
	
		
			
				
					SVAL_NULL  =  " null "  
			
		
	
		
			
				
					# --Topic -----------------------------------------------------  
			
		
	
		
			
				
					#  _____           _  
			
		
	
		
			
				
					# |_   _|__  _ __ (_) ___  
			
		
	
		
			
				
					#   | |/ _ \| '_ \| |/ __|  
			
		
	
		
			
				
					#   | | (_) | |_) | | (__  
			
		
	
		
			
				
					#   |_|\___/| .__/|_|\___|  
			
		
	
		
			
				
					#           |_|  
			
		
	
		
			
				
					# -------------------------------------------------------------  
			
		
	
		
			
				
					# topics  
			
		
	
		
			
				
					"""    
			
		
	
		
			
				
					    in  this  subject - node  are  each  kind  of  result  of  any  component  with  the  structure :  
			
		
	
		
			
				
					  *  topic  ( db ,  cli ,  api ,  . . . )  
			
		
	
		
			
				
					  *  *  general  attributes  -  to - know :  technical  attributes  are  stored  in  connection - tree  
			
		
	
		
			
				
					  *  *  partial - component   -  to - know :  the  existence  of  db - tables  can  be  defined  in  the  ddl - tree  
			
		
	
		
			
				
					  *  *  *  specific  attributes  -  it  overrides  the  general  attributes  
			
		
	
		
			
				
					"""  
			
		
	
		
			
				
					TOPIC_INST  =  " instance "  
			
		
	
		
			
				
					ATTR_INST_CNT  =  " count "   #  
			
		
	
		
			
				
					ATTR_INST_SGL  =  " single "  
			
		
	
		
			
				
					LIST_INST_ATTR  =  [ ATTR_INST_CNT ,  ATTR_INST_SGL ]  
			
		
	
		
			
				
					ATTR_INST_SUBCOMP  =  SUBJECT_COMPS  
			
		
	
		
			
				
					ATTR_INST_TESTSERVER  =  " Testserver "  
			
		
	
		
			
				
					TOPIC_PATH  =  " paths "  
			
		
	
		
			
				
					ATTR_PATH_MODE  =  " mode "  
			
		
	
		
			
				
					"""  This constant defines the home-folder in filesystem of test  """  
			
		
	
		
			
				
					ATTR_PATH_HOME  =  " home "  
			
		
	
		
			
				
					"""  This constant defines the home-folder in testing-filesystem   """  
			
		
	
		
			
				
					ATTR_PATH_DEBUG  =  " debugs "  
			
		
	
		
			
				
					"""  This constant defines the debug-folder in testing-filesystem   """  
			
		
	
		
			
				
					ATTR_PATH_ARCHIV  =  " archiv "  
			
		
	
		
			
				
					"""  This constant defines the folder in testing-filesystem for results and log of execution   """  
			
		
	
		
			
				
					ATTR_PATH_EXPECT  =  " expect "  
			
		
	
		
			
				
					"""  This constant defines the folder in testing-filesystem for test-expectation values  """  
			
		
	
		
			
				
					ATTR_PATH_PROGRAM  =  " program "  
			
		
	
		
			
				
					"""  This constant defines the program-folder in the workspace  """  
			
		
	
		
			
				
					ATTR_PATH_COMPS  =  " components "  
			
		
	
		
			
				
					"""  This constant defines the subfolder in the program-folder in the workspace  """  
			
		
	
		
			
				
					ATTR_PATH_ENV  =  " environment "  
			
		
	
		
			
				
					"""  This constant defines the folder in testing-filesystem, used for configs related to environments  """  
			
		
	
		
			
				
					ATTR_PATH_RELEASE  =  " release "  
			
		
	
		
			
				
					"""  This constant defines the folder in testing-filesystem, used for configs related to release  """  
			
		
	
		
			
				
					ATTR_PATH_TDATA  =  " testdata "  
			
		
	
		
			
				
					"""  This constant defines the folder in testing-filesystem with the testcase-specifications  """  
			
		
	
		
			
				
					ATTR_PATH_PATTN  =  " pattern "  
			
		
	
		
			
				
					"""  This constant defines the debug-folder in testing-filesystem   """  
			
		
	
		
			
				
					# SUBJECT_FCT  = "function"      #     --> TOPIC  
			
		
	
		
			
				
					TOPIC_DDL  =  " ddl "  
			
		
	
		
			
				
					ATTR_TYPE  =  " type "   #  
			
		
	
		
			
				
					RULE_ACCEPTANCE  =  " acceptance "   #  
			
		
	
		
			
				
					ATTR_STEP_ARGS  =  " args "  
			
		
	
		
			
				
					ATTR_EXEC_REF  =  " _exec "  
			
		
	
		
			
				
					ATTR_DATA_REF  =  " _nr "  
			
		
	
		
			
				
					ATTR_DATA_COMP  =  " _comp "  
			
		
	
		
			
				
					TOPIC_TOOL  =  " tool "   # ?? -> TOPIC  
			
		
	
		
			
				
					TOPIC_NODE_DB  =  " db "  
			
		
	
		
			
				
					# testexec, db_abstr  
			
		
	
		
			
				
					ATTR_DB_PARTITION  =  " partitioned "  
			
		
	
		
			
				
					"""  optional attribute if table is partitioned  
			
		
	
		
			
				
					 -  this  keyword  delimited  by  " + "  will  be  replaced  by  partition - names  which  are  parametrized  """  
			
		
	
		
			
				
					ATTR_DB_DATABASE  =  " database "  
			
		
	
		
			
				
					"""  attribute for technical name of the database  """  
			
		
	
		
			
				
					ATTR_DB_SCHEMA  =  " schema "  
			
		
	
		
			
				
					"""  optional attribute for technical name of the schema   """  
			
		
	
		
			
				
					ATTR_DB_TABNAME  =  " tabname "  
			
		
	
		
			
				
					"""  optional attribute in order to use a different technical name for the db-table  """  
			
		
	
		
			
				
					ATTR_DB_USER  =  " user "  
			
		
	
		
			
				
					"""  optional attribute in order to use a different technical name for the db-table  """  
			
		
	
		
			
				
					ATTR_DB_PASSWD  =  " password "  
			
		
	
		
			
				
					"""  optional attribute in order to use a different technical name for the db-table  """  
			
		
	
		
			
				
					ATTR_DB_HOST  =  " hostname "  
			
		
	
		
			
				
					"""  optional attribute in order to use a different technical name for the db-table  """  
			
		
	
		
			
				
					LIST_DB_ATTR  =  [ ATTR_DB_PARTITION ,  ATTR_DB_DATABASE ,  ATTR_DB_SCHEMA ,  ATTR_DB_TABNAME ,  ATTR_ARTS_PRESTEP ,  
			
		
	
		
			
				
					                ATTR_DB_USER ,  ATTR_DB_PASSWD ,  ATTR_DB_HOST ]  +  LIST_ARTS_ATTR  
			
		
	
		
			
				
					TOPIC_CONN  =  " conn "  
			
		
	
		
			
				
					ATTR_DB_CONN_JAR  =  " conn_jar_name "  
			
		
	
		
			
				
					"""  optional attribute for connection-jar-file instead of connection by ip, port  """  
			
		
	
		
			
				
					ATTR_CONN_HOST  =  " hostname "  
			
		
	
		
			
				
					"""  optional attribute for connection-jar-file instead of connection by ip, port  """  
			
		
	
		
			
				
					ATTR_CONN_TENANT  =  " tenant "  
			
		
	
		
			
				
					"""  optional attribute for connection-jar-file instead of connection by ip, port  """  
			
		
	
		
			
				
					ATTR_CONN_IP  =  " ip "  
			
		
	
		
			
				
					ATTR_CONN_PORT  =  " port "  
			
		
	
		
			
				
					ATTR_CONN_DOMPATH  =  " dompath "  
			
		
	
		
			
				
					"""  directory where the component is stored in the filesystem  """  
			
		
	
		
			
				
					ATTR_CONN_USER  =  " user "  
			
		
	
		
			
				
					ATTR_CONN_PASSWD  =  " password "  
			
		
	
		
			
				
					LIST_CONN_ATTR  =  [ ATTR_CONN_HOST ,  ATTR_CONN_IP ,  ATTR_CONN_PORT ,  ATTR_CONN_DOMPATH ,  ATTR_CONN_USER ,  ATTR_CONN_PASSWD ]  
			
		
	
		
			
				
					TOPIC_NODE_CLI  =  " cli "  
			
		
	
		
			
				
					LIST_CLI_ATTR  =  [ ]  +  LIST_ARTS_ATTR  
			
		
	
		
			
				
					TOPIC_NODE_API  =  " api "  
			
		
	
		
			
				
					LIST_API_ATTR  =  [ ]  +  LIST_ARTS_ATTR  
			
		
	
		
			
				
					TOPIC_NODE_FILE  =  " file "  
			
		
	
		
			
				
					ATTR_FILE_OLD  =  " oldfile "  
			
		
	
		
			
				
					ATTR_FILE_ROTATE  =  " rotate "  
			
		
	
		
			
				
					NODE_ATTRIBUTES  =  " attributes "  
			
		
	
		
			
				
					LIST_FILE_ATTR  =  [ ATTR_FILE_OLD ,  ATTR_FILE_ROTATE ]  +  LIST_ARTS_ATTR  
			
		
	
		
			
				
					LIST_ATTR  =  {  
			
		
	
		
			
				
					    TOPIC_NODE_DB :  LIST_DB_ATTR ,  
			
		
	
		
			
				
					    TOPIC_NODE_API :  LIST_API_ATTR ,  
			
		
	
		
			
				
					    TOPIC_NODE_CLI :  LIST_CLI_ATTR ,  
			
		
	
		
			
				
					    TOPIC_NODE_FILE :  LIST_FILE_ATTR  
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					LIST_TOPIC_NODES  =  [ TOPIC_NODE_FILE ,  TOPIC_NODE_DB ,  TOPIC_NODE_CLI ,  TOPIC_NODE_API ]  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					# -- data nodes -----------------------------------------------  
			
		
	
		
			
				
					#  ____        _              _   _           _  
			
		
	
		
			
				
					# |  _ \  __ _| |_ __ _      | \ | | ___   __| | ___  ___  
			
		
	
		
			
				
					# | | | |/ _` | __/ _` |_____|  \| |/ _ \ / _` |/ _ \/ __|  
			
		
	
		
			
				
					# | |_| | (_| | || (_| |_____| |\  | (_) | (_| |  __/\__ \  
			
		
	
		
			
				
					# |____/ \__,_|\__\__,_|     |_| \_|\___/ \__,_|\___||___/  
			
		
	
		
			
				
					#  
			
		
	
		
			
				
					# -------------------------------------------------------------  
			
		
	
		
			
				
					"""  This constant defines a subnode of a table for the column-names  """  
			
		
	
		
			
				
					CONF_NODE_GENERAL  =  " _general "  
			
		
	
		
			
				
					"""  it defines a subnode of a table for the column-names  """  
			
		
	
		
			
				
					DATA_NODE_HEADER  =  " _header "  
			
		
	
		
			
				
					"""  it defines a subnode of a table for the field-list, used for ddl  """  
			
		
	
		
			
				
					DATA_NODE_FIELDS  =  " _fields "  
			
		
	
		
			
				
					"""  it defines a subnode of a table for the data as key-value-pair, keys from header  """  
			
		
	
		
			
				
					DATA_NODE_DATA  =  " _data "  
			
		
	
		
			
				
					"""  it defines the main node in the testdata for the steps to execute  """  
			
		
	
		
			
				
					DATA_NODE_STEPS  =  " _step "   ## ?? SUBJECT  
			
		
	
		
			
				
					"""  it defines main node in the testdata for testcase specific parameters  """  
			
		
	
		
			
				
					DATA_NODE_OPTION  =  " _option "   ## ?? SUBJECT  
			
		
	
		
			
				
					DATA_NODE_HEAD  =  " _head "   ## ??  
			
		
	
		
			
				
					DATA_NODE_ARGS  =  " _arguments "  
			
		
	
		
			
				
					"""  it defines arguments as internal key-value-pairs by delimted with :, used in steps  """  
			
		
	
		
			
				
					"""  This constant defines the main node in the testdata for the steps to execute  """  
			
		
	
		
			
				
					DATA_NODE_TABLES  =  " _tables "   # ?? SUBJECT  
			
		
	
		
			
				
					DATA_NODE_KEYS  =  " _keys "  
			
		
	
		
			
				
					"""  This constant defines the node for data scheme (DataDefinitionLanguage)   
			
		
	
		
			
				
					The  fields  are  defined  in  data_const  ( D )  """  
			
		
	
		
			
				
					DATA_NODE_DDL  =  " ddl "   # ?? TOPIC  
			
		
	
		
			
				
					DATA_NODE_COMP  =  " comp "   # ?? SUBJECT  
			
		
	
		
			
				
					"""  This constant defines  """  
			
		
	
		
			
				
					DATA_NODE_PAR  =  " par "  
			
		
	
		
			
				
					DATA_NODE_CATALOG  =  " _catalog "  
			
		
	
		
			
				
					DATA_NODE_ROW  =  " _row "  
			
		
	
		
			
				
					DATA_NODE_SUBTABLES  =  " subtables "   # ?? SUBJECT  
			
		
	
		
			
				
					LIST_DATA_NODE  =  [ DATA_NODE_HEADER ,  DATA_NODE_DATA ,  DATA_NODE_DDL ,  
			
		
	
		
			
				
					                  DATA_NODE_TABLES ,  DATA_NODE_STEPS ,  DATA_NODE_OPTION ,  DATA_NODE_ROW ]  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					# -- Parameter ------------------------------------------------  
			
		
	
		
			
				
					#  ____                                _  
			
		
	
		
			
				
					# |  _ \ __ _ _ __ __ _ _ __ ___   ___| |_ ___ _ __  
			
		
	
		
			
				
					# | |_) / _` | '__/ _` | '_ ` _ \ / _ \ __/ _ \ '__|  
			
		
	
		
			
				
					# |  __/ (_| | | | (_| | | | | | |  __/ ||  __/ |  
			
		
	
		
			
				
					# |_|   \__,_|_|  \__,_|_| |_| |_|\___|\__\___|_|  
			
		
	
		
			
				
					#  
			
		
	
		
			
				
					# -------------------------------------------------------------  
			
		
	
		
			
				
					# parameter with arguments  
			
		
	
		
			
				
					PAR_PROGRAM  =  ' program '  
			
		
	
		
			
				
					PAR_USER  =  ' user '  
			
		
	
		
			
				
					PAR_GRAN  =  " gran "  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -80,227 +394,32 @@ PAR_DB_WHERE = "dbwhere" 
			
		
	
		
			
				
					PAR_DB_PARTITION  =  " dbparts "  
			
		
	
		
			
				
					"""  optional parameter for partitions of a partitioned tables  """  
			
		
	
		
			
				
					LIST_MAIN_PAR  =  [ PAR_APP ,  PAR_ENV ,  PAR_VAR ,  PAR_REL ,  PAR_TCDIR ,  PAR_TSDIR ]  
			
		
	
		
			
				
					# -------------------------------------------------------------  
			
		
	
		
			
				
					# attributes  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					# -- attributes -----------------------------------------------  
			
		
	
		
			
				
					#        _   _        _ _           _  
			
		
	
		
			
				
					#   __ _| |_| |_ _ __(_) |__  _   _| |_ ___  ___  
			
		
	
		
			
				
					#  / _` | __| __| '__| | '_ \| | | | __/ _ \/ __|  
			
		
	
		
			
				
					# | (_| | |_| |_| |  | | |_) | |_| | ||  __/\__ \  
			
		
	
		
			
				
					#  \__,_|\__|\__|_|  |_|_.__/ \__,_|\__\___||___/  
			
		
	
		
			
				
					#  
			
		
	
		
			
				
					# -------------------------------------------------------------  
			
		
	
		
			
				
					# structure - nodes  
			
		
	
		
			
				
					# the internal datastructure is a tree with this design:  
			
		
	
		
			
				
					# root {                  : constant  
			
		
	
		
			
				
					# + option {              : constant  
			
		
	
		
			
				
					# + steps  
			
		
	
		
			
				
					# + comp {                : variable component-name  
			
		
	
		
			
				
					#   + substructure {      : variable maybe scheme, table of a database-component  
			
		
	
		
			
				
					#   + + _header    [      : constant  
			
		
	
		
			
				
					#       - fields          : variable field-name  
			
		
	
		
			
				
					"""  This constant defines a subnode of a table for the column-names  """  
			
		
	
		
			
				
					CONF_NODE_GENERAL  =  " _general "  
			
		
	
		
			
				
					"""  it defines a subnode of a table for the column-names  """  
			
		
	
		
			
				
					DATA_NODE_HEADER  =  " _header "  
			
		
	
		
			
				
					"""  it defines a subnode of a table for the field-list, used for ddl  """  
			
		
	
		
			
				
					DATA_NODE_FIELDS  =  " _fields "  
			
		
	
		
			
				
					"""  it defines a subnode of a table for the data as key-value-pair, keys from header  """  
			
		
	
		
			
				
					DATA_NODE_DATA    =  " _data "  
			
		
	
		
			
				
					"""  it defines the main node in the testdata for the steps to execute  """  
			
		
	
		
			
				
					DATA_NODE_STEPS   =  " _step "  
			
		
	
		
			
				
					"""  it defines main node in the testdata for testcase specific parameters  """  
			
		
	
		
			
				
					DATA_NODE_OPTION  =  " _option "  
			
		
	
		
			
				
					DATA_NODE_HEAD  =  " _head "  
			
		
	
		
			
				
					DATA_NODE_ARGS    =  " _arguments "  
			
		
	
		
			
				
					"""  it defines arguments as internal key-value-pairs by delimted with :, used in steps  """  
			
		
	
		
			
				
					"""  This constant defines the main node in the testdata for the steps to execute  """  
			
		
	
		
			
				
					DATA_NODE_TABLES  =  " _tables "  
			
		
	
		
			
				
					DATA_NODE_KEYS  =  " _keys "  
			
		
	
		
			
				
					"""  This constant defines the node for data scheme (DataDefinitionLanguage)   
			
		
	
		
			
				
					The  fields  are  defined  in  data_const  ( D )  """  
			
		
	
		
			
				
					DATA_NODE_DDL   =  " ddl "  
			
		
	
		
			
				
					DATA_NODE_COMP  =  " comp "  
			
		
	
		
			
				
					"""  This constant defines  """  
			
		
	
		
			
				
					DATA_NODE_PAR  =  " par "  
			
		
	
		
			
				
					DATA_NODE_CATALOG  =  " _catalog "  
			
		
	
		
			
				
					DATA_NODE_ROW  =  " _row "  
			
		
	
		
			
				
					LIST_DATA_NODE  =  [ DATA_NODE_HEADER ,  DATA_NODE_DATA ,  DATA_NODE_DDL ,  
			
		
	
		
			
				
					                  DATA_NODE_TABLES ,  DATA_NODE_STEPS ,  DATA_NODE_OPTION ,  DATA_NODE_ROW ]  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					ATTR_ARTS_TYPE  =  " type "  
			
		
	
		
			
				
					"""  must attribute for the type of the technique  """  
			
		
	
		
			
				
					ATTR_ARTS_NAME  =  " name "  
			
		
	
		
			
				
					"""  optional attribute just for information  """  
			
		
	
		
			
				
					ATTR_ARTS_PATH  =  " path "  
			
		
	
		
			
				
					"""  optional attribute for the xbasic folder if the artifact is stored in the filesystem  """  
			
		
	
		
			
				
					ATTR_ARTS_RESET  =  " reset "  
			
		
	
		
			
				
					"""  optional attribute if the artefact should be reset in the initializing-phase  """  
			
		
	
		
			
				
					ATTR_ARTS_PRESTEP  =  " prestep "  
			
		
	
		
			
				
					"""  optional attribute to define a source-table for this table  """  
			
		
	
		
			
				
					LIST_ARTS_ATTR  =  [ ATTR_ARTS_TYPE ,  ATTR_ARTS_PATH ,  ATTR_ARTS_RESET ,  ATTR_ARTS_PRESTEP ,  ATTR_ARTS_NAME ]  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					TOPIC_NODE_DB  =  " db "  
			
		
	
		
			
				
					# testexec, db_abstr  
			
		
	
		
			
				
					ATTR_DB_PARTITION  =  " partitioned "  
			
		
	
		
			
				
					"""  optional attribute if table is partitioned  
			
		
	
		
			
				
					 -  this  keyword  delimited  by  " + "  will  be  replaced  by  partition - names  which  are  parametrized  """  
			
		
	
		
			
				
					ATTR_DB_DATABASE  =  " database "  
			
		
	
		
			
				
					"""  attribute for technical name of the database  """  
			
		
	
		
			
				
					ATTR_DB_SCHEMA  =  " schema "  
			
		
	
		
			
				
					"""  optional attribute for technical name of the schema   """  
			
		
	
		
			
				
					ATTR_DB_TABNAME  =  " tabname "  
			
		
	
		
			
				
					"""  optional attribute in order to use a different technical name for the db-table  """  
			
		
	
		
			
				
					ATTR_DB_USER  =  " user "  
			
		
	
		
			
				
					"""  optional attribute in order to use a different technical name for the db-table  """  
			
		
	
		
			
				
					ATTR_DB_PASSWD  =  " password "  
			
		
	
		
			
				
					"""  optional attribute in order to use a different technical name for the db-table  """  
			
		
	
		
			
				
					ATTR_DB_HOST  =  " hostname "  
			
		
	
		
			
				
					"""  optional attribute in order to use a different technical name for the db-table  """  
			
		
	
		
			
				
					LIST_DB_ATTR  =  [ ATTR_DB_PARTITION ,  ATTR_DB_DATABASE ,  ATTR_DB_SCHEMA ,  ATTR_DB_TABNAME ,  ATTR_ARTS_PRESTEP ,  
			
		
	
		
			
				
					                ATTR_DB_USER ,  ATTR_DB_PASSWD ,  ATTR_DB_HOST ]  +  LIST_ARTS_ATTR  
			
		
	
		
			
				
					TOPIC_NODE_CLI  =  " cli "  
			
		
	
		
			
				
					LIST_CLI_ATTR  =  [ ]  +  LIST_ARTS_ATTR  
			
		
	
		
			
				
					TOPIC_NODE_API  =  " api "  
			
		
	
		
			
				
					LIST_API_ATTR  =  [ ]  +  LIST_ARTS_ATTR  
			
		
	
		
			
				
					TOPIC_NODE_FILE  =  " file "  
			
		
	
		
			
				
					ATTR_FILE_OLD  =  " oldfile "  
			
		
	
		
			
				
					ATTR_FILE_ROTATE  =  " rotate "  
			
		
	
		
			
				
					NODE_ATTRIBUTES  =  " attributes "  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					LIST_FILE_ATTR  =  [ ATTR_FILE_OLD ,  ATTR_FILE_ROTATE ]  +  LIST_ARTS_ATTR  
			
		
	
		
			
				
					LIST_TOPIC_NODES  =  [ TOPIC_NODE_FILE ,  TOPIC_NODE_DB ,  TOPIC_NODE_CLI ,  TOPIC_NODE_API ]  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					LIST_ATTR  =  {  
			
		
	
		
			
				
					    TOPIC_NODE_DB :  LIST_DB_ATTR ,  
			
		
	
		
			
				
					    TOPIC_NODE_API :  LIST_API_ATTR ,  
			
		
	
		
			
				
					    TOPIC_NODE_CLI :  LIST_CLI_ATTR ,  
			
		
	
		
			
				
					    TOPIC_NODE_FILE :  LIST_FILE_ATTR  
			
		
	
		
			
				
					}  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					ATTR_DB_CONN_JAR  =  " conn_jar_name "  
			
		
	
		
			
				
					"""  optional attribute for connection-jar-file instead of connection by ip, port  """  
			
		
	
		
			
				
					ATTR_CONN_HOST  =  " hostname "  
			
		
	
		
			
				
					"""  optional attribute for connection-jar-file instead of connection by ip, port  """  
			
		
	
		
			
				
					ATTR_CONN_TENANT  =  " tenant "  
			
		
	
		
			
				
					"""  optional attribute for connection-jar-file instead of connection by ip, port  """  
			
		
	
		
			
				
					ATTR_CONN_IP  =  " ip "  
			
		
	
		
			
				
					ATTR_CONN_PORT  =  " port "  
			
		
	
		
			
				
					ATTR_CONN_DOMPATH  =  " dompath "  
			
		
	
		
			
				
					"""  directory where the component is stored in the filesystem  """  
			
		
	
		
			
				
					ATTR_CONN_USER  =  " user "  
			
		
	
		
			
				
					ATTR_CONN_PASSWD  =  " password "  
			
		
	
		
			
				
					LIST_CONN_ATTR  =  [ ATTR_CONN_HOST ,  ATTR_CONN_IP ,  ATTR_CONN_PORT ,  ATTR_CONN_DOMPATH ,  ATTR_CONN_USER ,  ATTR_CONN_PASSWD ]  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					# the configuration of a component or tool  
			
		
	
		
			
				
					# entity {              : variable name of the group, xbasic, component-name or tool-name  
			
		
	
		
			
				
					# + subject       {     : variable subject-name - it correspondends to a tool  
			
		
	
		
			
				
					# + + sub-subject {     : variable subject-name - it correspondends to a tool  
			
		
	
		
			
				
					#     + attributes      : constant of the tool in which the attribute ist implemented  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					# the main subjects            # prog xbasic envir tool comp testcase main implentation module  
			
		
	
		
			
				
					SUBJECT_PATH  =  " paths "          #     | x   |     | x  |    |         path_tool, config_tool  
			
		
	
		
			
				
					"""  This constant defines the subject in order to define paths of filesystem of any testuse  """  
			
		
	
		
			
				
					ATTR_PATH_MODE  =  " mode "  
			
		
	
		
			
				
					"""  This constant defines the home-folder in filesystem of test  """  
			
		
	
		
			
				
					ATTR_PATH_HOME  =  " home "  
			
		
	
		
			
				
					"""  This constant defines the home-folder in testing-filesystem   """  
			
		
	
		
			
				
					ATTR_PATH_DEBUG  =  " debugs "  
			
		
	
		
			
				
					"""  This constant defines the debug-folder in testing-filesystem   """  
			
		
	
		
			
				
					ATTR_PATH_ARCHIV  =  " archiv "  
			
		
	
		
			
				
					"""  This constant defines the folder in testing-filesystem for results and log of execution   """  
			
		
	
		
			
				
					ATTR_PATH_EXPECT  =  " expect "  
			
		
	
		
			
				
					"""  This constant defines the folder in testing-filesystem for test-expectation values  """  
			
		
	
		
			
				
					ATTR_PATH_PROGRAM  =  " program "  
			
		
	
		
			
				
					"""  This constant defines the program-folder in the workspace  """  
			
		
	
		
			
				
					ATTR_PATH_COMPS  =  " components "  
			
		
	
		
			
				
					"""  This constant defines the subfolder in the program-folder in the workspace  """  
			
		
	
		
			
				
					ATTR_PATH_ENV  =  " environment "  
			
		
	
		
			
				
					"""  This constant defines the folder in testing-filesystem, used for configs related to environments  """  
			
		
	
		
			
				
					ATTR_PATH_RELEASE  =  " release "  
			
		
	
		
			
				
					"""  This constant defines the folder in testing-filesystem, used for configs related to release  """  
			
		
	
		
			
				
					ATTR_PATH_TDATA  =  " testdata "  
			
		
	
		
			
				
					"""  This constant defines the folder in testing-filesystem with the testcase-specifications  """  
			
		
	
		
			
				
					ATTR_PATH_PATTN  =  " pattern "  
			
		
	
		
			
				
					"""  This constant defines the debug-folder in testing-filesystem   """  
			
		
	
		
			
				
					SUBJECT_APP  =  " application "  
			
		
	
		
			
				
					SUBJECT_APPS  =  " applications "   #     | x   |     |    |    |         CompHandling  
			
		
	
		
			
				
					ATTR_APPS_PROJECT  =  " project "         #     |     |     |    | x  |         CompHanlding  
			
		
	
		
			
				
					SUBJECT_ENTITY  =  " entity "  
			
		
	
		
			
				
					SUBJECT_INST  =  " instance "       #     |     |     |    | x  |         CompHanlding  
			
		
	
		
			
				
					ATTR_INST_CNT  =  " count "         #     |     |     |    | x  |         CompHanlding  
			
		
	
		
			
				
					ATTR_INST_SGL  =  " single "  
			
		
	
		
			
				
					LIST_INST_ATTR  =  [ ATTR_INST_CNT ,  ATTR_INST_SGL ]  
			
		
	
		
			
				
					SUBJECT_COMP  =  " component "  
			
		
	
		
			
				
					SUBJECT_COMPS  =  SUBJECT_COMP + " s "  
			
		
	
		
			
				
					ATTR_INST_SUBCOMP  =  SUBJECT_COMPS  
			
		
	
		
			
				
					ATTR_INST_TESTSERVER  =  " Testserver "  
			
		
	
		
			
				
					#SUBJECT_FCT  = "function"      #     |     |     |    | x  |         main-programs  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					SUBJECT_USECASE  =  " usecase "  
			
		
	
		
			
				
					SUBJECT_USECASES  =  SUBJECT_USECASE + " s "  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					SUBJECT_REL  =  " release "  
			
		
	
		
			
				
					SUBJECT_RELS  =  SUBJECT_REL + " s "  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					SUBJECT_TESTCASE  =  " testcase "  
			
		
	
		
			
				
					SUBJECT_TESTCASES  =  SUBJECT_TESTCASE + " s "  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					SUBJECT_TESTSUITE  =  " testsuite "  
			
		
	
		
			
				
					SUBJECT_TESTSUITES  =  SUBJECT_TESTSUITE + " s "  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					SUBJECT_TESTPLAN  =  " testplan "  
			
		
	
		
			
				
					SUBJECT_TESTPLANS  =  SUBJECT_TESTPLAN + " s "  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					"""    
			
		
	
		
			
				
					in  this  subject - node  are  each  kind  of  result  of  any  component  with  the  structure :  
			
		
	
		
			
				
					  *  topic  ( db ,  cli ,  api ,  . . . )  
			
		
	
		
			
				
					  *  *  general  attributes  -  to - know :  technical  attributes  are  stored  in  connection - tree  
			
		
	
		
			
				
					  *  *  partial - component   -  to - know :  the  existence  of  db - tables  can  be  defined  in  the  ddl - tree  
			
		
	
		
			
				
					  *  *  *  specific  attributes  -  it  overrides  the  general  attributes  
			
		
	
		
			
				
					"""  
			
		
	
		
			
				
					SUBJECT_ARTS  =  " artifact "       #     |     |     |    | x  |         Component  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					SUBJECT_VARIANTS  =  " variants "  
			
		
	
		
			
				
					#ATTR_ARTS_DB = "db"  
			
		
	
		
			
				
					ATTR_ARTS_LOG  =  " log "  
			
		
	
		
			
				
					ATTR_ARTS_LOB  =  " lob "  
			
		
	
		
			
				
					ATTR_ARTS_FILE  =  " file "  
			
		
	
		
			
				
					#SUBJECT_DB   = "databases"     #     |     |     |    | #  |         db*_tools, match_tool  
			
		
	
		
			
				
					SUBJECT_PROJECT  =  " project "  
			
		
	
		
			
				
					SUBJECT_PROJECTS  =  SUBJECT_PROJECT + " s "  
			
		
	
		
			
				
					SUBJECT_ENV  =  PAR_ENV  
			
		
	
		
			
				
					SUBJECT_STORY  =  " story "  
			
		
	
		
			
				
					SUBJECT_STORIES  =  " stories "  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					SUBJECT_CONN  =  " conn "           #     |     | x   |    |    |         conn_tool, db*_tools, cli*_toold  
			
		
	
		
			
				
					ATTR_TYPE  =  " type "     #     | x   | x   |    | x  |         conn_tool, toolHandling, db*_tools  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					RULE_ACCEPTANCE  =  " acceptance "  #     |     |     |    | x  |         tools_match  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					ATTR_STEP_ARGS  =  " args "  
			
		
	
		
			
				
					ATTR_EXEC_REF  =  " _exec "  
			
		
	
		
			
				
					ATTR_DATA_REF  =  " _nr "  
			
		
	
		
			
				
					ATTR_DATA_COMP  =  " _comp "  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					SUBJECT_DESCRIPTION  =  " description "  
			
		
	
		
			
				
					SUBJECT_REFERENCE  =  " reference "  
			
		
	
		
			
				
					# -- key-values -----------------------------------------------  
			
		
	
		
			
				
					#  _                         _  
			
		
	
		
			
				
					# | | _____ _   ___   ____ _| |_   _  ___  ___  
			
		
	
		
			
				
					# | |/ / _ \ | | \ \ / / _` | | | | |/ _ \/ __|  
			
		
	
		
			
				
					# |   <  __/ |_| |\ V / (_| | | |_| |  __/\__ \  
			
		
	
		
			
				
					# |_|\_\___|\__, | \_/ \__,_|_|\__,_|\___||___/  
			
		
	
		
			
				
					#           |___/  
			
		
	
		
			
				
					# -------------------------------------------------------------  
			
		
	
		
			
				
					BASIS_FILE  =  " basis "  
			
		
	
		
			
				
					SVAL_YES  =  " y "  
			
		
	
		
			
				
					SVAL_NO  =  " n "  
			
		
	
		
			
				
					SVAL_NULL  =  " null "  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					SUBJECT_TOOL  =  " tool "  
			
		
	
		
			
				
					LIST_SUBJECTS  =  [ SUBJECT_APPS ,  SUBJECT_ARTS ,  SUBJECT_CONN ,  SUBJECT_COMPS ,  SUBJECT_INST ,  SUBJECT_TOOL ,  SUBJECT_PROJECTS ]  
			
		
	
		
			
				
					# -------------------------------------------------------------  
			
		
	
		
			
				
					# exception texts  
			
		
	
		
			
				
					EXP_NO_BASIS_FILE  =  " basis file cant be found "  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					EXCEPT_NOT_IMPLEMENT  =  " method is not implemented "  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					EXCEPT_NOT_INITIALIZED  =  " class is not initialized "  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					home  =  os . getcwd ( )  
			
		
	
		
			
				
					prgdir  =  " "  
			
		
	
		
			
				
					if  home [ - 4 : ]  ==  " test " :  
			
		
	
		
			
				
					    home  =  home [ 0 : - 5 ]  
			
		
	
		
			
				
					if  home [ - 10 : ]  ==  " components " :  
			
		
	
		
			
				
					    home  =  home [ 0 : - 11 ]  
			
		
	
		
			
				
					if  home [ - 9 : ]  ==  " program " :  
			
		
	
		
			
				
					    prgdir  =  home [ - 6 : ]  
			
		
	
		
			
				
					    home  =  home [ 0 : - 7 ]  
			
		
	
		
			
				
					elif  home [ - 7 : ]  ==  " program " :  
			
		
	
		
			
				
					    prgdir  =  home [ - 7 : ]  
			
		
	
		
			
				
					    home  =  home [ 0 : - 8 ]  
			
		
	
		
			
				
					HOME_PATH  =  home