public void ShouldIgnoreInvalidPackage() { List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent("" + "numpy<>3.5.2"); Assert.Empty(result); }
public void ShouldIgnoreExtraIndex() { List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent("" + "--extra-index = https://extra.index.org"); Assert.Empty(result); }
public void ShouldIgnoreComment() { List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent("" + "# This is a comment"); Assert.Empty(result); }
public void PackageNameShouldBeFormalizedIntoDashes() { List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent("" + "Azure-Functions-Worker\r\n" + "azure.functions.worker\n" + "azure_functions_worker"); Assert.Equal(3, result.Count); Assert.All(result, r => Assert.Equal("azure-functions-worker", r.Name)); }
public static async Task WarnIfAzureFunctionsWorkerInRequirementsTxt() { if (FileSystemHelpers.FileExists(Path.Join(Environment.CurrentDirectory, Constants.RequirementsTxt))) { List <PythonPackage> packages = await RequirementsTxtParser.ParseRequirementsTxtFile(Environment.CurrentDirectory); PythonPackage workerPackage = packages.FirstOrDefault(p => p.Name == "azure-functions-worker"); if (workerPackage != null) { ColoredConsole.WriteLine(WarningColor($"Please remove '{workerPackage.Name}{workerPackage.Specification}' from requirements.txt as it may conflict with the Azure Functions platform.")); } } }
public void ShouldReturnPackageWithSpecAndEnvironmentMarker() { List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent("" + "numpy>=3.5.1; python_version == '2.7'"); Assert.Single(result); PythonPackage numpyPackage = result[0]; Assert.Equal("numpy", numpyPackage.Name); Assert.Equal(">=3.5.1", numpyPackage.Specification); Assert.Equal("python_version == '2.7'", numpyPackage.EnvironmentMarkers); Assert.Empty(numpyPackage.DirectReference); }
public void ShouldReturnPackageWithSpecification(string content, string expectedName, string expectedSpec) { List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent("" + content); Assert.Single(result); PythonPackage numpyPackage = result[0]; Assert.Equal(expectedName, numpyPackage.Name); Assert.Equal(expectedSpec, numpyPackage.Specification); Assert.Empty(numpyPackage.EnvironmentMarkers); Assert.Empty(numpyPackage.DirectReference); }
public void PackageSpecWithDirectReference() { List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent("" + "numpy==3.5.2 @ https://direct.reference/numpy"); Assert.Single(result); PythonPackage numpyPackage = result[0]; Assert.Equal("numpy", numpyPackage.Name); Assert.Equal("==3.5.2", numpyPackage.Specification); Assert.Empty(numpyPackage.EnvironmentMarkers); Assert.Equal("https://direct.reference/numpy", numpyPackage.DirectReference); }
public void ShouldReturnEmptyListOnEmptyContent() { List <PythonPackage> result = RequirementsTxtParser.ParseRequirementsTxtContent(""); Assert.Empty(result); }