Esempio n. 1
0
def run_tests():
    """
        >>> from ibeis.tests.run_tests import *  # NOQA

    """

    # DONT USE THESE FLAGS
    #print('--testall and --testslow give you more tests')
    # starts logging for tests
    import ibeis

    ibeis._preload()
    # Build module list and run tests
    import sys
    ensure_testing_data()
    if False:
        ut.change_term_title('RUN IBEIS TESTS')
    exclude_doctests_fnames = set([
        '_autogen_explicit_controller',
        'template_definitions.py',
        'autogen_test_script.py',
    ])
    exclude_dirs = [
        '_broken',
        'old',
        'tests',
        'timeits',
        '_scripts',
        '_timeits',
        '_doc',
        'notebook',
    ]
    if ut.in_pyinstaller_package():
        from os.path import dirname
        dpath_list = [dirname(ibeis.__file__)]
        # Run tests for installer
        doctest_modname_list_ = [
            'ibeis.ibsfuncs',
            'ibeis.viz.interact.interact_qres2',
            'ibeis.viz.interact.interact_matches',
            'ibeis.viz.interact.interact_annotations2',
            'ibeis.viz.interact.interact_name',
            'ibeis.viz.interact.interact_query_decision',
            'ibeis.viz.interact.interact_chip',
            'ibeis.viz.interact.interact_qres',
            'ibeis.algo.Config',
            'ibeis.algo.hots._pipeline_helpers',
            'ibeis.algo.hots.name_scoring',
            'ibeis.algo.hots.devcases',
            'ibeis.algo.hots.neighbor_index',
            'ibeis.algo.hots.automated_helpers',
            'ibeis.algo.hots.hots_query_result',
            'ibeis.algo.hots.automated_oracle',
            'ibeis.algo.hots.nn_weights',
            'ibeis.algo.hots.pipeline',
            'ibeis.algo.hots.automated_params',
            'ibeis.algo.hots.vsone_pipeline',
            'ibeis.algo.hots.automatch_suggestor',
            'ibeis.algo.hots.score_normalization',
            'ibeis.algo.hots.query_request',
            'ibeis.algo.hots.chip_match',
            'ibeis.algo.hots.multi_index',
            'ibeis.algo.hots.qt_inc_automatch',
            'ibeis.algo.hots.query_params',
            'ibeis.algo.hots.precision_recall',
            'ibeis.algo.hots.hstypes',
            'ibeis.algo.hots.match_chips4',
            'ibeis.algo.hots.distinctiveness_normalizer',
            'ibeis.algo.hots.automated_matcher',
            'ibeis.algo.hots.special_query',
            'ibeis.algo.hots.scoring',
            'ibeis.algo.preproc.preproc_annot',
            'ibeis.algo.preproc.preproc_imageset',
            'ibeis.algo.preproc.preproc_image',
            'ibeis.algo.preproc.preproc_residual',
            'ibeis.algo.detect.grabmodels',
            'ibeis.control.manual_annot_funcs',
            'ibeis.control.manual_chip_funcs',
            'ibeis.control.manual_species_funcs',
            'ibeis.control.manual_ibeiscontrol_funcs',
            'ibeis.control._autogen_party_funcs',
            'ibeis.control.manual_garelate_funcs',
            'ibeis.control.manual_name_funcs',
            'ibeis.control._sql_helpers',
            'ibeis.control.manual_wildbook_funcs',
            'ibeis.control.controller_inject',
            'ibeis.control.manual_lblimage_funcs',
            'ibeis.control.IBEISControl',
            'ibeis.control._autogen_featweight_funcs',
            'ibeis.control.manual_imageset_funcs',
            'ibeis.control.manual_feat_funcs',
            'ibeis.control.manual_gsgrelate_funcs',
            'ibeis.control._autogen_annotmatch_funcs',
            'ibeis.control.manual_meta_funcs',
            'ibeis.control.manual_lblannot_funcs',
            'ibeis.control.DB_SCHEMA',
            'ibeis.control.manual_lbltype_funcs',
            'ibeis.control.SQLDatabaseControl',
            'ibeis.control.manual_image_funcs',
            'ibeis.control.manual_annotgroup_funcs',
            'ibeis.control.DBCACHE_SCHEMA',
            'ibeis.init.main_helpers',
            'ibeis.init.sysres',
            'ibeis.gui.clock_offset_gui',
            'ibeis.dbio.export_subset',
            'ibeis.dbio.export_hsdb',
            'ibeis.dbio.ingest_database',
        ]
    else:
        dpath_list = ['ibeis']
        doctest_modname_list_ = ut.find_doctestable_modnames(
            dpath_list, exclude_doctests_fnames, exclude_dirs)

    exclude_doctest_pattern = ut.get_argval(
        ('--exclude-doctest-patterns', '--x'), type_=list, default=[])
    if exclude_doctest_pattern is not None:
        import re
        is_ok = [
            all([
                re.search(pat, name) is None for pat in exclude_doctest_pattern
            ]) for name in doctest_modname_list_
        ]
        doctest_modname_list = ut.compress(doctest_modname_list_, is_ok)
    else:
        doctest_modname_list = doctest_modname_list_

    doctest_modname_list2 = []
    for modname in doctest_modname_list:
        try:
            exec('import ' + modname, globals(), locals())
        except ImportError as ex:
            ut.printex(ex, iswarning=True)
            if not ut.in_pyinstaller_package():
                raise
        else:
            doctest_modname_list2.append(modname)

    module_list = [sys.modules[name] for name in doctest_modname_list2]

    nPass, nTotal, failed_cmd_list = ut.doctest_module_list(module_list)
    if nPass != nTotal:
        return 1
    else:
        return 0
