def test_empty_string(): try: parse_blocks('') except ValueError: assert True else: assert False, "Content must be not empty"
def test_mapping_not_found(): content = ''' D: Native API ''' assert parse_blocks(content, {'M': 'Maintainer'}) == [ ('D', {'D': ['Native API']}) ]
def test_mapping(): content = ''' D: Native API ''' assert parse_blocks(content, {'D': 'Domain'}) == [ ('Domain', {'Domain': ['Native API']}) ]
def test_multi_attrs(): content = ''' D: System M: Markus M: Mickey ''' assert parse_blocks(content) == [ ('D', {'D': ['System'], 'M': ['Markus', 'Mickey']}) ]
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
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()
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']}), ]
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()
def test_unicode(): content = 'D: 安全' assert parse_blocks(content) == [ ('D', {'D': ['安全']}) ]