def define_test_for(context, filename, basename, tests): known_failure = False mocdp_base = os.path.join(dir_from_package_name("mocdp"), "..", "..") outdir = os.path.join(mocdp_base, "out", "mcdp_lang_tests") for test in tests: n = test.__name__.replace("assert_", "").replace("_ndp", "") p_job_id = "%s-%s" % (basename, n) if not known_failure: p_job = context.comp_config(test_one, test, filename, job_id=p_job_id) else: context.comp_config(known_fail, test_one, test, filename, job_id=p_job_id) if not known_failure: if assert_parsable_to_connected_ndp_fn in tests or assert_parsable_to_unconnected_ndp_fn in tests: job_id = "%s-%s" % (basename, "report_ndp1") r = context.comp_config(test_report_ndp1, filename, outdir, basename, job_id=job_id, extra_dep=[p_job]) context.add_report(r, "examples_report_ndp1", file=basename) if assert_parsable_to_connected_ndp_fn in tests: job_id = "%s-%s" % (basename, "report_dp1") r = context.comp_config(test_report_dp1, filename, outdir, basename, job_id=job_id, extra_dep=[p_job]) context.add_report(r, "examples_report_dp1", file=basename)
def define_tests(context): """ Define other mcdp_lang_tests """ filenames = [] folder = dir_from_package_name("mcdp_lang_tests.ok") filenames.extend(locate_files(folder, "*.mcdp")) context = context.child("examples") found = set() def get_unique_basename(f): orig = os.path.splitext(os.path.basename(f))[0] if orig in found: for i in range(10): bn = "%s_%d" % (orig, i + 1) if not bn in found: return bn assert False, (orig, found) else: found.add(orig) return orig if False: folder = os.path.join(dir_from_package_name("mocdp"), "../../libraries") examples2 = list(locate_files(folder, "*.mcdp")) print("Other files found: %s" % examples2) filenames.extend(examples2) else: examples2 = [] for f in filenames: basename = get_unique_basename(f) print("defining %s - %s" % (basename, f)) if f in examples2: contents = open(f).read() if "..." in contents: tests = [assert_semantic_error_fn] else: tests = [assert_parsable_to_connected_ndp_fn] else: tests = get_marked_tests(f) define_test_for(context, f, basename, tests)
def get_test_librarian(): package = dir_from_package_name('mcdp_data') folder = os.path.join(package, 'libraries') if not os.path.exists(folder): raise_desc(ValueError, 'Test folders not found.' , folder=folder) librarian = Librarian() librarian.find_libraries(folder) libraries = librarian.get_libraries() n = len(libraries) if n <= 1: msg = 'Expected more libraries.' raise_desc(ValueError, msg, folder, libraries=libraries) return librarian