def test_scan_invalid_file_csv(monkeypatch): monkeypatch.setattr(reporting, 'report_generic', report_generic_mocked()) with pytest.raises(StopActorExecution): scan_repositories('files/tests/sample04.csv') assert reporting.report_generic.called == 1 assert 'inhibitor' in reporting.report_generic.report_fields['flags'] assert 'Repositories map file is invalid' in reporting.report_generic.report_fields['title']
def test_scan_empty_file(monkeypatch): monkeypatch.setattr(reporting, 'create_report', create_report_mocked()) with pytest.raises(StopActorExecution): scan_repositories('files/tests/sample02.csv') assert reporting.create_report.called == 1 assert 'inhibitor' in reporting.create_report.report_fields['flags'] assert 'Repositories map file is invalid' in reporting.create_report.report_fields[ 'title']
def test_scan_invalid_file_csv(monkeypatch, line): monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(architecture.ARCH_X86_64)) monkeypatch.setattr(api, 'produce', produce_mocked()) with pytest.raises(StopActorExecutionError) as err: library.scan_repositories(read_repofile_func=ReadRepoFileMock([line])) assert not api.produce.called assert 'The repository mapping file is invalid' in str(err)
def test_scan_invalid_file_csv(monkeypatch): monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(architecture.ARCH_PPC64LE)) monkeypatch.setattr(reporting, 'create_report', create_report_mocked()) with pytest.raises(StopActorExecution): scan_repositories('files/tests/sample04.csv') assert reporting.create_report.called == 1 assert 'inhibitor' in reporting.create_report.report_fields['flags'] assert 'Repositories map file is invalid' in reporting.create_report.report_fields[ 'title']
def test_repository_mapping_file_not_found(monkeypatch): def file_not_exists(_filepath): return False monkeypatch.setattr('os.path.isfile', file_not_exists) monkeypatch.setattr(reporting, 'report_generic', report_generic_mocked()) with pytest.raises(StopActorExecution): scan_repositories('/etc/leapp/files/repomap.csv') assert reporting.report_generic.called == 1 assert 'inhibitor' in reporting.report_generic.report_fields['flags'] assert 'Repositories map file not found' in reporting.report_generic.report_fields['title']
def test_scan_missing_or_empty_file(monkeypatch, isFile, err_summary): monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(architecture.ARCH_X86_64)) monkeypatch.setattr(api, 'produce', produce_mocked()) monkeypatch.setattr('os.path.isfile', lambda dummy: isFile) if isFile: monkeypatch.setattr('os.path.getsize', lambda dummy: 0) with pytest.raises(StopActorExecutionError) as err: library.scan_repositories() assert not api.produce.called assert err_summary in str(err)
def test_repository_mapping_file_not_found(monkeypatch): def file_not_exists(_filepath): return False monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(architecture.ARCH_X86_64)) monkeypatch.setattr('os.path.isfile', file_not_exists) monkeypatch.setattr(reporting, 'create_report', create_report_mocked()) with pytest.raises(StopActorExecution): scan_repositories('/etc/leapp/files/repomap.csv') assert reporting.create_report.called == 1 assert 'inhibitor' in reporting.create_report.report_fields['flags'] assert 'Repositories map file not found' in reporting.create_report.report_fields[ 'title']
def test_scan_valid_file(monkeypatch): monkeypatch.setattr(api, 'produce', produce_mocked()) scan_repositories('files/tests/sample01.csv') assert api.produce.called == 1 assert len(api.produce.model_instances) == 1 assert isinstance(api.produce.model_instances[0], RepositoriesMap) assert len(api.produce.model_instances[0].repositories) == 4 assert isinstance(api.produce.model_instances[0].repositories[0], RepositoryMap) assert api.produce.model_instances[0].repositories[0].from_id == 'FromRepo01' assert api.produce.model_instances[0].repositories[0].repo_type == 'rpm' assert isinstance(api.produce.model_instances[0].repositories[3], RepositoryMap) assert api.produce.model_instances[0].repositories[3].to_id == 'ToRepo04' assert api.produce.model_instances[0].repositories[3].arch == 'ppc64le'
def test_scan_valid_file_without_comments(monkeypatch, arch, src_type, dst_type): envars = { 'LEAPP_DEVEL_SOURCE_PRODUCT_TYPE': src_type, 'LEAPP_DEVEL_TARGET_PRODUCT_TYPE': dst_type } input_data, expected_records = gen_test_data(arch, src_type, dst_type) monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(arch, envars)) monkeypatch.setattr(api, 'produce', produce_mocked()) library.scan_repositories(read_repofile_func=ReadRepoFileMock(input_data)) assert api.produce.called == 1 assert api.produce.model_instances == [ gen_RepositoriesMap(expected_records) ]
def test_scan_valid_file_with_comments(monkeypatch, arch, src_type, dst_type): envars = { 'LEAPP_DEVEL_SOURCE_PRODUCT_TYPE': src_type, 'LEAPP_DEVEL_TARGET_PRODUCT_TYPE': dst_type } input_data, expected_records = gen_test_data(arch, src_type, dst_type) monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(arch, envars)) monkeypatch.setattr(api, 'produce', produce_mocked()) # add one comment and one empty line into the repomap file repofile = ReadRepoFileMock(input_data) repofile.repomap_file.insert(2, '') repofile.repomap_file.insert(3, '# comment') # run library.scan_repositories(read_repofile_func=repofile) assert api.produce.called == 1 assert api.produce.model_instances == [ gen_RepositoriesMap(expected_records) ]
def test_scan_valid_file(monkeypatch): monkeypatch.setattr(api, 'current_actor', CurrentActorMocked(architecture.ARCH_X86_64)) monkeypatch.setattr(api, 'produce', produce_mocked()) scan_repositories('files/tests/sample01.csv') assert api.produce.called == 1 assert len(api.produce.model_instances) == 1 assert isinstance(api.produce.model_instances[0], RepositoriesMap) assert len(api.produce.model_instances[0].repositories) == 4 assert isinstance(api.produce.model_instances[0].repositories[0], RepositoryMap) assert api.produce.model_instances[0].repositories[ 0].from_repoid == 'FromRepo01' assert api.produce.model_instances[0].repositories[0].repo_type == 'rpm' assert isinstance(api.produce.model_instances[0].repositories[3], RepositoryMap) assert api.produce.model_instances[0].repositories[ 3].to_repoid == 'ToRepo04' assert api.produce.model_instances[0].repositories[ 2].to_pes_repo == 'ToName03' assert api.produce.model_instances[0].repositories[ 3].arch == architecture.ARCH_X86_64
def process(self): scan_repositories('/etc/leapp/files/repomap.csv')
def process(self): scan_repositories()