Skip to content

Commit

Permalink
Merge #506
Browse files Browse the repository at this point in the history
506: setup_depot for setting up a temporary depot for testing. r=ericphanson a=MarkNahabedian

I was asked to break up #492 into several parts.

This PR introduces the function `setup_depot` which pulls out the code for creating a temporary depot during testing so that it is easier to use in other places.


Co-authored-by: MarkNahabedian <[email protected]>
Co-authored-by: Mark Nahabedian <[email protected]>
  • Loading branch information
3 people committed Apr 30, 2023
2 parents 091d425 + 572acd5 commit 3fb1b5d
Showing 1 changed file with 23 additions and 9 deletions.
32 changes: 23 additions & 9 deletions test/automerge-unit.jl
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,28 @@ using TimeZones

const AutoMerge = RegistryCI.AutoMerge


TEMP_DEPOT_FOR_TESTING = nothing

function setup_global_depot()::String
global TEMP_DEPOT_FOR_TESTING
if TEMP_DEPOT_FOR_TESTING isa String
return TEMP_DEPOT_FOR_TESTING
end
tmp_depot = mktempdir()
env1 = copy(ENV)
env1["JULIA_DEPOT_PATH"] = tmp_depot
delete!(env1, "JULIA_LOAD_PATH")
delete!(env1, "JULIA_PROJECT")
env2 = copy(env1)
env2["JULIA_PKG_SERVER"] = ""
run(setenv(`julia -e 'import Pkg; Pkg.Registry.add("General")'`, env2))
run(setenv(`julia -e 'import Pkg; Pkg.add(["RegistryCI"])'`, env1))
TEMP_DEPOT_FOR_TESTING = tmp_depot
tmp_depot
end


# helper for testing `AutoMerge.meets_version_has_osi_license`
function pkgdir_from_depot(depot_path::String, pkg::String)
pkgdir_parent = joinpath(depot_path, "packages", pkg)
Expand Down Expand Up @@ -581,20 +603,12 @@ end
@testset "`AutoMerge.meets_version_has_osi_license`" begin
# Let's install a fresh depot in a temporary directory
# and add some packages to inspect.
tmp_depot = mktempdir()
tmp_depot = setup_global_depot()
function has_osi_license_in_depot(pkg)
return AutoMerge.meets_version_has_osi_license(
pkg; pkg_code_path=pkgdir_from_depot(tmp_depot, pkg)
)
end
env1 = copy(ENV)
env1["JULIA_DEPOT_PATH"] = tmp_depot
delete!(env1, "JULIA_LOAD_PATH")
delete!(env1, "JULIA_PROJECT")
env2 = copy(env1)
env2["JULIA_PKG_SERVER"] = ""
run(setenv(`julia -e 'import Pkg; Pkg.Registry.add("General")'`, env2))
run(setenv(`julia -e 'import Pkg; Pkg.add(["RegistryCI"])'`, env1))
# Let's test ourselves and some of our dependencies that just have MIT licenses:
result = has_osi_license_in_depot("RegistryCI")
@test result[1]
Expand Down

0 comments on commit 3fb1b5d

Please sign in to comment.