Esempio n. 2
0
def run_tests():
    # Build module list and run tests
    import sys

    exclude_doctests_fnames = set([])
    exclude_dirs = ["_broken", "old", "tests", "timeits", "_scripts", "_timeits", "_doc", "notebook"]
    import vtool as vt
    from os.path import dirname

    # dpath_list = ['vtool']
    if ut.in_pyinstaller_package():
        # HACK, find_doctestable_modnames does not work in pyinstaller
        """
        import utool as ut
        import vtool as vt
        dpath_list = [dirname(vt.__file__)]
        doctest_modname_list = ut.find_doctestable_modnames(
            dpath_list, exclude_doctests_fnames, exclude_dirs)
        print(ut.indent('doctest_modname_list = ' + ut.list_str(doctest_modname_list), ' ' * 8))

        """
        doctest_modname_list = [
            "vtool.spatial_verification",
            "vtool.constrained_matching",
            "vtool.coverage_kpts",
            "vtool.image",
            "vtool.histogram",
            "vtool.chip",
            "vtool.distance",
            "vtool.coverage_grid",
            "vtool.linalg",
            "vtool.geometry",
            "vtool.other",
            "vtool.math",
            "vtool.score_normalization",
            "vtool.test_constrained_matching",
            "vtool.keypoint",
            "vtool.sver_c_wrapper",
            "vtool.quality_classifier",
            "vtool.features",
            "vtool.nearest_neighbors",
            "vtool.segmentation",
            "vtool.exif",
            "vtool.patch",
            "vtool.confusion",
            "vtool.blend",
            "vtool.clustering2",
            "vtool.matching",
        ]
    else:
        dpath_list = [dirname(vt.__file__)]
        doctest_modname_list = ut.find_doctestable_modnames(dpath_list, exclude_doctests_fnames, exclude_dirs)

    modname_list2 = []
    for modname in doctest_modname_list:
        try:
            exec("import " + modname, globals(), locals())
        except ImportError as ex:
            ut.printex(ex)
            if not ut.in_pyinstaller_package():
                raise
        else:
            modname_list2.append(modname)

    module_list = [sys.modules[name] for name in modname_list2]
    nPass, nTotal, failed_cmd_list = ut.doctest_module_list(module_list)
    if nPass != nTotal:
        return 1
    else:
        return 0
