Merge pull request #20136 from abitrolly/newnew-detect-latest-release

formula_creator: test GitHub repo call for archive|releases URLs
This commit is contained in:
Mike McQuaid 2025-06-18 14:20:22 +00:00 committed by GitHub
commit 62cff0e852
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 29 additions and 15 deletions

View File

@ -3,6 +3,7 @@
require "digest" require "digest"
require "erb" require "erb"
require "utils/github"
module Homebrew module Homebrew
# Class for generating a formula from a template. # Class for generating a formula from a template.

View File

@ -14,26 +14,39 @@ RSpec.describe Homebrew::FormulaCreator do
url: "http://www.codesrc.com/gitweb/index.cgi?p=libzipper.git;a=summary", url: "http://www.codesrc.com/gitweb/index.cgi?p=libzipper.git;a=summary",
name: "libzipper", name: "libzipper",
}, },
"GitHub repo URL": { "GitHub repo URL with .git": {
url: "https://github.com/abitrolly/lapce.git", url: "https://github.com/Homebrew/brew.git",
name: "lapce", name: "brew",
head: true, head: true,
fetch: true,
github_user: "Homebrew",
github_repo: "brew",
}, },
"GitHub archive URL": { "GitHub archive URL": {
url: "https://github.com/abitrolly/lapce/archive/v0.3.0.tar.gz", url: "https://github.com/Homebrew/brew/archive/4.5.7.tar.gz",
name: "lapce", name: "brew",
version: "0.3.0", version: "4.5.7",
fetch: true,
github_user: "Homebrew",
github_repo: "brew",
}, },
"GitHub download URL": { "GitHub releases URL": {
url: "https://github.com/stella-emu/stella/releases/download/6.7/stella-6.7-src.tar.xz", url: "https://github.com/stella-emu/stella/releases/download/6.7/stella-6.7-src.tar.xz",
name: "stella", name: "stella",
version: "6.7", version: "6.7",
fetch: true,
github_user: "stella-emu",
github_repo: "stella",
}, },
} }
tests.each do |description, test| tests.each do |description, test|
it "parses #{description}" do it "parses #{description}" do
formula_creator = described_class.new(url: test.fetch(:url)) fetch = test.fetch(:fetch, false)
allow(GitHub).to receive(:repository).with(test.fetch(:github_user), test.fetch(:github_repo)) if fetch
formula_creator = described_class.new(url: test.fetch(:url), fetch:)
expect(formula_creator.name).to eq(test.fetch(:name)) expect(formula_creator.name).to eq(test.fetch(:name))
if (version = test[:version]) if (version = test[:version])
expect(formula_creator.version).to eq(version) expect(formula_creator.version).to eq(version)