mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 06:56:13 +00:00
a06b536109
I went through all the tests in the Ruby buildpack and cataloged what I think can be generalized between languages to prevent regressions. This PR add tests for these cases: * Test CI deploys run tests and use the cache [[reference test](https://github.com/heroku/heroku-buildpack-ruby/blob/f488bd53c7ff0b78e17c2405166cbd4a3af75ee2/spec/hatchet/ci_spec.rb#L36)] * Test cache for regular deploys is used on repeated deploys (This was already tested on the Python buildpack, I moved it) [[reference test](https://github.com/heroku/heroku-buildpack-ruby/blob/e34c583c139911d059f5627bb25125707288f053/spec/hatchet/stack_spec.rb#L21-L25)] * Test modifying a requirement clears the cache appropriately (This was already tested on the Python buildpack, I moved it) * Test deploying the getting started guide works [[reference test](https://github.com/heroku/heroku-buildpack-ruby/blob/424a7245e2da86845a20d58a9482bcf2a00c3a8f/spec/hatchet/getting_started_spec.rb#L5)] * Test that all paths set by the buildpack are absolute instead of relative [[reference test](https://github.com/heroku/heroku-buildpack-ruby/blob/249d3c1a4e97068f8fd016f10fa0839709d95658/spec/hatchet/rails5_spec.rb#L68]) * Test upgrading stack invalidates the cache [[reference test](https://github.com/heroku/heroku-buildpack-ruby/blob/f488bd53c7ff0b78e17c2405166cbd4a3af75ee2/spec/hatchet/stack_spec.rb#L3)] * Test that builds fail when a bad version is specified [[reference test](https://github.com/heroku/heroku-buildpack-ruby/blob/249d3c1a4e97068f8fd016f10fa0839709d95658/spec/hatchet/ruby_spec.rb#L5)] In addition to that I've also got a CNB test with `pack-build` with the getting started app, but since python isn't `cnb` capable yet I didn't add one.
35 lines
907 B
Ruby
35 lines
907 B
Ruby
ENV['HATCHET_BUILDPACK_BASE'] = 'https://github.com/heroku/heroku-buildpack-python.git'
|
|
|
|
require 'rspec/core'
|
|
require 'rspec/retry'
|
|
require 'hatchet'
|
|
|
|
require 'date'
|
|
|
|
RSpec.configure do |config|
|
|
config.full_backtrace = true
|
|
config.verbose_retry = true # show retry status in spec process
|
|
config.default_retry_count = 2 if ENV['IS_RUNNING_ON_CI'] # retry all tests that fail again
|
|
config.expect_with :rspec do |c|
|
|
c.syntax = :expect
|
|
end
|
|
end
|
|
|
|
if ENV['TRAVIS']
|
|
# Don't execute tests against "merge" commits
|
|
if ENV['TRAVIS_PULL_REQUEST'] != 'false' &&
|
|
ENV['TRAVIS_BRANCH'] == 'master' &&
|
|
ENV["TRAVIS_PULL_REQUEST_SLUG"] != ENV['TRAVIS_REPO_SLUG'] # forked PR
|
|
puts "Skipping Hatchet tests"
|
|
exit 0
|
|
end
|
|
end
|
|
|
|
DEFAULT_STACK = 'heroku-18'
|
|
|
|
def run!(cmd)
|
|
out = `#{cmd}`
|
|
raise "Error running command #{cmd} with output: #{out}" unless $?.success?
|
|
return out
|
|
end
|