Esempio n. 3
0
def run_tests():
    """
        >>> from ibeis.tests.run_tests import *  # NOQA
    """
    # starts logging for tests
    import ibeis

    ibeis._preload()
    # Build module list and run tests
    import sys
    if True:
        ensure_testing_data()

    if ut.in_pyinstaller_package():
        # Run tests for installer
        doctest_modname_list_ = static_doctest_modnames()
    else:
        doctest_modname_list_ = dynamic_doctest_modnames()

    exclude_doctest_pattern = ut.get_argval(
        ('--exclude-doctest-patterns', '--x'), type_=list, default=[])
    if exclude_doctest_pattern is not None:
        import re
        is_ok = [
            all([
                re.search(pat, name) is None for pat in exclude_doctest_pattern
            ]) for name in doctest_modname_list_
        ]
        doctest_modname_list = ut.compress(doctest_modname_list_, is_ok)
    else:
        doctest_modname_list = doctest_modname_list_

    coverage = ut.get_argflag((
        '--coverage',
        '--cov',
    ))
    if coverage:
        import coverage
        cov = coverage.Coverage(source=doctest_modname_list)
        cov.start()
        print('Starting coverage')

        exclude_lines = [
            'pragma: no cover',
            'def __repr__',
            'if self.debug:',
            'if settings.DEBUG',
            'raise AssertionError',
            'raise NotImplementedError',
            'if 0:',
            'if ut.VERBOSE',
            'if _debug:',
            'if __name__ == .__main__.:',
            'print(.*)',
        ]
        for line in exclude_lines:
            cov.exclude(line)

    doctest_modname_list2 = []

    try:
        import guitool  # NOQA
    except ImportError:
        HAVE_GUI = False
    else:
        HAVE_GUI = True

    # Remove gui things if possible
    import re
    if not HAVE_GUI:
        doctest_modname_list = [
            modname for modname in doctest_modname_list_
            if not re.search('\\bgui\\b', modname)
            and not re.search('\\bviz\\b', modname)
        ]

    for modname in doctest_modname_list:
        try:
            exec('import ' + modname, globals(), locals())
        except ImportError as ex:
            ut.printex(ex, iswarning=True)
            # import parse
            # if not HAVE_GUI:
            #     try:
            #         parsed = parse.parse('No module named {}', str(ex))
            #         if parsed is None:
            #             parsed = parse.parse('cannot import name {}', str(ex))
            #         if parsed is not None:
            #             if parsed[0].endswith('_gui'):
            #                 print('skipping gui module %r' % (parsed[0],))
            #                 continue
            #             if parsed[0].startswith('viz_'):
            #                 print('skipping viz module %r' % (parsed[0],))
            #                 continue
            #             if parsed[0].startswith('interact_'):
            #                 print('skipping interact module %r' % (parsed[0],))
            #                 continue
            #             # if parsed[0] in ['sip']:
            #             #     print('skipping Qt module %r' % (parsed[0],))
            #             #     continue
            #     except:
            #         pass
            if not ut.in_pyinstaller_package():
                raise
        else:
            doctest_modname_list2.append(modname)

    module_list = [sys.modules[name] for name in doctest_modname_list2]

    # Write to py.test / nose format
    if ut.get_argflag('--tonose'):
        convert_tests_from_ibeis_to_nose(module_list)
        return 0

    nPass, nTotal, failed_cmd_list = ut.doctest_module_list(module_list)

    if coverage:
        print('Stoping coverage')
        cov.stop()
        print('Saving coverage')
        cov.save()
        print('Generating coverage html report')
        cov.html_report()

    if nPass != nTotal:
        return 1
    else:
        return 0
