示例#1
0
def test_normalize_path():
    root_parent = normalize_path('relative/path.micro', parent='root/file')
    home_parent = normalize_path('relative/path.micro', parent='home/file')
    absolute = normalize_path('/absolute/path.micro', parent='home/file')

    assert root_parent == 'root/relative/path.micro'
    assert home_parent == 'home/relative/path.micro'
    assert absolute == '/absolute/path.micro'
示例#2
0
def load_connection(filename, config=None):
    p = _load(filename)
    if config:
        p.config._load(file_util.normalize_path(config))
    sys.modules[__name__].config = p.config
    setup_connections(p.config, p.connections)
    return p
示例#3
0
def load_server(filename, config=None):
    p = _load(filename)
    if config:
        p.config._load(file_util.normalize_path(config))
    sys.modules[__name__].config = p.config
    SERVER.close()
    setup_servers(p.config, p.servers, p.is_new)
    return p
示例#4
0
def load(micro='micro', files=None, lines=None):

    path = micro

    if files is None:
        files = []
    if lines is None:
        lines = []

    if isinstance(micro, str):
        if micro in files:
            raise Exception(
                'a micro file (in this case, %s) cannot be recursively imported'
                % micro)
        files.append(micro)
        micro = open(micro).readlines()
    elif isinstance(micro, list):
        files.append('dict')
    else:
        raise Exception('Invalid micro file type %s' % type(micro))

    fname = files[-1]

    for num, line in enumerate(micro, start=1):
        line = line.split('#', 1)[0].strip()
        if len(line):
            line = line.split(' ', 1)
            if len(line) == 1:
                raise Exception('too few tokens, file=%s, line=%d' %
                                (fname, num))
            if line[0].lower() == 'import':
                import_fname = normalize_path(line[1], 'micro', parent=path)
                load(import_fname, files, lines)
            else:
                lines.append((fname, num, line[0], line[1]))
    return lines
示例#5
0
def load_config(config='config', micro='micro'):
    p = parser.parse(micro)
    p.config._load(file_util.normalize_path(config))
    sys.modules[__name__].config = p.config
    return p.config
示例#6
0
def _load(path):
    path = file_util.normalize_path(path, filetype='micro')
    p = parser.parse(path)
    return p
示例#7
0
def test_normalize_path_with_dots():
    path = 'os.path.dirname'
    answer = normalize_path(path)
    assert answer[-18:] == 'os.py/path/dirname'