diff --git a/pommer/test/tests.py b/pommer/tests.py similarity index 96% rename from pommer/test/tests.py rename to pommer/tests.py index a58c745..cea1c2d 100644 --- a/pommer/test/tests.py +++ b/pommer/tests.py @@ -1835,4 +1835,85 @@ if __name__ == "__main__": "build_system": "gradle" } ] + + """Test build script generation functionality""" + + def test_generate_build_script_maven_only(self): + """Test build script generation for Maven-only projects""" + maven_projects = [{ + "name": "Maven Project", + "pom_path": "pom.xml", + "build_system": "maven" + }] + + script = pommer.generate_build_script(maven_projects) + + assert script is not None + assert "mvn" in script + assert "Maven Project" in script + assert "pom.xml" in script + + def test_generate_build_script_gradle_only(self): + """Test build script generation for Gradle-only projects""" + temp_dir = tempfile.mkdtemp() + gradle_path = os.path.join(temp_dir, "build.gradle") + gradlew_path = os.path.join(temp_dir, "gradlew") + + # Create files + with open(gradle_path, 'w') as f: + f.write("// test") + with open(gradlew_path, 'w') as f: + f.write("#!/bin/bash") + + gradle_projects = [{ + "name": "Gradle Project", + "gradle_path": gradle_path, + "build_system": "gradle" + }] + + script = pommer.generate_build_script(gradle_projects) + + assert script is not None + assert "gradlew" in script + assert "Gradle Project" in script + + shutil.rmtree(temp_dir) + + def test_generate_build_script_mixed_projects(self): + """Test build script generation for mixed Maven and Gradle projects""" + temp_dir = tempfile.mkdtemp() + gradle_path = os.path.join(temp_dir, "build.gradle") + + with open(gradle_path, 'w') as f: + f.write("// test") + + mixed_projects = [ + { + "name": "Maven Project", + "pom_path": "pom.xml", + "build_system": "maven" + }, + { + "name": "Gradle Project", + "gradle_path": gradle_path, + "build_system": "gradle" + } + ] + + script = pommer.generate_build_script(mixed_projects) + + assert script is not None + assert "mvn" in script + assert "gradle" in script + assert "Maven Project" in script + assert "Gradle Project" in script + + shutil.rmtree(temp_dir) + + def test_generate_build_script_empty_projects(self): + """Test build script generation with empty project list""" + script = pommer.generate_build_script([]) + + assert script is not None + assert "Universal build script" in script \ No newline at end of file