Esempio n. 4
0
def run_tests():
    # Build module list and run tests
    import sys
    exclude_doctests_fnames = set(['__init__.py'])

    exclude_dirs = [
        '_broken',
        'old',
        'tests',
        'timeits',
        '_scripts',
        '_timeits',
        '_doc',
        'notebook',
    ]
    from os.path import dirname
    #dpath_list = ['vtool']
    if ut.in_pyinstaller_package():
        # HACK, find_doctestable_modnames does not work in pyinstaller
        """
        import utool as ut
        dpath_list = [dirname(ut.__file__)]
        doctest_modname_list = ut.find_doctestable_modnames(
            dpath_list, exclude_doctests_fnames, exclude_dirs)
        print(ut.indent('doctest_modname_list = ' + ut.repr4(doctest_modname_list), ' ' * 8))

        """
        doctest_modname_list = [
            'utool.util_class',
            'utool.util_distances',
            'utool.util_progress',
            'utool.util_cache',
            'utool.Preferences',
            'utool.util_list',
            'utool',
            'utool.util_inspect',
            'utool.util_dict',
            'utool.util_dev',
            'utool.util_time',
            'utool.util_type',
            'utool.util_csv',
            'utool.util_iter',
            'utool.util_print',
            'utool.util_arg',
            'utool.util_logging',
            'utool.util_import',
            'utool.util_parallel',
            'utool.util_cplat',
            'utool.util_str',
            'utool.util_gridsearch',
            'utool.util_numpy',
            'utool.util_dbg',
            'utool.util_io',
            'utool.util_decor',
            'utool.util_grabdata',
            'utool.util_path',
            'utool.util_git',
            'utool.util_inject',
            'utool.util_regex',
            'utool.util_assert',
            'utool.util_latex',
            'utool.util_tests',
            'utool.util_config',
            'utool.util_autogen',
            'utool.util_hash',
            'utool.util_alg',
            'utool.util_resources',
            'utool._internal.meta_util_iter',
        ]
    else:
        #dpath_list = ['utool']
        dpath_list = [dirname(ut.__file__)]
        doctest_modname_list = ut.find_doctestable_modnames(
            dpath_list, exclude_doctests_fnames, exclude_dirs)
    # Finding weird error
    # util cache and util inspect
    #doctest_modname_list = (doctest_modname_list[4:5] + doctest_modname_list[17:18])
    #doctest_modname_list = doctest_modname_list[17:18]

    modname_list2 = []
    for modname in doctest_modname_list:
        try:
            exec('import ' + modname, globals(), locals())
        except ImportError as ex:
            ut.printex(ex)
            if not ut.in_pyinstaller_package():
                raise
        else:
            modname_list2.append(modname)

    module_list = [sys.modules[name] for name in modname_list2]

    # Write to py.test / nose format
    if ut.get_argflag('--tonose'):
        convert_tests_from_utool_to_nose(module_list)
        return 0

    nPass, nTotal, failed_cmd_list = ut.doctest_module_list(module_list)
    if nPass != nTotal:
        return 1
    else:
        return 0
Esempio n. 5
0
def run_tests():
    # Build module list and run tests
    import sys
    exclude_doctests_fnames = set([])
    exclude_dirs = [
        '_broken',
        'old',
        'tests',
        'timeits',
        '_scripts',
        '_timeits',
        '_doc',
        'notebook',
    ]
    import vtool as vt
    from os.path import dirname
    #dpath_list = ['vtool']
    if ut.in_pyinstaller_package():
        # HACK, find_doctestable_modnames does not work in pyinstaller
        """
        import utool as ut
        import vtool as vt
        dpath_list = [dirname(vt.__file__)]
        doctest_modname_list = ut.find_doctestable_modnames(
            dpath_list, exclude_doctests_fnames, exclude_dirs)
        print(ut.indent('doctest_modname_list = ' + ut.list_str(doctest_modname_list), ' ' * 8))

        """
        doctest_modname_list = [
            'vtool.spatial_verification',
            'vtool.constrained_matching',
            'vtool.coverage_kpts',
            'vtool.image',
            'vtool.histogram',
            'vtool.chip',
            'vtool.distance',
            'vtool.coverage_grid',
            'vtool.linalg',
            'vtool.geometry',
            'vtool.other',
            'vtool.math',
            'vtool.score_normalization',
            'vtool.test_constrained_matching',
            'vtool.keypoint',
            'vtool.sver_c_wrapper',
            'vtool.quality_classifier',
            'vtool.features',
            'vtool.nearest_neighbors',
            'vtool.segmentation',
            'vtool.exif',
            'vtool.patch',
            'vtool.confusion',
            'vtool.blend',
            'vtool.clustering2',
            'vtool.matching',
        ]
    else:
        dpath_list = [dirname(vt.__file__)]
        doctest_modname_list = ut.find_doctestable_modnames(
            dpath_list, exclude_doctests_fnames, exclude_dirs)

    modname_list2 = []
    for modname in doctest_modname_list:
        try:
            exec('import ' + modname, globals(), locals())
        except ImportError as ex:
            ut.printex(ex)
            if not ut.in_pyinstaller_package():
                raise
        else:
            modname_list2.append(modname)

    module_list = [sys.modules[name] for name in modname_list2]
    nPass, nTotal, failed_cmd_list = ut.doctest_module_list(module_list)
    if nPass != nTotal:
        return 1
    else:
        return 0
