Commit fa7fa949 authored by Michele Carignani's avatar Michele Carignani
Browse files

fix of basespec location, minor fixes

parent 95091e4d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
name = "robot2doc"
version = "2"

from main import robot2doc
from main import gen_doc
+28 −15
Original line number Diff line number Diff line
@@ -3,9 +3,12 @@
#  Usage: python main.py <FILE_OR_FOLDER> [OUTPUT_FILENAME [MAIN_TITLE]]
#

from robot.api import TestSuiteBuilder
import sys
import testspec
import os

from robot.api import TestSuiteBuilder

from testspec import TestSpec, DOC_BASE_SEC, DOC_TC_LEVEL
from testpurpose import TP

# Configuration
@@ -13,6 +16,7 @@ from testpurpose import TP
DOC_MAIN_TITLE = 'Annex B (informative): Test Cases'
DOC_FILENAME = 'test_spec_from_robot.docx'
FILE = ""
BASE_SPEC = 'basespec.docx'

def keyword_to_line(k):
    '''
@@ -21,13 +25,13 @@ def keyword_to_line(k):
    '''
    return str(k) + " " + " ".join(k.args)

def keywords_to_text(ks):
def keywords_to_text(kws):
    '''
    Takes a list of Robot Framework words and returns a multiline text
    '''
    return "\n".join(map(keyword_to_line, ks))
    return "\n".join(map(keyword_to_line, kws))

def robot2doc(src, doc_fn, doc_main_tit):
def gen_doc(src, doc_fn, doc_main_tit):
    '''
    Converts a Robot test suite to a word document

@@ -40,16 +44,24 @@ def robot2doc(src, doc_fn, doc_main_tit):

    print "Starting.."
    script_dir = os.path.dirname(os.path.realpath(__file__))
    spec = testspec.TestSpec(script_dir('ETSI_GS_Skeleton.docx'))
    wd = os.getcwd()
    
    # Using the absolute path has caused issues. The quick fix is to
    # move temporarily to the source directory
    os.chdir(script_dir)
    try:
        spec = TestSpec(BASE_SPEC)
    #finally:
    #    os.chdir(cwd)

    try:
        workspace = TestSuiteBuilder().build(file)
        workspace = TestSuiteBuilder().build(src)
    except:
        print "Please check that first argument is a folder of Robot files or a single file."
        exit(-1)

    print "Loaded "+ str(len(workspace.suites)) + " test suites."
    sec = testspec.DOC_BASE_SEC - 1
    sec = DOC_BASE_SEC - 1

    spec.add_main_heading(doc_main_tit)
    for suite in workspace.suites:
@@ -58,8 +70,9 @@ def robot2doc(src, doc_fn, doc_main_tit):
        print "  Generating test suite: " + str(suite)
        spec.add_sub_heading(str(suite), sec)
        for i in suite.tests:
            print "      Generating test: " + str(i)
            subsec = subsec + 1
            spec.add_heading(str(i), testspec.DOC_TC_LEVEL, sec, subsec)
            spec.add_heading(str(i), DOC_TC_LEVEL, sec, subsec)
            TP(i.doc).add_to_spec(spec, keywords_to_text(i.keywords))

    spec.save(doc_fn)
@@ -74,4 +87,4 @@ if __name__ == "__main__":
    DOC_FILENAME = sys.argv[2] if len(sys.argv) > 2 else DOC_FILENAME
    DOC_MAIN_TITLE = sys.argv[3] if len(sys.argv) > 3 else DOC_MAIN_TITLE

    robot2doc(FILE, DOC_FILENAME, DOC_MAIN_TITLE)
    gen_doc(FILE, DOC_FILENAME, DOC_MAIN_TITLE)
+6 −2
Original line number Diff line number Diff line
#!/env/python

import os
from docx import Document
from docx.shared import Pt
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT, WD_BREAK_TYPE
@@ -22,6 +23,9 @@ TABLE_STYLE = 'TestTable'
class TestSpec():

    def __init__(self, path=None):
        if path:
	    print "opening doc: "+path
	print "current dir: "+os.getcwd()
	self.doc = Document(path)

    @staticmethod