diff --git a/test/job/adapters/slurm_test.rb b/test/job/adapters/slurm_test.rb new file mode 100644 index 00000000..1acb99d3 --- /dev/null +++ b/test/job/adapters/slurm_test.rb @@ -0,0 +1,17 @@ +require 'test_helper' + +class TestSlurm < Minitest::Test + include TestHelper + + def slurm_instance(config = {}) + OodCore::Job::Factory.build({ adapter: 'slurm' }.merge(config)) + end + + def test_submit_interface + slurm = slurm_instance + + assert(slurm.respond_to?(:submit)) + veryify_keywords(slurm, :submit, [:after, :afterok, :afternotok, :afterany]) + verify_args(slurm, :submit, 1) + end +end diff --git a/test/test_helper.rb b/test/test_helper.rb new file mode 100644 index 00000000..3123068c --- /dev/null +++ b/test/test_helper.rb @@ -0,0 +1,28 @@ +require 'ood_core' + +module TestHelper + + # verify the keywords of an objects interface. + # Example: given the interface - def foo(bar: nil) + # veryify_keywords(object, :foo, [:bar]) + # to verify that the method foo takes only one keyword :bar. + def veryify_keywords(object, method, keywords) + parameters = object.method(method.to_sym).parameters + actual_keywords = parameters.select do |key, _value| + key.to_sym == :key + end.map do |_key, value| + value + end.sort + + assert_equal(keywords.sort, actual_keywords) + end + + def verify_args(object, method, num_of_args) + parameters = object.method(method.to_sym).parameters + actual_num_of_args = parameters.select do |key, _value| + key.to_sym == :req || key.to_sym == :opt + end.count + + assert_equal(actual_num_of_args, num_of_args) + end +end \ No newline at end of file