private async Task ConvertCoveragePyAsync(string inputFile, string outputFile, PythonLanguageVersion?version) { var baseDir = Path.GetDirectoryName(inputFile); using (FileStream tmp = new FileStream(inputFile, FileMode.Open)) using (FileStream outp = new FileStream(outputFile, FileMode.Create)) { // Read in the data from coverage.py's XML file CoverageFileInfo[] fileInfo = new CoveragePyConverter(baseDir, tmp).Parse(); // Discover what version we should use for this if one hasn't been provided... if (version == null) { foreach (var file in fileInfo) { var factory = GetFactory(_serviceProvider, file.Filename); version = factory?.Configuration.Version.ToLanguageVersion(); if (version.HasValue) { break; } } } // Convert that into offsets within the actual code var covInfo = Import(fileInfo, version ?? PythonLanguageVersion.None); // Then export as .coveragexml new CoverageExporter(outp, covInfo).Export(); } }
private void RunOneTest(string inputFile, params ModuleCoverage[] expected) { string baseDir = Path.GetDirectoryName(inputFile); using (FileStream tmp = new FileStream(inputFile, FileMode.Open)) { // Read in the data from coverage.py's XML file CoverageFileInfo[] fileInfo = new CoveragePyConverter(baseDir, tmp).Parse(); // Convert that into offsets within the actual code var covInfo = ImportCoverageCommand.Import(fileInfo); try { foreach (ModuleCoverage test in expected) { test.Validate(covInfo); } } finally { DumpCoverage(covInfo); } // verify we produce the expected .coveragexml var exportedFile = Path.Combine(Path.GetDirectoryName(inputFile), "coverage.coveragexml"); if (File.Exists(exportedFile)) { var expectedExport = File.ReadAllText(exportedFile); MemoryStream outputStream = new MemoryStream(); new CoverageExporter( outputStream, covInfo ).Export(); outputStream.Flush(); outputStream.Seek(0, SeekOrigin.Begin); var exported = new StreamReader(outputStream).ReadToEnd(); Assert.AreEqual( expectedExport.Replace("||basedir||", TestData.GetPath("")), exported ); } } }
private void ConvertCoveragePy(string inputFile, string outputFile, PythonLanguageVersion?version) { var baseDir = Path.GetDirectoryName(inputFile); using (FileStream tmp = new FileStream(inputFile, FileMode.Open)) using (FileStream outp = new FileStream(outputFile, FileMode.Create)) { // Read in the data from coverage.py's XML file CoverageFileInfo[] fileInfo = new CoveragePyConverter(baseDir, tmp).Parse(); // Discover what version we should use for this if one hasn't been provided... if (version == null) { foreach (var file in fileInfo) { var project = _serviceProvider.GetProjectFromFile(file.Filename); if (project != null) { version = project.ActiveInterpreter.Configuration.Version.ToLanguageVersion(); break; } } } if (version == null) { version = _serviceProvider .GetPythonToolsService() .DefaultInterpreterConfiguration .Version .ToLanguageVersion(); } // Convert that into offsets within the actual code var covInfo = Import(fileInfo, version.Value); // Then export as .coveragexml new CoverageExporter(outp, covInfo).Export(); } }
private void ConvertCoveragePy(string inputFile, string outputFile, PythonLanguageVersion?version) { var baseDir = Path.GetDirectoryName(inputFile); using (FileStream tmp = new FileStream(inputFile, FileMode.Open)) using (FileStream outp = new FileStream(outputFile, FileMode.Create)) { // Read in the data from coverage.py's XML file CoverageFileInfo[] fileInfo = new CoveragePyConverter(baseDir, tmp).Parse(); // Discover what version we should use for this if one hasn't been provided... if (version == null) { var entryService = _serviceProvider.GetEntryService(); foreach (var file in fileInfo) { version = entryService.GetAnalyzersForFile(file.Filename) .OfType <VsProjectAnalyzer>() .Select(a => (PythonLanguageVersion?)a.LanguageVersion) .FirstOrDefault(); if (version.HasValue) { break; } } if (version == null) { version = (entryService.DefaultAnalyzer as VsProjectAnalyzer)?.LanguageVersion; } } // Convert that into offsets within the actual code var covInfo = Import(fileInfo, version ?? PythonLanguageVersion.None); // Then export as .coveragexml new CoverageExporter(outp, covInfo).Export(); } }
private void RunOneTest(string inputFile, params ModuleCoverage[] expected) { string baseDir = Path.GetDirectoryName(inputFile); using (FileStream tmp = new FileStream(inputFile, FileMode.Open)) { // Read in the data from coverage.py's XML file CoverageFileInfo[] fileInfo = new CoveragePyConverter(baseDir, tmp).Parse(); // Convert that into offsets within the actual code var covInfo = ImportCoverageCommand.Import(fileInfo); try { foreach (var test in expected) { test.Validate(covInfo); } } finally { DumpCoverage(covInfo); } // verify we produce the expected .coveragexml var exportedFile = Path.Combine(Path.GetDirectoryName(inputFile), "coverage.coveragexml"); if (File.Exists(exportedFile)) { var expectedExport = File.ReadAllText(exportedFile); MemoryStream outputStream = new MemoryStream(); new CoverageExporter( outputStream, covInfo ).Export(); outputStream.Flush(); outputStream.Seek(0, SeekOrigin.Begin); var exported = new StreamReader(outputStream).ReadToEnd(); Assert.AreEqual( expectedExport.Replace("||basedir||", TestData.GetPath("")), exported ); } } }