Esempio n. 6
0
def run_tests():
    # Build module list and run tests
    import sys
    exclude_doctests_fnames = set(['__init__.py'])

    exclude_dirs = [
        '_broken',
        'old',
        'tests',
        'timeits',
        '_scripts',
        '_timeits',
        '_doc',
        'notebook',
    ]
    from os.path import dirname
    #dpath_list = ['vtool']
    if ut.in_pyinstaller_package():
        # HACK, find_doctestable_modnames does not work in pyinstaller
        """
        import utool as ut
        dpath_list = [dirname(ut.__file__)]
        doctest_modname_list = ut.find_doctestable_modnames(
            dpath_list, exclude_doctests_fnames, exclude_dirs)
        print(ut.indent('doctest_modname_list = ' + ut.list_str(doctest_modname_list), ' ' * 8))

        """
        doctest_modname_list = [
            'utool.util_class',
            'utool.util_distances',
            'utool.util_progress',
            'utool.util_cache',
            'utool.Preferences',
            'utool.util_list',
            'utool',
            'utool.util_inspect',
            'utool.util_dict',
            'utool.util_dev',
            'utool.util_time',
            'utool.util_type',
            'utool.util_csv',
            'utool.util_iter',
            'utool.util_print',
            'utool.util_arg',
            'utool.util_logging',
            'utool.util_import',
            'utool.util_parallel',
            'utool.util_cplat',
            'utool.util_str',
            'utool.util_gridsearch',
            'utool.util_numpy',
            'utool.util_dbg',
            'utool.util_io',
            'utool.util_decor',
            'utool.util_grabdata',
            'utool.util_path',
            'utool.util_git',
            'utool.util_inject',
            'utool.util_regex',
            'utool.util_assert',
            'utool.util_latex',
            'utool.util_tests',
            'utool.util_config',
            'utool.util_autogen',
            'utool.util_hash',
            'utool.util_alg',
            'utool.util_resources',
            'utool._internal.meta_util_iter',
        ]
    else:
        #dpath_list = ['utool']
        dpath_list = [dirname(ut.__file__)]
        doctest_modname_list = ut.find_doctestable_modnames(
            dpath_list, exclude_doctests_fnames, exclude_dirs)
    # Finding weird error
    # util cache and util inspect
    #doctest_modname_list = (doctest_modname_list[4:5] + doctest_modname_list[17:18])
    #doctest_modname_list = doctest_modname_list[17:18]

    modname_list2 = []
    for modname in doctest_modname_list:
        try:
            exec('import ' + modname, globals(), locals())
        except ImportError as ex:
            ut.printex(ex)
            if not ut.in_pyinstaller_package():
                raise
        else:
            modname_list2.append(modname)

    module_list = [sys.modules[name] for name in modname_list2]

    # Write to py.test / nose format
    if ut.get_argflag('--tonose'):
        convert_tests_from_utool_to_nose(module_list)
        return 0

    nPass, nTotal, failed_cmd_list = ut.doctest_module_list(module_list)
    if nPass != nTotal:
        return 1
    else:
        return 0