Example #1
0
def test_empty_string():
    try:
        parse_blocks('')
    except ValueError:
        assert True
    else:
        assert False, "Content must be not empty"
Example #2
0
def test_mapping_not_found():
    content = '''
    D: Native API
    '''
    assert parse_blocks(content, {'M': 'Maintainer'}) == [
        ('D', {'D': ['Native API']})
        ]
Example #3
0
def test_mapping():
    content = '''
    D: Native API
    '''
    assert parse_blocks(content, {'D': 'Domain'}) == [
        ('Domain', {'Domain': ['Native API']})
        ]
Example #4
0
def test_multi_attrs():
    content = '''
    D: System
    M: Markus
    M: Mickey
    '''
    assert parse_blocks(content) == [
        ('D', {'D': ['System'], 'M': ['Markus', 'Mickey']})
        ]
Example #5
0
def check_scm(domain_str, gittree_str):
    """
    check domain and gittree file.
    The return value: zero means everything is ok, non-zero means something
    is wrong, and the number is the error num in total.
    """
    global _message
    _message = []

    try:
        domains_data = parse_blocks(domain_str, MAPPING)
        trees_data = parse_blocks(gittree_str, MAPPING)
    except ValueError as err:
        error(str(err))
    else:
        domains = check_domain(domains_data)
        check_gittree(trees_data, domains)

    return _message
Example #6
0
def check_scm(domain_str, gittree_str):
    """
    check domain and gittree file.
    The return value: zero means everything is ok, non-zero means something
    is wrong, and the number is the error num in total.
    """
    global _message
    _message = []

    try:
        domains_data = parse_blocks(domain_str, MAPPING)
        trees_data = parse_blocks(gittree_str, MAPPING)
    except ValueError as err:
        error(str(err))
    else:
        domains = check_domain(domains_data)
        check_gittree(trees_data, domains)

    return _message
Example #7
0
def from_unicode(scm_unicode):
    """
    Import scm data from unicode string.

    Strings return from Django model are all unicode. So it will be much
    easier to only deal with unicode string.
    """
    # 1.parse
    rawdata = parse_blocks(scm_unicode, MAPPING)

    # 2.extract and transform
    uc = build_user_cache(rawdata)
    users = transform_users(uc.all())

    (
        domains,
        subdomains,
        domainroles,
        subdomainroles,
        domainrole_users,
        subdomainrole_users,
    ) = transform_domains(rawdata, uc)

    (
        trees,
        tree_licenses,
        treeroles,
        treerole_users,
    ) = transform_trees(rawdata, uc)

    # 3.load
    loader = get_default_loader()
    loader.sync_entity(users, User)
    delete_domains = loader.sync_entity(domains, Domain)
    delete_subdomains = loader.sync_entity(subdomains, SubDomain)
    delete_domainroles = loader.sync_entity(domainroles, DomainRole)
    delete_subdomainroles = loader.sync_entity(subdomainroles, SubDomainRole)
    delete_trees = loader.sync_entity(trees, GitTree)
    delete_treeroles = loader.sync_entity(treeroles, GitTreeRole)

    loader.sync_nnr(domainrole_users, DomainRole, User)
    loader.sync_nnr(subdomainrole_users, SubDomainRole, User)
    loader.sync_nnr(tree_licenses, GitTree, License)
    loader.sync_nnr(treerole_users, GitTreeRole, User)

    delete_treeroles()
    delete_subdomainroles()
    delete_domainroles()
    delete_trees()
    delete_subdomains()
    delete_domains()
Example #8
0
def test_multi_blocks():
    content = '''
    D: App Framework
    M: Maggie

    D: System
    R: Ray

    T: upstream/syslinux
    D: Base
    '''
    assert parse_blocks(content) == [
        ('D', {'D': ['App Framework'], 'M': ['Maggie']}),
        ('D', {'D': ['System'], 'R': ['Ray']}),
        ('T', {'D': ['Base'], 'T': ['upstream/syslinux']}),
        ]
Example #9
0
def from_unicode(scm_unicode):
    """
    Import scm data from unicode string.

    Strings return from Django model are all unicode. So it will be much
    easier to only deal with unicode string.
    """
    # 1.parse
    rawdata = parse_blocks(scm_unicode, MAPPING)

    # 2.extract and transform
    uc = build_user_cache(rawdata)
    users = transform_users(uc.all())

    (domains, subdomains,
     domainroles, subdomainroles,
     domainrole_users, subdomainrole_users,
     ) = transform_domains(rawdata, uc)

    (trees, tree_licenses,
     treeroles, treerole_users,
     ) = transform_trees(rawdata, uc)


    # 3.load
    loader = get_default_loader()
    loader.sync_entity(users, User)
    delete_domains = loader.sync_entity(domains, Domain)
    delete_subdomains = loader.sync_entity(subdomains, SubDomain)
    delete_domainroles = loader.sync_entity(domainroles, DomainRole)
    delete_subdomainroles = loader.sync_entity(subdomainroles, SubDomainRole)
    delete_trees = loader.sync_entity(trees, GitTree)
    delete_treeroles = loader.sync_entity(treeroles, GitTreeRole)

    loader.sync_nnr(domainrole_users, DomainRole, User)
    loader.sync_nnr(subdomainrole_users, SubDomainRole, User)
    loader.sync_nnr(tree_licenses, GitTree, License)
    loader.sync_nnr(treerole_users, GitTreeRole, User)

    delete_treeroles()
    delete_subdomainroles()
    delete_domainroles()
    delete_trees()
    delete_subdomains()
    delete_domains()
Example #10
0
def test_unicode():
    content = 'D: 安全'
    assert parse_blocks(content) == [
        ('D', {'D': ['安全']})
        ]