summaryrefslogtreecommitdiff
path: root/spec/support/integration_test_helper.rb
diff options
context:
space:
mode:
authorCan Eldem <celdem@gitlab.com>2020-01-09 11:26:40 +0000
committerCan Eldem <celdem@gitlab.com>2020-01-09 11:26:40 +0000
commitf16af48f9b7cf99e8d1cdb1e44dad9aad3a090b6 (patch)
tree3944b2eade680f90739f2f3805dfec1a7bb1a360 /spec/support/integration_test_helper.rb
parentd51e4d90b3e7dbfc5b0a9ec90f37baf84dc105d0 (diff)
parentd89872f850332736eb174f2b0ab28692fda6bf46 (diff)
Merge branch '35629-upgrade-python' into 'master'v2.3.0
Upgrade python from 3.5 to 3.8 See merge request gitlab-org/security-products/license-management!101
Diffstat (limited to 'spec/support/integration_test_helper.rb')
-rw-r--r--spec/support/integration_test_helper.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/spec/support/integration_test_helper.rb b/spec/support/integration_test_helper.rb
new file mode 100644
index 0000000..df75176
--- /dev/null
+++ b/spec/support/integration_test_helper.rb
@@ -0,0 +1,37 @@
+module IntegrationTestHelper
+ class IntegrationTestRunner
+ attr_reader :project_path
+
+ def initialize(project_path = Dir.mktmpdir('lm'))
+ @project_path = project_path
+ end
+
+ def add_file(name, content = nil)
+ full_path = "#{project_path}/#{name}"
+ IO.write(full_path, block_given? ? yield : content)
+ end
+
+ def scan(env: {})
+ return {} unless execute(env, './bin/test-local', project_path)
+
+ report_path = "#{project_path}/gl-license-management-report.json"
+ return {} unless File.exist?(report_path)
+
+ JSON.parse(IO.read(report_path), symbolize_names: true)
+ end
+
+ def execute(env = {}, *args)
+ Bundler.with_clean_env do
+ system(env, *args)
+ end
+ end
+
+ def cleanup
+ FileUtils.rm_rf(project_path) if Dir.exist?(project_path)
+ end
+ end
+
+ def runner(*args)
+ @runner ||= IntegrationTestRunner.new(*args)
+ end
+end