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
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
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