Esempio n. 1
0
        public void GeneratedSnippet_DoesNotHaveInstallScript_IfVersionIsAlreadyPresentOnDisk()
        {
            // Arrange
            var options = new BuildScriptGeneratorOptions()
            {
                EnableDynamicInstall = true
            };
            var environment            = new TestEnvironment();
            var installerScriptSnippet = "##INSTALLER_SCRIPT##";
            var versionProvider        = new TestPythonVersionProvider(new[] { "3.7.5", "3.8.0" }, defaultVersion: "3.7.5");
            var platformInstaller      = new TestPythonPlatformInstaller(
                isVersionAlreadyInstalled: true,
                installerScript: installerScriptSnippet,
                Options.Create(options),
                environment);
            var platform = CreatePlatform(environment, versionProvider, platformInstaller, options);
            var repo     = new MemorySourceRepo();

            repo.AddFile("", PythonConstants.RequirementsFileName);
            repo.AddFile("print(1)", "bla.py");
            var context = new BuildScriptGeneratorContext {
                SourceRepo = repo, PythonVersion = "3.7.5"
            };

            // Act
            var snippet = platform.GenerateBashBuildScriptSnippet(context);

            // Assert
            Assert.NotNull(snippet);
            Assert.Null(snippet.PlatformInstallationScriptSnippet);
            Assert.Contains(ManifestFilePropertyKeys.PythonVersion, snippet.BuildProperties.Keys);
            Assert.Equal("3.7.5", snippet.BuildProperties[ManifestFilePropertyKeys.PythonVersion]);
        }
Esempio n. 2
0
        public void GeneratedSnippet_HaveInstallScript_IfCustomRequirementsTxtPathSpecified()
        {
            // Arrange
            var pythonScriptGeneratorOptions = new PythonScriptGeneratorOptions()
            {
                CustomRequirementsTxtPath = "foo/requirements.txt"
            };
            var commonOptions = new BuildScriptGeneratorOptions()
            {
                EnableDynamicInstall      = true,
                CustomRequirementsTxtPath = "foo/requirements.txt"
            };
            var installerScriptSnippet = "##INSTALLER_SCRIPT##";
            var versionProvider        = new TestPythonVersionProvider(new[] { "3.7.5", "3.8.0" }, defaultVersion: "3.7.5");
            var platformInstaller      = new TestPythonPlatformInstaller(
                isVersionAlreadyInstalled: false,
                installerScript: installerScriptSnippet,
                Options.Create(commonOptions),
                NullLoggerFactory.Instance);
            var platform = CreatePlatform(
                versionProvider,
                platformInstaller,
                commonOptions,
                pythonScriptGeneratorOptions);
            var repo = new MemorySourceRepo();

            repo.AddFile("", "foo/requirements.txt");
            repo.AddFile("print(1)", "bla.py");
            var context = new BuildScriptGeneratorContext {
                SourceRepo = repo
            };
            var detectorResult = new PythonPlatformDetectorResult
            {
                Platform               = PythonConstants.PlatformName,
                PlatformVersion        = "3.7.5",
                HasRequirementsTxtFile = true,
            };

            // Act
            var snippet = platform.GetInstallerScriptSnippet(context, detectorResult);

            // Assert
            Assert.NotNull(snippet);
        }
Esempio n. 3
0
        public void GeneratedSnippet_HasInstallationScript_IfDynamicInstallIsEnabled()
        {
            // Arrange
            var pythonScriptGeneratorOptions = new PythonScriptGeneratorOptions();
            var commonOptions = new BuildScriptGeneratorOptions()
            {
                EnableDynamicInstall = true
            };
            var installerScriptSnippet = "##INSTALLER_SCRIPT##";
            var versionProvider        = new TestPythonVersionProvider(new[] { "3.7.5", "3.8.0" }, defaultVersion: "3.7.5");
            var platformInstaller      = new TestPythonPlatformInstaller(
                isVersionAlreadyInstalled: false,
                installerScript: installerScriptSnippet,
                Options.Create(commonOptions),
                NullLoggerFactory.Instance);
            var platform = CreatePlatform(
                versionProvider,
                platformInstaller,
                commonOptions,
                pythonScriptGeneratorOptions);
            var repo = new MemorySourceRepo();

            repo.AddFile("", PythonConstants.RequirementsFileName);
            repo.AddFile("print(1)", "bla.py");
            var context = new BuildScriptGeneratorContext {
                SourceRepo = repo
            };

            context.ResolvedPythonVersion = "3.7.5";

            // Act
            var snippet = platform.GenerateBashBuildScriptSnippet(context);

            // Assert
            Assert.NotNull(snippet);
            Assert.NotNull(snippet.PlatformInstallationScriptSnippet);
            Assert.Equal(installerScriptSnippet, snippet.PlatformInstallationScriptSnippet);
            Assert.Contains(ManifestFilePropertyKeys.PythonVersion, snippet.BuildProperties.Keys);
            Assert.Equal("3.7.5", snippet.BuildProperties[ManifestFilePropertyKeys.PythonVersion]);
        }