def test(): django.setup() feature = Feature.objects.get(pk=1) generate_feature_plain_text = FeatureFileGenerator.generate_feature(feature) workspace = WorkSpace.objects.get(pk=2) feature = Feature.objects.first() FeatureFileGenerator.save_feature_file(feature,workspace) return generate_feature_plain_text
def update_feature(request, feature_id): if request.method != 'POST': return HttpResponse("only post allowed") # elif: feature locked should early return else: json_data = request.body updater = StepDtoPostUpdater() result = updater.update(json_data) workspace = WorkSpace.objects.get(pk=result.workspace) FeatureFileGenerator.update_feature_file(result, workspace, json_data) return HttpResponse(request.body)
def save_feature(request): if request.method != 'POST': return HttpResponse("only post allowed") # elif: feature locked should early return else: try: json_data = request.body saver = StepDtoPostSaver() result = saver.save(json_data) item_id = result.id workspace = WorkSpaceGenerater.gen_workspace('web') FeatureFileGenerator.save_feature_file(result, workspace, json_data) result.update_workspace(workspace) return HttpResponse(item_id); except exceptions: return HttpResponse(content='error', content_type=None, status=500, reason='save error')
def test(): django.setup() feature_id = 1 feature = Feature.objects.filter(id=feature_id).first() workspace = WorkSpace.objects.get(pk=feature.workspace) workspace_path = workspace.getFolderPath() dict = Step.getStepByFolder(workspace_path) file_path = FeatureFileGenerator.get_workspace_entrance(workspace) feature = lettuce.Feature.from_file(file_path) feature_dto = FeatureDto(feature.name, feature.description) scenarios = [] for sce in feature.scenarios: s_dto = ScenarioDto('id_missing', sce.name) for s_item in sce.steps: co_func, patten, result = match_definision(s_item, dict) action_type, varlist_tuple, variables = extract_func_info(co_func, s_item, result) step_dto = StepDto() func_code = co_func.func_code step_dto.fill(func_code.co_filename, func_code.co_firstlineno, func_code.co_argcount, varlist_tuple, func_code.co_name, co_func.func_name, action_type, variables, patten, 'id_no_use') s_dto.steps.append(step_dto) scenarios.append(s_dto) feature_dto.fill_scenarios(scenarios) return json.dumps((feature_dto), cls=DataEncoder)
def test(): django.setup() all_steps = '''{ "feature": { "feature_name": "first feature name", "feature_description": "I want to test this first test case for fun", "feature_id": "new", "scenarios": [ { "scenario_name": "first scenario", "scenario_id": "new", "steps": [ { "new": { "action_type": "Given", "co_firstlineno": 8, "co_name": "i_open_browser", "step_name": "I open web browser", "co_argcount": 1, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_browser.py", "co_varnames": [ "step" ], "co_variables":{}, "description":"I open web browser" } }, { "new": { "action_type": "Then", "co_firstlineno": 13, "co_name": "i_open_page", "step_name": "I open page '([^']*)'", "co_argcount": 2, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_browser.py", "co_varnames": [ "step", "url" ], "co_variables": {"url":"http://cn.bing.com/"}, "description": "I open page 'http://cn.bing.com/'" } }, { "new": { "action_type": "When", "co_firstlineno": 14, "co_name": "i_click_element_with_text", "step_name": "I click element with text '([^']*)'", "co_argcount": 2, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_click.py", "co_varnames": [ "step", "text", "element" ], "co_variables":{"text":"button"}, "description":"I click element with text 'button'" } }, { "new": { "action_type": "Then", "co_firstlineno": 18, "co_name": "i_close_browser", "step_name": "I close web browser", "co_argcount": 1, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_browser.py", "co_varnames": [ "step" ], "co_variables":{}, "description":"I close web browser" } } ] }, { "scenario_name": "second scenario", "scenario_id": "new", "steps": [ { "new": { "action_type": "When", "co_firstlineno": 8, "co_name": "i_open_browser", "step_name": "I open web browser", "co_argcount": 1, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_browser.py", "co_varnames": [ "step" ], "co_variables":{}, "description":"I open web browser" } }, { "new": { "action_type": "Then", "co_firstlineno": 13, "co_name": "i_open_page", "step_name": "I open page '([^']*)'", "co_argcount": 2, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_browser.py", "co_varnames": [ "step", "url" ], "co_variables": {"url":"http://www.baidu.com"}, "description": "I open page 'http://www.baidu.com/'" } } ] } ] } }''' workspace = WorkSpaceGenerater.gen_workspace('web') saver = StepDtoPostSaver() result = saver.save(all_steps) result.update_workspace(workspace) FeatureFileGenerator.save_feature_file(result, workspace, all_steps) # print result return result
def generate_feature(self): return FeatureFileGenerator.generate_feature(self) return plain_text
def test(): django.setup() all_steps = '''{ "feature": { "feature_name": "test okcoin user reg form", "feature_description": "just for test", "feature_id": 1, "scenarios": [ { "scenario_name": "first updated scenario", "scenario_id": 1, "steps": [ { "1": { "action_type": "Given", "co_firstlineno": 8, "co_name": "i_open_browser", "step_name": "I open web browser", "co_argcount": 1, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_browser.py", "co_varnames": [ "step" ], "co_variables":{}, "description":"I open web browser" } }, { "new": { "action_type": "When", "co_firstlineno": 13, "co_name": "i_open_page", "step_name": "I open page '([^']*)'", "co_argcount": 2, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_browser.py", "co_varnames": [ "step", "url" ], "co_variables": {"url":"http://www.okcoin.com/"}, "description": "I open page 'http://www.okcoin.com/'" } }, { "3": { "action_type": "Then", "co_firstlineno": 14, "co_name": "i_click_element_with_text", "step_name": "I click element with text '([^']*)'", "co_argcount": 2, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_click.py", "co_varnames": [ "step", "text", "element" ], "co_variables":{"text":"buy"}, "description":"I click element with text 'Trade'" } }, { "new": { "action_type": "Then", "co_firstlineno": 14, "co_name": "i_click_element_with_text", "step_name": "I click element with text '([^']*)'", "co_argcount": 2, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_click.py", "co_varnames": [ "step", "text", "element" ], "co_variables":{"text":"Sign Up"}, "description":"I click element with text 'Sign Up'" } }, { "new": { "action_type": "Then", "co_firstlineno": 18, "co_name": "i_close_browser", "step_name": "I input '([^']*)' into textbox with id '([^']*)'", "co_argcount": 2, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_edit.py", "co_varnames": [ "step", "text", "id" ], "co_variables":{}, "description":"I input '*****@*****.**' into textbox with id 'regUserName'" } }, { "new": { "action_type": "Then", "co_firstlineno": 18, "co_name": "i_close_browser", "step_name": "I input '([^']*)' into textbox with id '([^']*)'", "co_argcount": 2, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_edit.py", "co_varnames": [ "step", "text", "id" ], "co_variables":{}, "description":"I input '123456' into textbox with id 'regPassword'" } }, { "new": { "action_type": "Then", "co_firstlineno": 18, "co_name": "i_close_browser", "step_name": "I input '([^']*)' into textbox with id '([^']*)'", "co_argcount": 2, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_edit.py", "co_varnames": [ "step", "text", "id" ], "co_variables":{}, "description":"I input '123456' into textbox with id 'regRePassword'" } }, { "new": { "action_type": "Then", "co_firstlineno": 18, "co_name": "i_click_element_with_id", "step_name": "I click element with id '([^']*)'", "co_argcount": 2, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_click.py", "co_varnames": [ "step", "id" ], "co_variables":{}, "description":"I click element with id 'agree'" } }, { "new": { "action_type": "Then", "co_firstlineno": 18, "co_name": "i_click_element_with_id", "step_name": "I click element with id '([^']*)'", "co_argcount": 2, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_click.py", "co_varnames": [ "step", "id" ], "co_variables":{}, "description":"I click element with id 'regBtn'" } }, { "4": { "action_type": "Then", "co_firstlineno": 4, "co_name": "i_close_browser", "step_name": "I close web browser", "co_argcount": 1, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_browser.py", "co_varnames": [ "step" ], "co_variables": {}, "description": "I close web browser" } } ] }, { "scenario_name": "second new created scenario", "scenario_id": "new", "steps": [ { "new": { "action_type": "Given", "co_firstlineno": 8, "co_name": "i_open_browser", "step_name": "I open web browser", "co_argcount": 1, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_browser.py", "co_varnames": [ "step" ], "co_variables":{}, "description":"I open web browser" } }, { "new": { "action_type": "When", "co_firstlineno": 13, "co_name": "i_open_page", "step_name": "I open page '([^']*)'", "co_argcount": 2, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_browser.py", "co_varnames": [ "step", "url" ], "co_variables": {"url":"http://cn.bing.com/"}, "description": "I open page 'http://cn.bing.com/'" } }, { "new": { "action_type": "Then", "co_firstlineno": 4, "co_name": "i_close_browser", "step_name": "I close web browser", "co_argcount": 1, "co_file_name": "/Users/bob.zhu/project/todpy/libraries/web/action/features/web_browser.py", "co_varnames": [ "step" ], "co_variables": {}, "description": "I close web browser" } } ] } ] } }''' updater = StepDtoPostUpdater() result = updater.update(all_steps) workspace = WorkSpace.objects.get(pk=result.workspace) FeatureFileGenerator.update_feature_file(result, workspace, all_steps) return result