コード例 #1
0
ファイル: validation_util.py プロジェクト: selgamal/Arelle
def get_test_data(args):
    """
    Produces a list of Pytest Params that can be fed into a parameterized pytest function

    :param args: The args to be parsed by arelle in order to correctly produce the desired result set
    :type args: list of strings
    :return: A list of PyTest Params that can be used to run a parameterized pytest function
    :rtype: list of ::class:: `~pytest.param`
    """
    cntlr = parseAndRun(args)
    results = []
    model_document = cntlr.modelManager.modelXbrl.modelDocument
    if model_document is not None:
        if model_document.type == ModelDocument.Type.TESTCASESINDEX:
            for tc in sorted(model_document.referencesDocument.keys(),
                             key=lambda doc: doc.uri):
                uri_dir_parts = os.path.dirname(tc.uri).split('/')
                test_case_dir = '/'.join(uri_dir_parts[-2:])
                if hasattr(tc, "testcaseVariations"):
                    for mv in tc.testcaseVariations:
                        param = pytest.param(
                            {
                                'status': mv.status,
                                'expected': mv.expected,
                                'actual': mv.actual
                            },
                            id='{}/{}'.format(test_case_dir,
                                              str(mv.id or mv.name)))
                        results.append(param)
    cntlr.modelManager.close()
    PackageManager.close()
    PluginManager.close()
    return results
コード例 #2
0
def test_package_manager_close():
    """
    Test that packagesConfig and packagesMappings are cleared when close is called
    """
    cntlr = Mock()
    PackageManager.init(cntlr, loadPackagesConfig=False)
    assert len(PackageManager.packagesMappings) == 0
    PackageManager.packagesMappings['mapping'] = 'package'
    PackageManager.close()
    assert len(PackageManager.packagesConfig) == 0
    assert len(PackageManager.packagesMappings) == 0
    assert PackageManager._cntlr == cntlr
コード例 #3
0
def test_package_manager_init_config_already_exists():
    """
    Test that packagesConfig is correctly setup during init on a second pass
    """
    cntlr = Mock()
    PackageManager.init(cntlr, loadPackagesConfig=False)
    PackageManager.close()
    PackageManager.init(cntlr, loadPackagesConfig=False)
    assert len(PackageManager.packagesConfig) == 2
    assert 'packages' in PackageManager.packagesConfig
    assert isinstance(PackageManager.packagesConfig.get('packages'), list)
    assert len(PackageManager.packagesConfig.get('packages')) == 0
    assert 'remappings' in PackageManager.packagesConfig
    assert isinstance(PackageManager.packagesConfig.get('remappings'), dict)
    assert len(PackageManager.packagesConfig.get('remappings')) == 0
    assert PackageManager._cntlr == cntlr