Example #1
0
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()
Example #2
0
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()
Example #3
0
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"]
}
''')
Example #4
0
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()
Example #5
0
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()
Example #7
0
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')
Example #8
0
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())
Example #10
0
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/;')
Example #11
0
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")
Example #12
0
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"))
Example #13
0
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()
Example #14
0
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()))))
Example #15
0
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')))
Example #17
0
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"]
}

''')
Example #18
0
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')
Example #20
0
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
...
''')
Example #21
0
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()))
Example #22
0
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'))
Example #26
0
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')
Example #29
0
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(){}")
Example #30
0
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')), '')