Apply automatic rubocop fixes

This commit is contained in:
Sebastian Serth
2021-05-14 10:51:44 +02:00
parent fe4000916c
commit 6cbecb5b39
440 changed files with 2705 additions and 1853 deletions

View File

@ -1,4 +1,5 @@
# frozen_string_literal: true
require 'rails_helper'
require 'seeds_helper'
@ -85,7 +86,7 @@ describe DockerClient, docker: true do
FileUtils.mkdir_p(workspace_path)
allow(described_class).to receive(:generate_local_workspace_path).and_return(local_workspace_path)
expect(described_class).to receive(:container_creation_options).with(execution_environment, local_workspace_path)
.and_wrap_original do |original_method, *args, &block|
.and_wrap_original do |original_method, *args, &block|
result = original_method.call(*args, &block)
result['NanoCPUs'] = 2 * 1_000_000_000 # CPU quota in units of 10^-9 CPUs.
result
@ -113,7 +114,7 @@ describe DockerClient, docker: true do
let(:error) { Docker::Error::NotFoundError.new }
context 'when retries are left' do
before(:each) do
before do
expect(described_class).to receive(:mapped_directories).and_raise(error).and_call_original
end
@ -123,7 +124,7 @@ describe DockerClient, docker: true do
end
context 'when no retries are left' do
before(:each) do
before do
expect(described_class).to receive(:mapped_directories).exactly(DockerClient::RETRY_COUNT + 1).times.and_raise(error)
end
@ -138,24 +139,24 @@ describe DockerClient, docker: true do
describe '#create_workspace_files' do
let(:container) { double }
before(:each) do
before do
expect(container).to receive(:binds).at_least(:once).and_return(["#{workspace_path}:#{DockerClient::CONTAINER_WORKSPACE_PATH}"])
end
after(:each) { docker_client.send(:create_workspace_files, container, submission) }
after { docker_client.send(:create_workspace_files, container, submission) }
it 'creates submission-specific directories' do
expect(Dir).to receive(:mkdir).at_least(:once).and_call_original
end
it 'copies binary files' do
submission.collect_files.select { |file| file.file_type.binary? }.each do |file|
submission.collect_files.select {|file| file.file_type.binary? }.each do |file|
expect(docker_client).to receive(:copy_file_to_workspace).with(container: container, file: file)
end
end
it 'creates non-binary files' do
submission.collect_files.reject { |file| file.file_type.binary? }.each do |file|
submission.collect_files.reject {|file| file.file_type.binary? }.each do |file|
expect(docker_client).to receive(:create_workspace_file).with(container: container, file: file)
end
end
@ -164,7 +165,8 @@ describe DockerClient, docker: true do
describe '#create_workspace_file' do
let(:file) { FactoryBot.build(:file, content: 'puts 42') }
let(:file_path) { File.join(workspace_path, file.name_with_extension) }
after(:each) { File.delete(file_path) }
after { File.delete(file_path) }
it 'creates a file' do
expect(described_class).to receive(:local_workspace_path).at_least(:once).and_return(workspace_path)
@ -177,7 +179,8 @@ describe DockerClient, docker: true do
describe '.destroy_container' do
let(:container) { described_class.create_container(execution_environment) }
after(:each) { described_class.destroy_container(container) }
after { described_class.destroy_container(container) }
it 'kills running processes' do
expect(container).to receive(:kill).and_return(container)
@ -190,8 +193,8 @@ describe DockerClient, docker: true do
it 'removes the mapped directory' do
expect(described_class).to receive(:local_workspace_path).at_least(:once).and_return(workspace_path)
#!TODO Fix this
#expect(PathName).to receive(:rmtree).with(workspace_path)
# !TODO Fix this
# expect(PathName).to receive(:rmtree).with(workspace_path)
end
it 'deletes the container' do
@ -216,9 +219,9 @@ describe DockerClient, docker: true do
let(:error) { Excon::Errors::SocketError.new(SocketError.new) }
context 'when retries are left' do
let(:result) { {status: "ok", stdout: 42} }
let(:result) { {status: 'ok', stdout: 42} }
before(:each) do
before do
expect(docker_client).to receive(:send_command).and_raise(error).and_return(result)
end
@ -228,43 +231,45 @@ describe DockerClient, docker: true do
end
context 'when no retries are left' do
before(:each) do
before do
expect(docker_client).to receive(:send_command).exactly(DockerClient::RETRY_COUNT + 1).times.and_raise(error)
end
it 'raises the error' do
pending("retries are disabled")
#!TODO Retries is disabled
#expect { execute_arbitrary_command }.to raise_error(error)
pending('retries are disabled')
# !TODO Retries is disabled
# expect { execute_arbitrary_command }.to raise_error(error)
end
end
end
end
describe '#execute_run_command' do
let(:filename) { submission.exercise.files.detect { |file| file.role == 'main_file' }.name_with_extension }
after(:each) { docker_client.send(:execute_run_command, submission, filename) }
let(:filename) { submission.exercise.files.detect {|file| file.role == 'main_file' }.name_with_extension }
after { docker_client.send(:execute_run_command, submission, filename) }
it 'takes a container from the pool' do
pending("todo in the future")
pending('todo in the future')
expect(DockerContainerPool).to receive(:get_container).with(submission.execution_environment).and_call_original
end
it 'creates the workspace files' do
pending("todo in the future")
pending('todo in the future')
expect(docker_client).to receive(:create_workspace_files)
end
it 'executes the run command' do
pending("todo in the future")
pending('todo in the future')
expect(submission.execution_environment).to receive(:run_command).and_call_original
expect(docker_client).to receive(:send_command).with(kind_of(String), kind_of(Docker::Container))
end
end
describe '#execute_test_command' do
let(:filename) { submission.exercise.files.detect { |file| file.role == 'teacher_defined_test' || file.role == 'teacher_defined_linter' }.name_with_extension }
after(:each) { docker_client.send(:execute_test_command, submission, filename) }
let(:filename) { submission.exercise.files.detect {|file| file.role == 'teacher_defined_test' || file.role == 'teacher_defined_linter' }.name_with_extension }
after { docker_client.send(:execute_test_command, submission, filename) }
it 'takes a container from the pool' do
expect(DockerContainerPool).to receive(:get_container).with(submission.execution_environment).and_call_original
@ -300,7 +305,7 @@ describe DockerClient, docker: true do
end
context 'with incomplete configuration' do
before(:each) { expect(described_class).to receive(:config).at_least(:once).and_return({}) }
before { expect(described_class).to receive(:config).at_least(:once).and_return({}) }
it 'raises an error' do
expect { described_class.initialize_environment }.to raise_error(DockerClient::Error)
@ -331,7 +336,7 @@ describe DockerClient, docker: true do
describe '.mapped_ports' do
context 'with exposed ports' do
before(:each) { execution_environment.exposed_ports = '3000' }
before { execution_environment.exposed_ports = '3000' }
it 'returns a mapping' do
expect(described_class.mapped_ports(execution_environment)).to be_a(Hash)
@ -355,30 +360,31 @@ describe DockerClient, docker: true do
let(:block) { proc {} }
let(:container) { described_class.create_container(execution_environment) }
let(:send_command) { docker_client.send(:send_command, command, container, &block) }
after(:each) { send_command }
after { send_command }
it 'limits the execution time' do
expect(Timeout).to receive(:timeout).at_least(:once).with(kind_of(Numeric)).and_call_original
end
it 'provides the command to be executed as input' do
pending("we are currently not using any input and for output server send events instead of attach.")
pending('we are currently not using any input and for output server send events instead of attach.')
expect(container).to receive(:attach).with(stdin: kind_of(StringIO))
end
it 'calls the block' do
pending("block is no longer called, see revision 4cbf9970b13362efd4588392cafe4f7fd7cb31c3 to get information how it was done before.")
pending('block is no longer called, see revision 4cbf9970b13362efd4588392cafe4f7fd7cb31c3 to get information how it was done before.')
expect(block).to receive(:call)
end
context 'when a timeout occurs' do
before(:each) do
before do
expect(container).to receive(:exec).once.and_raise(Timeout::Error)
expect(container).to receive(:exec).twice.and_return([[], []])
end
it 'destroys the container asynchronously' do
pending("Container is destroyed, but not as expected in this test. ToDo update this test.")
pending('Container is destroyed, but not as expected in this test. ToDo update this test.')
expect(Concurrent::Future).to receive(:execute)
end
@ -389,7 +395,7 @@ describe DockerClient, docker: true do
context 'when the container terminates timely' do
it 'destroys the container asynchronously' do
pending("Container is destroyed, but not as expected in this test. ToDo update this test.")
pending('Container is destroyed, but not as expected in this test. ToDo update this test.')
expect(Concurrent::Future).to receive(:execute)
end