def page_code_save(): project = request.json['project'] page_name = request.json['pageName'] content = request.json['content'] _verify_permissions(Permissions.STANDARD, project) path = Page(project, page_name).path page_module.edit_page_code(project, page_name, content) _, error = utils.import_module(path) return jsonify({'error': error})
def test_edit_page_code(self, project_session, test_utils): _, project = project_session.activate() page_name = test_utils.create_random_page(project) page_code = ("elem1 = ('id', 'x')\n" "elem2 = ('id', 'y')\n" "def func1():\n" " pass") page.edit_page_code(project, page_name, page_code) with open(Page(project, page_name).path) as f: assert f.read() == page_code
def test_page_components_nested_import(self, project_session, test_utils): """Elements and functions from imported modules are not returned as components of a page """ testdir, project = project_session.activate() sys.path.append(testdir) page_one = test_utils.create_random_page(project) code = 'elem1 = ("id", "test")\n' page.edit_page_code(project, page_one, code) # page_two imports page_one page_two = test_utils.create_random_page(project) code = ('from projects.{}.pages import {}\n' '\n' 'elem2 = ("id", "test")\n'.format(project, page_one)) page.edit_page_code(project, page_two, code) # page_three imports page_two page_three = test_utils.create_random_page(project) code = ('from projects.{}.pages import {}\n' '\n' 'elem3 = ("id", "test")\n'.format(project, page_two)) page.edit_page_code(project, page_three, code) components = Page(project, page_three).components assert len(components['elements']) == 1 assert components['elements'][0]['name'] == 'elem3' # import * code = ('from projects.{}.pages.{} import *\n' '\n' 'elem3 = ("id", "test")\n'.format(project, page_two)) page.edit_page_code(project, page_three, code) components = Page(project, page_three).components assert len(components['elements']) == 1 assert components['elements'][0]['name'] == 'elem3'
def test_page_components_import_lines(self, project_session, test_utils): _, project = project_session.activate() page_name = test_utils.create_random_page(project) code = ( 'import foo\n' 'import bar\n' 'from bar import baz\n' 'from golem.browser import InvalidBrowserIdError, open_browser\n' 'from module import (func1,\n' ' func2)\n' '\n' 'element_one = ("id", "idX", "Element One")\n' 'element_two = ("id", "idX .import", "Element Two")\n' 'element_three = ("id", "idX .from .import", "Element Three")\n') page.edit_page_code(project, page_name, code) components = Page(project, page_name).components expected = [ 'import foo', 'import bar', 'from bar import baz', 'from golem.browser import InvalidBrowserIdError, open_browser', 'from module import (func1,\n func2)' ] assert sorted(components['import_lines']) == sorted(expected)
def test_page_components_imported_names(self, project_session, test_utils): """Elements and functions from imported modules are not returned as components of a page """ testdir, project = project_session.activate() sys.path.append(testdir) page_one = test_utils.create_random_page(project) code = ('elem1 = ("id", "test")\n' '\n' 'def func1():\n' ' pass\n') page.edit_page_code(project, page_one, code) # page_two imports page_one page_two = test_utils.create_random_page(project) code = (f'from projects.{project}.pages import {page_one}\n' '\n' 'elem2 = ("id", "test")\n' '\n' 'def func2():\n' ' pass\n') page.edit_page_code(project, page_two, code) components = Page(project, page_two).components assert len(components['elements']) == 1 assert components['elements'][0]['name'] == 'elem2' assert len(components['functions']) == 1 assert components['functions'][0]['name'] == 'func2' # import * code = (f'from projects.{project}.pages.{page_one} import *\n' '\n' 'elem3 = ("id", "test")\n' '\n' 'def func3():\n' ' pass\n') page.edit_page_code(project, page_two, code) components = Page(project, page_two).components assert len(components['elements']) == 1 assert components['elements'][0]['name'] == 'elem3' assert len(components['functions']) == 1 assert components['functions'][0]['name'] == 'func3'
def create_random_page(project, code=None): page_name = TestUtils.random_string(10) page.create_page(project, page_name) if code is not None: page.edit_page_code(project, page_name, code) return page_name
def test_page_code(self, project_session, test_utils): _, project = project_session.activate() page_name = test_utils.create_random_page(project) file_content = 'test=("id", "xyz")\ntest2=("id", "abc")\n' page.edit_page_code(project, page_name, file_content) assert Page(project, page_name).code == file_content