def test_get_from_private_repo(): giturl = "[email protected]:cao5zy/test_private_repo.git" tag = "v1.0.0" location = test_root() get_tag(giturl, tag, location=location) assert_that(os.path.join(test_root(), "test_private_repo")).exists()
def test_get(): giturl = "https://github.com/cao5zy/testrepo" tag = "v0.0.1" location = test_root() get_tag(giturl, tag, location=location) assert_that(os.path.join(test_root(), "testrepo")).exists()
def setup_roles_files(): init_test_folder() put_file( "dev.cfg", put_folder("deploy", put_folder("project1", test_root())), ''' { "project_name":"name1", "dependencies":[ {"project_name": "project2"} ], "roles_seq":["main", "test"] } ''') put_file("index.js", put_folder("src", put_folder("project1", test_root())), '''//for test only''') put_file("dev.cfg", put_folder("deploy", put_folder("project2", test_root())), ''' { "project_name":"name2", "roles_seq":["main"] } ''')
def init_test_build_gate_with_authorization(): put_file('dev.cfg', put_folder('deploy', put_folder('inventory_service', test_root())), ''' { "project_name": "inventory_service", "dependencies": [{ "project_name": "inventory_service_authorization", "config_name": "dev" }], "roles_seq": ["main"] } ''') put_file('main.yml', put_folder('tasks', put_folder('roles', put_folder('deploy', put_folder('inventory_service', test_root())))), ''' --- -name: hello from main ... ''') put_file('dev.cfg', put_folder('deploy', put_folder('inventory_service_authorization', test_root())), ''' { "project_name": "inventory_service_authorization", "roles_seq": ["main"] } ''') assert_that(os.path.join(test_root(), "inventory_service_authorization", "deploy", "dev.cfg")).exists() put_file('main.yml', put_folder('tasks', put_folder('roles', put_folder('deploy', put_folder('inventory_service_authorization', test_root())))), ''' --- -name: hello from main ... ''') assert_that(os.path.join(test_root(), "inventory_service_authorization", "deploy", "roles", "tasks", "main.yml")).exists()
def test_copy_directory(): copy_directory(os.path.join(test_root(), 'folder1'), os.path.join(test_root(), 'folder1-x')) assert_that(os.path.join(test_root(), 'folder1-x', 'test1.txt')).exists() assert_that(os.path.join(test_root(), 'folder1-x', 'test2.txt')).exists() assert_that(os.path.join(test_root(), 'folder1-x', 'folder2', 'test3.txt')).exists()
def test_clear_deploy(): assert_that(os.path.join(test_root(), "project1", "deploy", ".dev")).exists() clear_deploy(os.path.join(test_root(), "project1"), "dev") assert_that( os.path.exists(os.path.join(test_root(), "project1", "deploy", ".dev"))).is_false()
def test_build_gate_with_no_auth(): try: init_root(test_root()) build_gate(project_name, config_name, True, "inventory_service:/", "inventory_service") finally: init_root(os.getcwd()) yml_content = contents_of(os.path.join(test_root(), project_name, "deploy", "roles", "microservice_gate", "templates", "login.conf.template")) assert_that(yml_content.replace(os.linesep, '')).does_not_contain('location / {\tresolver {{auth_db_ip}} valid=30s')
def test_build(): assert_that( os.path.join(test_root(), "project1", "deploy", "roles", "main", "defaults", "main.yml")).exists() build_deploy_script("project1", "dev") assert_that( demjson.decode_file( os.path.join(test_root(), "project1", "deploy", "dev.cfg"))["predefined_variables"]).contains_entry( {"name1": "a"}, {"name2": "b"})
def setup_init_config(): init_test_folder() (F(put_folder, "abc") >> \ F(put_folder, "deploy") >> \ F(put_folder, "roles") >> \ F(put_folder, "role1"))(test_root()) (F(put_folder, "abc") >> \ F(put_folder, "deploy") >> \ F(put_folder, "roles") >> \ F(put_folder, "role2"))(test_root())
def test_build_gate_with_proxy_mapping(): try: init_root(test_root()) build_gate(project_name, config_name, True, "inventory_service:/") finally: init_root(os.getcwd()) yml_content = contents_of(os.path.join(test_root(), project_name, "deploy", "roles", "microservice_gate", "templates", "login.conf.template")) assert_that(yml_content).contains('location / {') \ .contains('http://inventory_service/;')
def test_build_gate(): try: init_root(test_root()) build_gate(project_name, config_name, True) finally: init_root(os.getcwd()) assert_that(os.path.join(test_root(), project_name, "deploy", "roles", "auth_db")).exists() assert_that(os.path.join(test_root(), project_name, "deploy", "roles", "microservice_gate")).exists() config = demjson.decode_file(os.path.join(test_root(), project_name, "deploy", "dev.cfg")) assert_that(config["roles_seq"]).contains("auth_db").contains("microservice_gate")
def test_build_gate_with_authorization(): try: init_root(test_root()) build_gate(project_name, config_name, True, authorization="inventory_service_authorization") finally: init_root(os.getcwd()) def dumy(config_path): assert_that(config_path).exists() yml_content = contents_of(config_path) assert_that(yml_content).does_not_contain('"inventory_service"') dumy(os.path.join(test_root(), project_name, "deploy", "roles", "microservice_gate", "templates", "login.conf.template"))
def test_link_rols(): roles_data = roles_load( os.path.join(test_root(), "project1", "deploy", "dev.cfg")) roles_link(roles_data, os.path.join(test_root(), "project1", "deploy")) assert_that(".test/project1/deploy/roles/project1_main").exists() assert_that(".test/project1/deploy/roles/project1_test").exists() assert_that(".test/project1/deploy/roles/project2_main").exists() assert_that( os.path.islink(".test/project1/deploy/roles/project1_main")).is_true() assert_that( os.path.islink(".test/project1/deploy/roles/project1_test")).is_true() assert_that( os.path.islink(".test/project1/deploy/roles/project2_main")).is_true()
def setup_roles_folder(): setup_roles_files() put_folder( "main", put_folder("roles", put_folder("deploy", put_folder("project1", test_root())))) put_folder( "test", put_folder("roles", put_folder("deploy", put_folder("project1", test_root())))) put_folder( "main", put_folder("roles", put_folder("deploy", put_folder("project2", test_root()))))
def load_resource(resource_name, folderpath = resources_folder): def copy(source_folder, target_folder): assert_that(source_folder).exists() shutil.copytree(source_folder, os.path.join(target_folder, resource_name)) assert_that(os.path.join(target_folder, resource_name)).exists() copy(os.path.join(folderpath, resource_name), test_root())
def test_config(): def dumy(config): assert_that(config.defaults).contains_entry({ 'db': 'service1' }).contains_entry({'db_port': '232'}) dumy(cfg(os.path.join(test_root(), 'get_data_file', 'db.cfg')))
def setup_build(): init_test_folder() init_root(test_root()) project_folder = F(put_folder, "project1") >> F(put_folder, "deploy") put_file("main.yml", \ (project_folder >> F(put_folder, "roles") >> F(put_folder, "main") >> F(put_folder, "defaults"))(test_root()),\ '''--- name1: "a" name2: "b" ... ''') put_file("dev.cfg", \ project_folder(test_root()), '''{ "project_name": "project1", "roles_seq": ["main"] } ''')
def test_get_roles(): roleobjs = debug_simple( roles_load(os.path.join(test_root(), "project1", "deploy", "dev.cfg"))) assert_that(roleobjs).is_length(3) assert_that(roleobjs[0]).contains_entry( {"name": "project2_main"}, {"local": get_project_path("project2")}) assert_that(roleobjs[len(roleobjs) - 1]).contains_entry( {"name": "project1_test"}, {"local": get_project_path("project1")})
def test_config(): project_path = "project1" config_name = "dev" deploy_config(project_path, config_name) assert_that(contents_of(os.path.join(test_root(), project_path, "deploy", "." + config_name, "main.host"))) \ .contains("[all:vars]") \ .contains('name1 = aa bb') \ .contains('name2 = bb') \ .contains('name3 = c') \ .contains('1.1.1.1')
def init_test_build_gate(): put_file('dev.cfg', put_folder('deploy', put_folder('inventory_service', test_root())), ''' { "project_name": "inventory_service", "roles_seq": ["main"] } ''') put_file('main.yml', put_folder('tasks', put_folder('roles', put_folder('deploy', put_folder('inventory_service', test_root())))), ''' --- -name: hello from main ... ''')
def setup_test_folder(): init_test_folder() def create(root_folder): put_file("level3_file", put_folder("level3", put_folder("level2", root_folder)), "hello level3_file") os.symlink( os.path.join(os.path.abspath(root_folder), "level2", "level3"), os.path.join(os.path.abspath(root_folder), "link_to_level2")) create(put_folder("level1", test_root()))
def test_read_sub_folders_from_link(): def test(result): assert_that(result).contains_duplicates() assert_that(list(filter(lambda x: x.find("level3_file") != -1, result))).is_length(2) test([ y for x in [ debug.simple(files, "test_read_sub_folders_from_link") for _, _, files in os.walk(test_root(), followlinks=True) ] for y in x ])
def setup_deploy(): init_test_folder() project_folder = F(put_folder, "project1") >> F(put_folder, "deploy") put_file("main.host", \ (project_folder >> F(put_folder, ".dev"))(test_root()),\ '''[all:vars] name1=a b name2=b name3=c [remote] 1.1.1.1 ''') put_file("dev.cfg", \ project_folder(test_root()), '''{ "project_name": "project1", "roles_seq": ["main"], "predefined_variables": { "name1": "aa bb", "name2": "bb" } } ''')
def test_get_data(): assert_that( get_data(get_data_file(os.path.join(test_root(), 'get_data_file')))).is_not_empty()
def test_get_data_file_will_cause_error(): assert_that(get_data_file).raises(AssertionError).when_called_with( os.path.join(test_root(), 'get_data_file_error_case'))
import os from assertpy import assert_that from codegenhelper import test_root, init_test_folder, remove_test_folder from ..util import init_root, get_project_path from nose import with_setup from ..debug import simple as debug_simple from ..roles import link as roles_link, load as roles_load from .setup_roles_data import setup_roles_files, setup_roles_folder init_root(test_root()) @with_setup(setup_roles_files, remove_test_folder) def test_get_roles(): roleobjs = debug_simple( roles_load(os.path.join(test_root(), "project1", "deploy", "dev.cfg"))) assert_that(roleobjs).is_length(3) assert_that(roleobjs[0]).contains_entry( {"name": "project2_main"}, {"local": get_project_path("project2")}) assert_that(roleobjs[len(roleobjs) - 1]).contains_entry( {"name": "project1_test"}, {"local": get_project_path("project1")}) @with_setup(setup_roles_folder, remove_test_folder) def test_link_rols(): roles_data = roles_load( os.path.join(test_root(), "project1", "deploy", "dev.cfg")) roles_link(roles_data, os.path.join(test_root(), "project1", "deploy")) assert_that(".test/project1/deploy/roles/project1_main").exists()
def init_get_target_directory(): init_with_template(test_root(), 'template_app')
def test_get_target_directory(): assert_that( get_target_directory( 'componentA', os.path.join(test_root(), 'template_app'))).contains( '.test/template_app/components/componentA')
from nose import with_setup from codegenhelper import put_folder, remove, put_file, compose_dir, test_root, init_test_folder, remove_test_folder from assertpy import assert_that, contents_of import os from code_engine import app import logging logging.basicConfig(level=logging.DEBUG) outputpath = os.path.join(test_root(), "folder1") template_path = os.path.join(test_root(), "folder2") def setup_test_app(): put_file("my.py.t", put_folder(template_path), ''' def {{name}}(){} ''') @with_setup(setup_test_app, remove_test_folder) def test_app(): data = {"name": "main", "age": 38} app.publish(template_path, data, outputpath) content = contents_of(os.path.join(outputpath, "my.py")) assert_that(content).contains("def main(){}")
def setup_copy_directory(): put_file('test1.txt', put_folder('folder1', test_root()), '') put_file('test2.txt', put_folder('folder1', test_root()), '') put_file('test3.txt', put_folder('folder2', os.path.join(test_root(), 'folder1')), '')