Advertisement
Guest User

generator_file_feature.py

a guest
Jan 3rd, 2020
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.26 KB | None | 0 0
  1. # /usr/bin/python3!
  2. #_*_coding:utf-8_*_
  3. # Imports.
  4.  
  5.  
  6.  
  7. """Generator Files Features.
  8.    
  9.    @date=    mar 17 dic 2019 17:08:27 CET
  10.    @authors= Juan Reinosa, Marco Baturan
  11.    @version= 0.2
  12.    
  13.    Tool for read analysis file with list
  14.    of features and scenarios and generate
  15.    a skeleton in folder project for
  16.    concatenate the steps of analysis with
  17.    generating the features files.
  18.    
  19.    It has four components:
  20.      - read               function
  21.      - parser             function            
  22.      - structure          function
  23.      - language           function
  24.      
  25.    :var list.txt
  26.    
  27.    TODO:
  28.      - fubción de control #PENDANT!!
  29.      
  30.    For read this help:
  31.      >>>help(generator_files_features)
  32.      
  33.    Format file example:
  34.      *Bank_function_lang
  35.      +Feature name
  36.      -Scenario name
  37.      
  38.    And generate a file with format:
  39.      Bank_Function_Lang.feature
  40.      
  41.      @Decorator
  42.      Feature: [lang]  bankName featureName
  43.      
  44.      @lang
  45.      Scenario: [lang] scenario name
  46.      
  47.        '...'
  48. """
  49.  
  50. def abstracto_afs(signos=''):
  51.     """Abstracción de la función.
  52.        
  53.        Esta función es una abstracción de la
  54.        generación de archivos, caracteristicas y
  55.        escenarios.
  56.        
  57.        Se la tiene que invocar por paso por
  58.        variable en la función principal.
  59.        
  60.    """
  61.    
  62.     signo=signos      # Indica por cual signo buscar.
  63.     eliminar=''       # Reemplaza el signo *.
  64.     datos=[]          # Almacena la lista de lineas de cada tipo.
  65.    
  66.     with open('list.txt','r') as lineas: # Abre el listado.
  67.         for linea in lineas:             # Lee linea por linea.
  68.             if signo in linea:           # Si hay signo en linea.
  69.                 # Busca el signo, remplaza por nada y agrega el titulo a lista.
  70.                 datos.append(linea.replace(signo,eliminar))
  71.     return datos                         # Devuelve el resultado.
  72.  
  73.  
  74. def generador():
  75.     titulo = abstracto_afs('*')   # Invoca función externa para título.
  76.     feature = abstracto_afs('+')  # Invoca función externa para caracteristica.
  77.     scenario = abstracto_afs('-') # Invoca función externa para escenario.
  78.        
  79.     for t in titulo:                          # Crea el archivo.
  80.         t=t[:-1]                              # Quita salto de linea.
  81.         f = open('{}.feature'.format(t), 'w') # Abre archivo.
  82.         t=t.replace('_','')                   # Quita el _.
  83.         lang = t[-3:]                         # Coje idioma.
  84.         t=t[:-3]                              # Quita idioma de linea.
  85.         f.write('@{}_setup\n'.format(t))      # Inserta decorador.
  86.         for item in feature:                  # Busca elemento en feature.
  87.             # Escribe en el archivo la linea compuesta.
  88.             f.write('Feature: [{}] {}\n'.format(lang, item))
  89.             # Busca en scenario.
  90.             for s in scenario:                  # Crea los escenarios.
  91.                 f.write('\n')                   # Salto de linea.
  92.                 f.write('  @{}\n'.format(lang)) # Idioma.
  93.                 # Escribe en el archivo la linea compuesta.
  94.                 f.write('  Scenario: [{}] Validate {}\n'.format(lang, s))
  95.                
  96.  
  97. generador()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement