From 0e26ab98c8cfcea8c6450147e3e579b05e2218ef Mon Sep 17 00:00:00 2001 From: Ralf Teusner Date: Wed, 15 Nov 2017 15:18:07 +0100 Subject: [PATCH] rename factory_girl_(rails) to factory_bot_(rails) --- db/seeds.rb | 4 +-- db/seeds/development.rb | 10 +++--- db/seeds/production.rb | 4 +-- spec/concerns/lti_spec.rb | 20 +++++------ spec/concerns/submission_scoring_spec.rb | 4 +-- .../admin/dashboard_controller_spec.rb | 2 +- .../application_controller_spec.rb | 4 +-- .../code_ocean/files_controller_spec.rb | 10 +++--- spec/controllers/consumers_controller_spec.rb | 12 +++---- .../execution_environments_controller_spec.rb | 12 +++---- spec/controllers/exercises_controller_spec.rb | 28 +++++++-------- .../external_users_controller_spec.rb | 4 +-- .../controllers/file_types_controller_spec.rb | 12 +++---- spec/controllers/hints_controller_spec.rb | 14 ++++---- .../internal_users_controller_spec.rb | 12 +++---- spec/controllers/sessions_controller_spec.rb | 18 +++++----- .../submissions_controller_spec.rb | 14 ++++---- spec/factories/code_ocean/file.rb | 2 +- spec/factories/consumer.rb | 2 +- spec/factories/error.rb | 2 +- spec/factories/execution_environment.rb | 2 +- spec/factories/exercise.rb | 4 +-- spec/factories/external_user.rb | 2 +- spec/factories/file_type.rb | 2 +- spec/factories/hint.rb | 2 +- spec/factories/internal_user.rb | 2 +- spec/factories/lti_parameter.rb | 4 +-- spec/factories/proxy_exercise.rb | 2 +- spec/factories/shared_traits.rb | 2 +- spec/factories/submission.rb | 2 +- spec/factories/user_exercise_feedback.rb | 4 +-- spec/features/authentication_spec.rb | 4 +-- spec/features/authorization_spec.rb | 6 ++-- spec/features/editor_spec.rb | 6 ++-- spec/features/factories_spec.rb | 2 +- spec/helpers/admin/dashboard_helper_spec.rb | 2 +- spec/helpers/exercise_helper_spec.rb | 2 +- spec/lib/assessor_spec.rb | 4 +-- spec/lib/docker_client_spec.rb | 8 ++--- spec/lib/docker_container_pool_spec.rb | 2 +- spec/lib/file_tree_spec.rb | 18 +++++----- spec/lib/whistleblower_spec.rb | 2 +- spec/mailers/user_mailer_spec.rb | 2 +- spec/models/consumer_spec.rb | 2 +- spec/models/execution_environment_spec.rb | 10 +++--- spec/models/exercise_spec.rb | 14 ++++---- spec/models/external_user_spec.rb | 4 +-- spec/models/internal_user_spec.rb | 16 ++++----- spec/models/submission_spec.rb | 34 +++++++++---------- spec/policies/admin/dashboard_policy_spec.rb | 6 ++-- spec/policies/code_ocean/file_policy_spec.rb | 16 ++++----- spec/policies/consumer_policy_spec.rb | 4 +-- spec/policies/error_policy_spec.rb | 12 +++---- .../execution_environment_policy_spec.rb | 16 ++++----- spec/policies/exercise_policy_spec.rb | 28 +++++++-------- spec/policies/external_user_policy_spec.rb | 4 +-- spec/policies/file_type_policy_spec.rb | 12 +++---- spec/policies/hint_policy_spec.rb | 12 +++---- spec/policies/internal_user_policy_spec.rb | 10 +++--- spec/policies/submission_policy_spec.rb | 12 +++---- spec/support/docker.rb | 2 +- spec/uploaders/file_uploader_spec.rb | 2 +- .../shell.html.slim_spec.rb | 2 +- .../exercises/implement.html.slim_spec.rb | 4 +-- test/factories/error_template_attributes.rb | 2 +- test/factories/error_templates.rb | 2 +- test/factories/structured_error_attributes.rb | 2 +- test/factories/structured_errors.rb | 2 +- 68 files changed, 253 insertions(+), 253 deletions(-) diff --git a/db/seeds.rb b/db/seeds.rb index 823a6358..28d543ef 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -1,5 +1,5 @@ def find_factories_by_class(klass) - FactoryGirl.factories.select do |factory| + FactoryBot.factories.select do |factory| factory.instance_variable_get(:@class_name) == klass || factory.instance_variable_get(:@name) == klass.model_name.singular.to_sym end end @@ -9,7 +9,7 @@ module ActiveRecord [:build, :create].each do |strategy| define_singleton_method("#{strategy}_factories") do |attributes = {}| find_factories_by_class(self).map(&:name).map do |factory_name| - FactoryGirl.send(strategy, factory_name, attributes) + FactoryBot.send(strategy, factory_name, attributes) end end end diff --git a/db/seeds/development.rb b/db/seeds/development.rb index 6fc8e050..b0c550c0 100644 --- a/db/seeds/development.rb +++ b/db/seeds/development.rb @@ -1,9 +1,9 @@ # consumers -FactoryGirl.create(:consumer) -FactoryGirl.create(:consumer, name: 'openSAP') +FactoryBot.create(:consumer) +FactoryBot.create(:consumer, name: 'openSAP') # users -[:admin, :external_user, :teacher].each { |factory_name| FactoryGirl.create(factory_name) } +[:admin, :external_user, :teacher].each { |factory_name| FactoryBot.create(factory_name) } # execution environments ExecutionEnvironment.create_factories @@ -12,7 +12,7 @@ ExecutionEnvironment.create_factories Error.create_factories # exercises -@exercises = find_factories_by_class(Exercise).map(&:name).map { |factory_name| [factory_name, FactoryGirl.create(factory_name)] }.to_h +@exercises = find_factories_by_class(Exercise).map(&:name).map { |factory_name| [factory_name, FactoryBot.create(factory_name)] }.to_h # file types FileType.create_factories @@ -21,4 +21,4 @@ FileType.create_factories Hint.create_factories # submissions -FactoryGirl.create(:submission, exercise: @exercises[:fibonacci]) +FactoryBot.create(:submission, exercise: @exercises[:fibonacci]) diff --git a/db/seeds/production.rb b/db/seeds/production.rb index 301becfd..5b63f57b 100644 --- a/db/seeds/production.rb +++ b/db/seeds/production.rb @@ -1,7 +1,7 @@ require 'highline/import' # consumers -FactoryGirl.create(:consumer) +FactoryBot.create(:consumer) # users email = ask('Enter admin email: ') @@ -11,7 +11,7 @@ passwords = ['password', 'password confirmation'].map do |attribute| end if passwords.uniq.length == 1 - FactoryGirl.create(:admin, email: email, name: 'Administrator', password: passwords.first) + FactoryBot.create(:admin, email: email, name: 'Administrator', password: passwords.first) else abort('Passwords do not match!') end diff --git a/spec/concerns/lti_spec.rb b/spec/concerns/lti_spec.rb index 32d740aa..a7b1dfcc 100644 --- a/spec/concerns/lti_spec.rb +++ b/spec/concerns/lti_spec.rb @@ -11,7 +11,7 @@ describe Lti do describe '#build_tool_provider' do it 'instantiates a tool provider' do expect(IMS::LTI::ToolProvider).to receive(:new) - controller.send(:build_tool_provider, consumer: FactoryGirl.build(:consumer), parameters: {}) + controller.send(:build_tool_provider, consumer: FactoryBot.build(:consumer), parameters: {}) end end @@ -95,10 +95,10 @@ describe Lti do end describe '#send_score' do - let(:consumer) { FactoryGirl.create(:consumer) } + let(:consumer) { FactoryBot.create(:consumer) } let(:score) { 0.5 } - let(:submission) { FactoryGirl.create(:submission) } - let!(:lti_parameter) { FactoryGirl.create(:lti_parameter)} + let(:submission) { FactoryBot.create(:submission) } + let!(:lti_parameter) { FactoryBot.create(:lti_parameter)} context 'with an invalid score' do it 'raises an exception' do @@ -159,18 +159,18 @@ describe Lti do let(:parameters) { {} } it 'stores data in the session' do - controller.instance_variable_set(:@current_user, FactoryGirl.create(:external_user)) - controller.instance_variable_set(:@exercise, FactoryGirl.create(:fibonacci)) + controller.instance_variable_set(:@current_user, FactoryBot.create(:external_user)) + controller.instance_variable_set(:@exercise, FactoryBot.create(:fibonacci)) expect(controller.session).to receive(:[]=).with(:consumer_id, anything) expect(controller.session).to receive(:[]=).with(:external_user_id, anything) - controller.send(:store_lti_session_data, consumer: FactoryGirl.build(:consumer), parameters: parameters) + controller.send(:store_lti_session_data, consumer: FactoryBot.build(:consumer), parameters: parameters) end it 'it creates an LtiParameter Object' do before_count = LtiParameter.count - controller.instance_variable_set(:@current_user, FactoryGirl.create(:external_user)) - controller.instance_variable_set(:@exercise, FactoryGirl.create(:fibonacci)) - controller.send(:store_lti_session_data, consumer: FactoryGirl.build(:consumer), parameters: parameters) + controller.instance_variable_set(:@current_user, FactoryBot.create(:external_user)) + controller.instance_variable_set(:@exercise, FactoryBot.create(:fibonacci)) + controller.send(:store_lti_session_data, consumer: FactoryBot.build(:consumer), parameters: parameters) expect(LtiParameter.count).to eq(before_count + 1) end end diff --git a/spec/concerns/submission_scoring_spec.rb b/spec/concerns/submission_scoring_spec.rb index 1b42a947..c32fe9c3 100644 --- a/spec/concerns/submission_scoring_spec.rb +++ b/spec/concerns/submission_scoring_spec.rb @@ -6,8 +6,8 @@ end describe SubmissionScoring do let(:controller) { Controller.new } - before(:all) { @submission = FactoryGirl.create(:submission, cause: 'submit') } - before(:each) { controller.instance_variable_set(:@current_user, FactoryGirl.create(:external_user)) } + before(:all) { @submission = FactoryBot.create(:submission, cause: 'submit') } + before(:each) { controller.instance_variable_set(:@current_user, FactoryBot.create(:external_user)) } describe '#collect_test_results' do after(:each) { controller.send(:collect_test_results, @submission) } diff --git a/spec/controllers/admin/dashboard_controller_spec.rb b/spec/controllers/admin/dashboard_controller_spec.rb index d62bb0ee..20265e16 100644 --- a/spec/controllers/admin/dashboard_controller_spec.rb +++ b/spec/controllers/admin/dashboard_controller_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe Admin::DashboardController do - before(:each) { allow(controller).to receive(:current_user).and_return(FactoryGirl.build(:admin)) } + before(:each) { allow(controller).to receive(:current_user).and_return(FactoryBot.build(:admin)) } describe 'GET #show' do describe 'with format HTML' do diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 0ad4b20d..eec0abbe 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe ApplicationController do describe '#current_user' do context 'with an external user' do - let(:external_user) { FactoryGirl.create(:external_user) } + let(:external_user) { FactoryBot.create(:external_user) } before(:each) { session[:external_user_id] = external_user.id } it 'returns the external user' do @@ -12,7 +12,7 @@ describe ApplicationController do end context 'without an external user' do - let(:internal_user) { FactoryGirl.create(:teacher) } + let(:internal_user) { FactoryBot.create(:teacher) } before(:each) { login_user(internal_user) } it 'returns the internal user' do diff --git a/spec/controllers/code_ocean/files_controller_spec.rb b/spec/controllers/code_ocean/files_controller_spec.rb index 08062acb..9bed884b 100644 --- a/spec/controllers/code_ocean/files_controller_spec.rb +++ b/spec/controllers/code_ocean/files_controller_spec.rb @@ -1,14 +1,14 @@ require 'rails_helper' describe CodeOcean::FilesController do - let(:user) { FactoryGirl.create(:admin) } + let(:user) { FactoryBot.create(:admin) } before(:each) { allow(controller).to receive(:current_user).and_return(user) } describe 'POST #create' do - let(:submission) { FactoryGirl.create(:submission, user: user) } + let(:submission) { FactoryBot.create(:submission, user: user) } context 'with a valid file' do - let(:request) { proc { post :create, code_ocean_file: FactoryGirl.build(:file, context: submission).attributes, format: :json } } + let(:request) { proc { post :create, code_ocean_file: FactoryBot.build(:file, context: submission).attributes, format: :json } } before(:each) { request.call } expect_assigns(file: CodeOcean::File) @@ -31,14 +31,14 @@ describe CodeOcean::FilesController do end describe 'DELETE #destroy' do - let(:exercise) { FactoryGirl.create(:fibonacci) } + let(:exercise) { FactoryBot.create(:fibonacci) } let(:request) { proc { delete :destroy, id: exercise.files.first.id } } before(:each) { request.call } expect_assigns(file: CodeOcean::File) it 'destroys the file' do - FactoryGirl.create(:fibonacci) + FactoryBot.create(:fibonacci) expect { request.call }.to change(CodeOcean::File, :count).by(-1) end diff --git a/spec/controllers/consumers_controller_spec.rb b/spec/controllers/consumers_controller_spec.rb index 1060c845..448f13dc 100644 --- a/spec/controllers/consumers_controller_spec.rb +++ b/spec/controllers/consumers_controller_spec.rb @@ -1,13 +1,13 @@ require 'rails_helper' describe ConsumersController do - let(:consumer) { FactoryGirl.create(:consumer) } - let(:user) { FactoryGirl.create(:admin) } + let(:consumer) { FactoryBot.create(:consumer) } + let(:user) { FactoryBot.create(:admin) } before(:each) { allow(controller).to receive(:current_user).and_return(user) } describe 'POST #create' do context 'with a valid consumer' do - let(:request) { proc { post :create, consumer: FactoryGirl.attributes_for(:consumer) } } + let(:request) { proc { post :create, consumer: FactoryBot.attributes_for(:consumer) } } before(:each) { request.call } expect_assigns(consumer: Consumer) @@ -34,7 +34,7 @@ describe ConsumersController do expect_assigns(consumer: Consumer) it 'destroys the consumer' do - consumer = FactoryGirl.create(:consumer) + consumer = FactoryBot.create(:consumer) expect { delete :destroy, id: consumer.id }.to change(Consumer, :count).by(-1) end @@ -50,7 +50,7 @@ describe ConsumersController do end describe 'GET #index' do - let!(:consumers) { FactoryGirl.create_pair(:consumer) } + let!(:consumers) { FactoryBot.create_pair(:consumer) } before(:each) { get :index } expect_assigns(consumers: Consumer.all) @@ -76,7 +76,7 @@ describe ConsumersController do describe 'PUT #update' do context 'with a valid consumer' do - before(:each) { put :update, consumer: FactoryGirl.attributes_for(:consumer), id: consumer.id } + before(:each) { put :update, consumer: FactoryBot.attributes_for(:consumer), id: consumer.id } expect_assigns(consumer: Consumer) expect_redirect(:consumer) diff --git a/spec/controllers/execution_environments_controller_spec.rb b/spec/controllers/execution_environments_controller_spec.rb index 2abf59ef..ee9ba3d5 100644 --- a/spec/controllers/execution_environments_controller_spec.rb +++ b/spec/controllers/execution_environments_controller_spec.rb @@ -1,15 +1,15 @@ require 'rails_helper' describe ExecutionEnvironmentsController do - let(:execution_environment) { FactoryGirl.create(:ruby) } - let(:user) { FactoryGirl.create(:admin) } + let(:execution_environment) { FactoryBot.create(:ruby) } + let(:user) { FactoryBot.create(:admin) } before(:each) { allow(controller).to receive(:current_user).and_return(user) } describe 'POST #create' do before(:each) { expect(DockerClient).to receive(:image_tags).at_least(:once).and_return([]) } context 'with a valid execution environment' do - let(:request) { proc { post :create, execution_environment: FactoryGirl.attributes_for(:ruby) } } + let(:request) { proc { post :create, execution_environment: FactoryBot.attributes_for(:ruby) } } before(:each) { request.call } expect_assigns(docker_images: Array) @@ -37,7 +37,7 @@ describe ExecutionEnvironmentsController do expect_assigns(execution_environment: :execution_environment) it 'destroys the execution environment' do - execution_environment = FactoryGirl.create(:ruby) + execution_environment = FactoryBot.create(:ruby) expect { delete :destroy, id: execution_environment.id }.to change(ExecutionEnvironment, :count).by(-1) end @@ -72,7 +72,7 @@ describe ExecutionEnvironmentsController do end describe 'GET #index' do - before(:all) { FactoryGirl.create_pair(:ruby) } + before(:all) { FactoryBot.create_pair(:ruby) } before(:each) { get :index } expect_assigns(execution_environments: ExecutionEnvironment.all) @@ -150,7 +150,7 @@ describe ExecutionEnvironmentsController do context 'with a valid execution environment' do before(:each) do expect(DockerClient).to receive(:image_tags).at_least(:once).and_return([]) - put :update, execution_environment: FactoryGirl.attributes_for(:ruby), id: execution_environment.id + put :update, execution_environment: FactoryBot.attributes_for(:ruby), id: execution_environment.id end expect_assigns(docker_images: Array) diff --git a/spec/controllers/exercises_controller_spec.rb b/spec/controllers/exercises_controller_spec.rb index 43dada43..f1d5db96 100644 --- a/spec/controllers/exercises_controller_spec.rb +++ b/spec/controllers/exercises_controller_spec.rb @@ -1,8 +1,8 @@ require 'rails_helper' describe ExercisesController do - let(:exercise) { FactoryGirl.create(:dummy) } - let(:user) { FactoryGirl.create(:admin) } + let(:exercise) { FactoryBot.create(:dummy) } + let(:user) { FactoryBot.create(:admin) } before(:each) { allow(controller).to receive(:current_user).and_return(user) } describe 'PUT #batch_update' do @@ -52,7 +52,7 @@ describe ExercisesController do end describe 'POST #create' do - let(:exercise_attributes) { FactoryGirl.build(:dummy).attributes } + let(:exercise_attributes) { FactoryBot.build(:dummy).attributes } context 'with a valid exercise' do let(:request) { proc { post :create, exercise: exercise_attributes } } @@ -71,7 +71,7 @@ describe ExercisesController do let(:request) { proc { post :create, exercise: exercise_attributes.merge(files_attributes: files_attributes) } } context 'when specifying the file content within the form' do - let(:files_attributes) { {'0' => FactoryGirl.build(:file).attributes} } + let(:files_attributes) { {'0' => FactoryBot.build(:file).attributes} } it 'creates the file' do expect { request.call }.to change(CodeOcean::File, :count) @@ -79,11 +79,11 @@ describe ExercisesController do end context 'when uploading a file' do - let(:files_attributes) { {'0' => FactoryGirl.build(:file, file_type: file_type).attributes.merge(content: uploaded_file)} } + let(:files_attributes) { {'0' => FactoryBot.build(:file, file_type: file_type).attributes.merge(content: uploaded_file)} } context 'when uploading a binary file' do let(:file_path) { Rails.root.join('db', 'seeds', 'audio_video', 'devstories.mp4') } - let(:file_type) { FactoryGirl.create(:dot_mp4) } + let(:file_type) { FactoryBot.create(:dot_mp4) } let(:uploaded_file) { Rack::Test::UploadedFile.new(file_path, 'video/mp4', true) } it 'creates the file' do @@ -98,7 +98,7 @@ describe ExercisesController do context 'when uploading a non-binary file' do let(:file_path) { Rails.root.join('db', 'seeds', 'fibonacci', 'exercise.rb') } - let(:file_type) { FactoryGirl.create(:dot_rb) } + let(:file_type) { FactoryBot.create(:dot_rb) } let(:uploaded_file) { Rack::Test::UploadedFile.new(file_path, 'text/x-ruby', false) } it 'creates the file' do @@ -128,7 +128,7 @@ describe ExercisesController do expect_assigns(exercise: :exercise) it 'destroys the exercise' do - exercise = FactoryGirl.create(:dummy) + exercise = FactoryBot.create(:dummy) expect { delete :destroy, id: exercise.id }.to change(Exercise, :count).by(-1) end @@ -147,13 +147,13 @@ describe ExercisesController do let(:request) { proc { get :implement, id: exercise.id } } context 'with an exercise with visible files' do - let(:exercise) { FactoryGirl.create(:fibonacci) } + let(:exercise) { FactoryBot.create(:fibonacci) } before(:each) { request.call } expect_assigns(exercise: :exercise) context 'with an existing submission' do - let!(:submission) { FactoryGirl.create(:submission, exercise_id: exercise.id, user_id: user.id, user_type: user.class.name) } + let!(:submission) { FactoryBot.create(:submission, exercise_id: exercise.id, user_id: user.id, user_type: user.class.name) } it "populates the editors with the submission's files' content" do request.call @@ -182,7 +182,7 @@ describe ExercisesController do describe 'GET #index' do let(:scope) { Pundit.policy_scope!(user, Exercise) } - before(:all) { FactoryGirl.create_pair(:dummy) } + before(:all) { FactoryBot.create_pair(:dummy) } before(:each) { get :index } expect_assigns(exercises: :scope) @@ -230,8 +230,8 @@ describe ExercisesController do describe 'POST #submit' do let(:output) { {} } let(:request) { post :submit, format: :json, id: exercise.id, submission: {cause: 'submit', exercise_id: exercise.id} } - let!(:external_user) { FactoryGirl.create(:external_user) } - let!(:lti_parameter) { FactoryGirl.create(:lti_parameter, external_user: external_user, exercise: exercise) } + let!(:external_user) { FactoryBot.create(:external_user) } + let!(:lti_parameter) { FactoryBot.create(:lti_parameter, external_user: external_user, exercise: exercise) } before(:each) do allow_any_instance_of(Submission).to receive(:normalized_score).and_return(1) @@ -298,7 +298,7 @@ describe ExercisesController do describe 'PUT #update' do context 'with a valid exercise' do - let(:exercise_attributes) { FactoryGirl.build(:dummy).attributes } + let(:exercise_attributes) { FactoryBot.build(:dummy).attributes } before(:each) { put :update, exercise: exercise_attributes, id: exercise.id } expect_assigns(exercise: Exercise) diff --git a/spec/controllers/external_users_controller_spec.rb b/spec/controllers/external_users_controller_spec.rb index b3029e6e..c8df8da7 100644 --- a/spec/controllers/external_users_controller_spec.rb +++ b/spec/controllers/external_users_controller_spec.rb @@ -1,8 +1,8 @@ require 'rails_helper' describe ExternalUsersController do - let(:user) { FactoryGirl.build(:admin) } - let!(:users) { FactoryGirl.create_pair(:external_user) } + let(:user) { FactoryBot.build(:admin) } + let!(:users) { FactoryBot.create_pair(:external_user) } before(:each) { allow(controller).to receive(:current_user).and_return(user) } describe 'GET #index' do diff --git a/spec/controllers/file_types_controller_spec.rb b/spec/controllers/file_types_controller_spec.rb index 037e5ae5..83e8396b 100644 --- a/spec/controllers/file_types_controller_spec.rb +++ b/spec/controllers/file_types_controller_spec.rb @@ -1,13 +1,13 @@ require 'rails_helper' describe FileTypesController do - let(:file_type) { FactoryGirl.create(:dot_rb) } - let(:user) { FactoryGirl.create(:admin) } + let(:file_type) { FactoryBot.create(:dot_rb) } + let(:user) { FactoryBot.create(:admin) } before(:each) { allow(controller).to receive(:current_user).and_return(user) } describe 'POST #create' do context 'with a valid file type' do - let(:request) { proc { post :create, file_type: FactoryGirl.attributes_for(:dot_rb) } } + let(:request) { proc { post :create, file_type: FactoryBot.attributes_for(:dot_rb) } } before(:each) { request.call } expect_assigns(editor_modes: Array) @@ -36,7 +36,7 @@ describe FileTypesController do expect_assigns(file_type: FileType) it 'destroys the file type' do - file_type = FactoryGirl.create(:dot_rb) + file_type = FactoryBot.create(:dot_rb) expect { delete :destroy, id: file_type.id }.to change(FileType, :count).by(-1) end @@ -53,7 +53,7 @@ describe FileTypesController do end describe 'GET #index' do - before(:all) { FactoryGirl.create_pair(:dot_rb) } + before(:all) { FactoryBot.create_pair(:dot_rb) } before(:each) { get :index } expect_assigns(file_types: FileType.all) @@ -80,7 +80,7 @@ describe FileTypesController do describe 'PUT #update' do context 'with a valid file type' do - before(:each) { put :update, file_type: FactoryGirl.attributes_for(:dot_rb), id: file_type.id } + before(:each) { put :update, file_type: FactoryBot.attributes_for(:dot_rb), id: file_type.id } expect_assigns(editor_modes: Array) expect_assigns(file_type: FileType) diff --git a/spec/controllers/hints_controller_spec.rb b/spec/controllers/hints_controller_spec.rb index 916e5150..f54d09ad 100644 --- a/spec/controllers/hints_controller_spec.rb +++ b/spec/controllers/hints_controller_spec.rb @@ -1,14 +1,14 @@ require 'rails_helper' describe HintsController do - let(:execution_environment) { FactoryGirl.create(:ruby) } - let(:hint) { FactoryGirl.create(:ruby_syntax_error) } - let(:user) { FactoryGirl.create(:admin) } + let(:execution_environment) { FactoryBot.create(:ruby) } + let(:hint) { FactoryBot.create(:ruby_syntax_error) } + let(:user) { FactoryBot.create(:admin) } before(:each) { allow(controller).to receive(:current_user).and_return(user) } describe 'POST #create' do context 'with a valid hint' do - let(:request) { proc { post :create, execution_environment_id: execution_environment.id, hint: FactoryGirl.attributes_for(:ruby_syntax_error) } } + let(:request) { proc { post :create, execution_environment_id: execution_environment.id, hint: FactoryBot.attributes_for(:ruby_syntax_error) } } before(:each) { request.call } expect_assigns(execution_environment: :execution_environment) @@ -38,7 +38,7 @@ describe HintsController do expect_assigns(hint: Hint) it 'destroys the hint' do - hint = FactoryGirl.create(:ruby_syntax_error) + hint = FactoryBot.create(:ruby_syntax_error) expect { delete :destroy, execution_environment_id: execution_environment.id, id: hint.id }.to change(Hint, :count).by(-1) end @@ -55,7 +55,7 @@ describe HintsController do end describe 'GET #index' do - before(:all) { FactoryGirl.create_pair(:ruby_syntax_error) } + before(:all) { FactoryBot.create_pair(:ruby_syntax_error) } before(:each) { get :index, execution_environment_id: execution_environment.id } expect_assigns(execution_environment: :execution_environment) @@ -84,7 +84,7 @@ describe HintsController do describe 'PUT #update' do context 'with a valid hint' do - before(:each) { put :update, execution_environment_id: execution_environment.id, hint: FactoryGirl.attributes_for(:ruby_syntax_error), id: hint.id } + before(:each) { put :update, execution_environment_id: execution_environment.id, hint: FactoryBot.attributes_for(:ruby_syntax_error), id: hint.id } expect_assigns(execution_environment: :execution_environment) expect_assigns(hint: Hint) diff --git a/spec/controllers/internal_users_controller_spec.rb b/spec/controllers/internal_users_controller_spec.rb index e0efb339..936852af 100644 --- a/spec/controllers/internal_users_controller_spec.rb +++ b/spec/controllers/internal_users_controller_spec.rb @@ -1,11 +1,11 @@ require 'rails_helper' describe InternalUsersController do - let(:user) { FactoryGirl.build(:admin) } - let!(:users) { FactoryGirl.create_pair(:teacher) } + let(:user) { FactoryBot.build(:admin) } + let!(:users) { FactoryBot.create_pair(:teacher) } describe 'GET #activate' do - let(:user) { InternalUser.create(FactoryGirl.attributes_for(:teacher)) } + let(:user) { InternalUser.create(FactoryBot.attributes_for(:teacher)) } before(:each) do user.send(:setup_activation) @@ -37,7 +37,7 @@ describe InternalUsersController do end describe 'PUT #activate' do - let(:user) { InternalUser.create(FactoryGirl.attributes_for(:teacher)) } + let(:user) { InternalUser.create(FactoryBot.attributes_for(:teacher)) } let(:password) { SecureRandom.hex } before(:each) do @@ -103,7 +103,7 @@ describe InternalUsersController do before(:each) { allow(controller).to receive(:current_user).and_return(user) } context 'with a valid internal user' do - let(:request) { proc { post :create, internal_user: FactoryGirl.attributes_for(:teacher) } } + let(:request) { proc { post :create, internal_user: FactoryBot.attributes_for(:teacher) } } before(:each) { request.call } expect_assigns(user: InternalUser) @@ -303,7 +303,7 @@ describe InternalUsersController do before(:each) { allow(controller).to receive(:current_user).and_return(user) } context 'with a valid internal user' do - before(:each) { put :update, internal_user: FactoryGirl.attributes_for(:teacher), id: users.first.id } + before(:each) { put :update, internal_user: FactoryBot.attributes_for(:teacher), id: users.first.id } expect_assigns(user: InternalUser) expect_redirect { user } diff --git a/spec/controllers/sessions_controller_spec.rb b/spec/controllers/sessions_controller_spec.rb index 50fef8d6..1d7fa877 100644 --- a/spec/controllers/sessions_controller_spec.rb +++ b/spec/controllers/sessions_controller_spec.rb @@ -1,12 +1,12 @@ require 'rails_helper' describe SessionsController do - let(:consumer) { FactoryGirl.create(:consumer) } + let(:consumer) { FactoryBot.create(:consumer) } describe 'POST #create' do let(:password) { user_attributes[:password] } let(:user) { InternalUser.create(user_attributes) } - let(:user_attributes) { FactoryGirl.attributes_for(:teacher) } + let(:user_attributes) { FactoryBot.attributes_for(:teacher) } context 'with valid credentials' do before(:each) do @@ -27,8 +27,8 @@ describe SessionsController do end describe 'POST #create_through_lti' do - let(:exercise) { FactoryGirl.create(:dummy) } - let(:exercise2) { FactoryGirl.create(:dummy) } + let(:exercise) { FactoryBot.create(:dummy) } + let(:exercise2) { FactoryBot.create(:dummy) } let(:nonce) { SecureRandom.hex } before(:each) { I18n.locale = I18n.default_locale } @@ -73,7 +73,7 @@ describe SessionsController do context 'with valid launch parameters' do let(:locale) { :de } let(:request) { post :create_through_lti, custom_locale: locale, custom_token: exercise.token, oauth_consumer_key: consumer.oauth_key, oauth_nonce: nonce, oauth_signature: SecureRandom.hex, user_id: user.external_id } - let(:user) { FactoryGirl.create(:external_user, consumer_id: consumer.id) } + let(:user) { FactoryBot.create(:external_user, consumer_id: consumer.id) } before(:each) { expect_any_instance_of(IMS::LTI::ToolProvider).to receive(:valid_request?).and_return(true) } it 'assigns the current user' do @@ -132,14 +132,14 @@ describe SessionsController do end it 'redirects to recommended exercise if requested token of proxy exercise' do - FactoryGirl.create(:proxy_exercise, exercises: [exercise]) + FactoryBot.create(:proxy_exercise, exercises: [exercise]) post :create_through_lti, custom_locale: locale, custom_token: ProxyExercise.first.token, oauth_consumer_key: consumer.oauth_key, oauth_nonce: nonce, oauth_signature: SecureRandom.hex, user_id: user.external_id expect(controller).to redirect_to(implement_exercise_path(exercise.id)) end it 'recommends only exercises who are 1 degree more complicated than what user has seen' do # dummy user has no exercises finished, therefore his highest difficulty is 0 - FactoryGirl.create(:proxy_exercise, exercises: [exercise, exercise2]) + FactoryBot.create(:proxy_exercise, exercises: [exercise, exercise2]) exercise.expected_difficulty = 3 exercise.save exercise2.expected_difficulty = 1 @@ -191,7 +191,7 @@ describe SessionsController do describe 'GET #destroy_through_lti' do let(:request) { proc { get :destroy_through_lti, consumer_id: consumer.id, submission_id: submission.id } } - let(:submission) { FactoryGirl.create(:submission, exercise: FactoryGirl.create(:dummy)) } + let(:submission) { FactoryBot.create(:submission, exercise: FactoryGirl.create(:dummy)) } before(:each) do #Todo replace session with lti_parameter @@ -225,7 +225,7 @@ describe SessionsController do context 'when a user is already logged in' do before(:each) do - expect(controller).to receive(:current_user).and_return(FactoryGirl.build(:teacher)) + expect(controller).to receive(:current_user).and_return(FactoryBot.build(:teacher)) get :new end diff --git a/spec/controllers/submissions_controller_spec.rb b/spec/controllers/submissions_controller_spec.rb index 98f36cb2..d2e92a48 100644 --- a/spec/controllers/submissions_controller_spec.rb +++ b/spec/controllers/submissions_controller_spec.rb @@ -1,8 +1,8 @@ require 'rails_helper' describe SubmissionsController do - let(:submission) { FactoryGirl.create(:submission) } - let(:user) { FactoryGirl.create(:admin) } + let(:submission) { FactoryBot.create(:submission) } + let(:user) { FactoryBot.create(:admin) } before(:each) { allow(controller).to receive(:current_user).and_return(user) } describe 'POST #create' do @@ -11,8 +11,8 @@ describe SubmissionsController do end context 'with a valid submission' do - let(:exercise) { FactoryGirl.create(:hello_world) } - let(:request) { proc { post :create, format: :json, submission: FactoryGirl.attributes_for(:submission, exercise_id: exercise.id) } } + let(:exercise) { FactoryBot.create(:hello_world) } + let(:request) { proc { post :create, format: :json, submission: FactoryBot.attributes_for(:submission, exercise_id: exercise.id) } } before(:each) { request.call } expect_assigns(submission: Submission) @@ -42,7 +42,7 @@ describe SubmissionsController do end context 'with a valid filename' do - let(:submission) { FactoryGirl.create(:submission, exercise: FactoryGirl.create(:audio_video)) } + let(:submission) { FactoryBot.create(:submission, exercise: FactoryGirl.create(:audio_video)) } before(:each) { get :download_file, filename: file.name_with_extension, id: submission.id } context 'for a binary file' do @@ -74,7 +74,7 @@ describe SubmissionsController do end describe 'GET #index' do - before(:all) { FactoryGirl.create_pair(:submission) } + before(:all) { FactoryBot.create_pair(:submission) } before(:each) { get :index } expect_assigns(submissions: Submission.all) @@ -92,7 +92,7 @@ describe SubmissionsController do end context 'with a valid filename' do - let(:submission) { FactoryGirl.create(:submission, exercise: FactoryGirl.create(:audio_video)) } + let(:submission) { FactoryBot.create(:submission, exercise: FactoryGirl.create(:audio_video)) } before(:each) { get :render_file, filename: file.name_with_extension, id: submission.id } context 'for a binary file' do diff --git a/spec/factories/code_ocean/file.rb b/spec/factories/code_ocean/file.rb index 663dc33f..bc672045 100644 --- a/spec/factories/code_ocean/file.rb +++ b/spec/factories/code_ocean/file.rb @@ -1,7 +1,7 @@ require 'seeds_helper' module CodeOcean - FactoryGirl.define do + FactoryBot.define do factory :file, class: CodeOcean::File do content '' association :context, factory: :submission diff --git a/spec/factories/consumer.rb b/spec/factories/consumer.rb index 58bfbadc..a4f32ca8 100644 --- a/spec/factories/consumer.rb +++ b/spec/factories/consumer.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :consumer do name 'openHPI' oauth_key { SecureRandom.hex } diff --git a/spec/factories/error.rb b/spec/factories/error.rb index 235a90c0..c10d47bf 100644 --- a/spec/factories/error.rb +++ b/spec/factories/error.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :error, class: Error do association :execution_environment, factory: :ruby message "exercise.rb:4:in `
': undefined local variable or method `foo' for main:Object (NameError)" diff --git a/spec/factories/execution_environment.rb b/spec/factories/execution_environment.rb index 051d9de6..013a041b 100644 --- a/spec/factories/execution_environment.rb +++ b/spec/factories/execution_environment.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :coffee_script, class: ExecutionEnvironment do created_by_teacher default_memory_limit diff --git a/spec/factories/exercise.rb b/spec/factories/exercise.rb index 9d8ac5b1..2fcd7e07 100644 --- a/spec/factories/exercise.rb +++ b/spec/factories/exercise.rb @@ -2,7 +2,7 @@ require 'seeds_helper' def create_seed_file(exercise, path, file_attributes = {}) file_extension = File.extname(path) - file_type = FactoryGirl.create(file_attributes[:file_type] || :"dot_#{file_extension.gsub('.', '')}") + file_type = FactoryBot.create(file_attributes[:file_type] || :"dot_#{file_extension.gsub('.', '')}") name = File.basename(path).gsub(file_extension, '') file_attributes.merge!(file_type: file_type, name: name, path: path.split('/')[1..-2].join('/'), role: file_attributes[:role] || 'regular_file') if file_type.binary? @@ -13,7 +13,7 @@ def create_seed_file(exercise, path, file_attributes = {}) exercise.add_file!(file_attributes) end -FactoryGirl.define do +FactoryBot.define do factory :audio_video, class: Exercise do created_by_teacher description "Try HTML's audio and video capabilities." diff --git a/spec/factories/external_user.rb b/spec/factories/external_user.rb index 0d30796a..41a9c3e8 100644 --- a/spec/factories/external_user.rb +++ b/spec/factories/external_user.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :external_user do association :consumer generated_email diff --git a/spec/factories/file_type.rb b/spec/factories/file_type.rb index 14b8e14e..eb7b8c90 100644 --- a/spec/factories/file_type.rb +++ b/spec/factories/file_type.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :dot_coffee, class: FileType do created_by_admin editor_mode 'ace/mode/coffee' diff --git a/spec/factories/hint.rb b/spec/factories/hint.rb index 3f06babf..fa1335a9 100644 --- a/spec/factories/hint.rb +++ b/spec/factories/hint.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :node_js_invalid_assignment, class: Hint do association :execution_environment, factory: :node_js english diff --git a/spec/factories/internal_user.rb b/spec/factories/internal_user.rb index f7311e4c..0e1c8682 100644 --- a/spec/factories/internal_user.rb +++ b/spec/factories/internal_user.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :admin, class: InternalUser do activated_user email 'admin@example.org' diff --git a/spec/factories/lti_parameter.rb b/spec/factories/lti_parameter.rb index 9cd0f367..0d882acc 100644 --- a/spec/factories/lti_parameter.rb +++ b/spec/factories/lti_parameter.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do LTI_PARAMETERS = { lis_result_sourcedid: "c2db0c7c-4411-4b27-a52b-ddfc3dc32065", @@ -17,4 +17,4 @@ FactoryGirl.define do lti_parameters LTI_PARAMETERS.except(:lis_outcome_service_url) end end -end \ No newline at end of file +end diff --git a/spec/factories/proxy_exercise.rb b/spec/factories/proxy_exercise.rb index 9c9974d6..303839a6 100644 --- a/spec/factories/proxy_exercise.rb +++ b/spec/factories/proxy_exercise.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :proxy_exercise, class: ProxyExercise do token 'dummytoken' title 'Dummy' diff --git a/spec/factories/shared_traits.rb b/spec/factories/shared_traits.rb index ea39e926..43847e8c 100644 --- a/spec/factories/shared_traits.rb +++ b/spec/factories/shared_traits.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do [:admin, :external_user, :teacher].each do |factory_name| trait :"created_by_#{factory_name}" do association :user, factory: factory_name diff --git a/spec/factories/submission.rb b/spec/factories/submission.rb index cd4e34e1..f40a2a1f 100644 --- a/spec/factories/submission.rb +++ b/spec/factories/submission.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :submission do cause 'save' created_by_external_user diff --git a/spec/factories/user_exercise_feedback.rb b/spec/factories/user_exercise_feedback.rb index b5a376cd..42c5d803 100644 --- a/spec/factories/user_exercise_feedback.rb +++ b/spec/factories/user_exercise_feedback.rb @@ -1,7 +1,7 @@ -FactoryGirl.define do +FactoryBot.define do factory :user_exercise_feedback, class: UserExerciseFeedback do created_by_external_user feedback_text 'Most suitable exercise ever' end -end \ No newline at end of file +end diff --git a/spec/features/authentication_spec.rb b/spec/features/authentication_spec.rb index 8b85a64b..2a777dab 100644 --- a/spec/features/authentication_spec.rb +++ b/spec/features/authentication_spec.rb @@ -1,8 +1,8 @@ require 'rails_helper' describe 'Authentication' do - let(:user) { FactoryGirl.create(:admin) } - let(:password) { FactoryGirl.attributes_for(:admin)[:password] } + let(:user) { FactoryBot.create(:admin) } + let(:password) { FactoryBot.attributes_for(:admin)[:password] } context 'when signed out' do before(:each) { visit(root_path) } diff --git a/spec/features/authorization_spec.rb b/spec/features/authorization_spec.rb index 7f0ff04f..7535634f 100644 --- a/spec/features/authorization_spec.rb +++ b/spec/features/authorization_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' describe 'Authorization' do context 'as an admin' do - let(:user) { FactoryGirl.create(:admin) } + let(:user) { FactoryBot.create(:admin) } before(:each) { allow_any_instance_of(ApplicationController).to receive(:current_user).and_return(user) } [Consumer, ExecutionEnvironment, Exercise, FileType, InternalUser].each do |model| @@ -11,7 +11,7 @@ describe 'Authorization' do end context 'as an external user' do - let(:user) { FactoryGirl.create(:external_user) } + let(:user) { FactoryBot.create(:external_user) } before(:each) { allow_any_instance_of(ApplicationController).to receive(:current_user).and_return(user) } [Consumer, ExecutionEnvironment, Exercise, FileType, InternalUser].each do |model| @@ -20,7 +20,7 @@ describe 'Authorization' do end context 'as a teacher' do - let(:user) { FactoryGirl.create(:teacher) } + let(:user) { FactoryBot.create(:teacher) } before(:each) { allow_any_instance_of(ApplicationController).to receive(:current_user).and_return(user) } [Consumer, InternalUser].each do |model| diff --git a/spec/features/editor_spec.rb b/spec/features/editor_spec.rb index bd1c46a2..88e480d4 100644 --- a/spec/features/editor_spec.rb +++ b/spec/features/editor_spec.rb @@ -1,13 +1,13 @@ require 'rails_helper' describe 'Editor', js: true do - let(:exercise) { FactoryGirl.create(:audio_video, instructions: Forgery(:lorem_ipsum).sentence) } - let(:user) { FactoryGirl.create(:teacher) } + let(:exercise) { FactoryBot.create(:audio_video, instructions: Forgery(:lorem_ipsum).sentence) } + let(:user) { FactoryBot.create(:teacher) } before(:each) do visit(sign_in_path) fill_in('email', with: user.email) - fill_in('password', with: FactoryGirl.attributes_for(:teacher)[:password]) + fill_in('password', with: FactoryBot.attributes_for(:teacher)[:password]) click_button(I18n.t('sessions.new.link')) visit(implement_exercise_path(exercise)) end diff --git a/spec/features/factories_spec.rb b/spec/features/factories_spec.rb index 5e002f91..cba0d735 100644 --- a/spec/features/factories_spec.rb +++ b/spec/features/factories_spec.rb @@ -2,6 +2,6 @@ require 'rails_helper' describe 'Factories' do it 'are all valid', docker: true, permitted_execution_time: 30 do - expect { FactoryGirl.lint }.not_to raise_error + expect { FactoryBot.lint }.not_to raise_error end end diff --git a/spec/helpers/admin/dashboard_helper_spec.rb b/spec/helpers/admin/dashboard_helper_spec.rb index a063c756..9dadaa54 100644 --- a/spec/helpers/admin/dashboard_helper_spec.rb +++ b/spec/helpers/admin/dashboard_helper_spec.rb @@ -8,7 +8,7 @@ describe Admin::DashboardHelper do end describe '#docker_data' do - before(:each) { FactoryGirl.create(:ruby) } + before(:each) { FactoryBot.create(:ruby) } it 'contains an entry for every execution environment' do expect(docker_data.length).to eq(ExecutionEnvironment.count) diff --git a/spec/helpers/exercise_helper_spec.rb b/spec/helpers/exercise_helper_spec.rb index 2fa9b331..7feb10ca 100644 --- a/spec/helpers/exercise_helper_spec.rb +++ b/spec/helpers/exercise_helper_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' describe ExerciseHelper do describe '#embedding_parameters' do - let(:exercise) { FactoryGirl.build(:dummy) } + let(:exercise) { FactoryBot.build(:dummy) } it 'contains the locale' do expect(embedding_parameters(exercise)).to start_with("locale=#{I18n.locale}") diff --git a/spec/lib/assessor_spec.rb b/spec/lib/assessor_spec.rb index 38edf8d5..ac726c3f 100644 --- a/spec/lib/assessor_spec.rb +++ b/spec/lib/assessor_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe Assessor do - let(:assessor) { described_class.new(execution_environment: FactoryGirl.build(:ruby)) } + let(:assessor) { described_class.new(execution_environment: FactoryBot.build(:ruby)) } describe '#assess' do let(:assess) { assessor.assess(stdout: stdout) } @@ -53,7 +53,7 @@ describe Assessor do context 'with an execution environment without a testing framework adapter' do it 'raises an error' do - expect { described_class.new(execution_environment: FactoryGirl.build(:ruby, testing_framework: nil)) }.to raise_error(Assessor::Error) + expect { described_class.new(execution_environment: FactoryBot.build(:ruby, testing_framework: nil)) }.to raise_error(Assessor::Error) end end end diff --git a/spec/lib/docker_client_spec.rb b/spec/lib/docker_client_spec.rb index feb457f6..6f6674d7 100644 --- a/spec/lib/docker_client_spec.rb +++ b/spec/lib/docker_client_spec.rb @@ -3,10 +3,10 @@ require 'seeds_helper' describe DockerClient, docker: true do let(:command) { 'whoami' } - let(:docker_client) { described_class.new(execution_environment: FactoryGirl.build(:java), user: FactoryGirl.build(:admin)) } - let(:execution_environment) { FactoryGirl.build(:java) } + let(:docker_client) { described_class.new(execution_environment: FactoryBot.build(:java), user: FactoryGirl.build(:admin)) } + let(:execution_environment) { FactoryBot.build(:java) } let(:image) { double } - let(:submission) { FactoryGirl.create(:submission) } + let(:submission) { FactoryBot.create(:submission) } let(:workspace_path) { '/tmp' } describe '.check_availability!' do @@ -146,7 +146,7 @@ describe DockerClient, docker: true do end describe '#create_workspace_file' do - let(:file) { FactoryGirl.build(:file, content: 'puts 42') } + 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) } diff --git a/spec/lib/docker_container_pool_spec.rb b/spec/lib/docker_container_pool_spec.rb index d419dd5a..1ff39657 100644 --- a/spec/lib/docker_container_pool_spec.rb +++ b/spec/lib/docker_container_pool_spec.rb @@ -9,7 +9,7 @@ describe DockerContainerPool do private :reload_class before(:each) do - @execution_environment = FactoryGirl.create(:ruby) + @execution_environment = FactoryBot.create(:ruby) reload_class end diff --git a/spec/lib/file_tree_spec.rb b/spec/lib/file_tree_spec.rb index 64995936..0d6ac12a 100644 --- a/spec/lib/file_tree_spec.rb +++ b/spec/lib/file_tree_spec.rb @@ -8,7 +8,7 @@ describe FileTree do context 'for a media file' do context 'for an audio file' do - let(:file) { FactoryGirl.build(:file, file_type: FactoryGirl.build(:dot_mp3)) } + let(:file) { FactoryBot.build(:file, file_type: FactoryGirl.build(:dot_mp3)) } it 'is an audio file icon' do expect(file_icon).to include('fa-file-audio-o') @@ -16,7 +16,7 @@ describe FileTree do end context 'for an image file' do - let(:file) { FactoryGirl.build(:file, file_type: FactoryGirl.build(:dot_jpg)) } + let(:file) { FactoryBot.build(:file, file_type: FactoryGirl.build(:dot_jpg)) } it 'is an image file icon' do expect(file_icon).to include('fa-file-image-o') @@ -24,7 +24,7 @@ describe FileTree do end context 'for a video file' do - let(:file) { FactoryGirl.build(:file, file_type: FactoryGirl.build(:dot_mp4)) } + let(:file) { FactoryBot.build(:file, file_type: FactoryGirl.build(:dot_mp4)) } it 'is a video file icon' do expect(file_icon).to include('fa-file-video-o') @@ -34,7 +34,7 @@ describe FileTree do context 'for other files' do context 'for a read-only file' do - let(:file) { FactoryGirl.build(:file, read_only: true) } + let(:file) { FactoryBot.build(:file, read_only: true) } it 'is a lock icon' do expect(file_icon).to include('fa-lock') @@ -42,7 +42,7 @@ describe FileTree do end context 'for an executable file' do - let(:file) { FactoryGirl.build(:file, file_type: FactoryGirl.build(:dot_py)) } + let(:file) { FactoryBot.build(:file, file_type: FactoryGirl.build(:dot_py)) } it 'is a code file icon' do expect(file_icon).to include('fa-file-code-o') @@ -50,7 +50,7 @@ describe FileTree do end context 'for a renderable file' do - let(:file) { FactoryGirl.build(:file, file_type: FactoryGirl.build(:dot_svg)) } + let(:file) { FactoryBot.build(:file, file_type: FactoryGirl.build(:dot_svg)) } it 'is a text file icon' do expect(file_icon).to include('fa-file-text-o') @@ -58,7 +58,7 @@ describe FileTree do end context 'for all other files' do - let(:file) { FactoryGirl.build(:file, file_type: FactoryGirl.build(:dot_md)) } + let(:file) { FactoryBot.build(:file, file_type: FactoryGirl.build(:dot_md)) } it 'is a generic file icon' do expect(file_icon).to include('fa-file-o') @@ -75,7 +75,7 @@ describe FileTree do describe '#initialize' do let(:file_tree) { described_class.new(files) } - let(:files) { FactoryGirl.build_list(:file, 10, context: nil, path: 'foo/bar/baz') } + let(:files) { FactoryBot.build_list(:file, 10, context: nil, path: 'foo/bar/baz') } it 'creates a root node' do expect_any_instance_of(Tree::TreeNode).to receive(:initialize).with(file_tree.send(:root_label)) @@ -92,7 +92,7 @@ describe FileTree do end describe '#map_to_js_tree' do - let(:file) { FactoryGirl.build(:file) } + let(:file) { FactoryBot.build(:file) } let(:js_tree) { file_tree.send(:map_to_js_tree, node) } let!(:leaf) { root.add(Tree::TreeNode.new('', file)) } let(:root) { Tree::TreeNode.new('', file) } diff --git a/spec/lib/whistleblower_spec.rb b/spec/lib/whistleblower_spec.rb index a7a7c9c6..e0a8a8d9 100644 --- a/spec/lib/whistleblower_spec.rb +++ b/spec/lib/whistleblower_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe Whistleblower do - let(:hint) { FactoryGirl.create(:ruby_no_method_error) } + let(:hint) { FactoryBot.create(:ruby_no_method_error) } let(:stderr) { "undefined method `foo' for main:Object (NoMethodError)" } let(:whistleblower) { described_class.new(execution_environment: hint.execution_environment) } diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb index b40b0728..d89b646c 100644 --- a/spec/mailers/user_mailer_spec.rb +++ b/spec/mailers/user_mailer_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe UserMailer do - let(:user) { InternalUser.create(FactoryGirl.attributes_for(:teacher)) } + let(:user) { InternalUser.create(FactoryBot.attributes_for(:teacher)) } describe '#activation_needed_email' do let(:mail) { described_class.activation_needed_email(user) } diff --git a/spec/models/consumer_spec.rb b/spec/models/consumer_spec.rb index ed5e0fbe..0c977955 100644 --- a/spec/models/consumer_spec.rb +++ b/spec/models/consumer_spec.rb @@ -12,7 +12,7 @@ describe Consumer do end it 'validates the uniqueness of the OAuth key' do - consumer.update(oauth_key: FactoryGirl.create(:consumer).oauth_key) + consumer.update(oauth_key: FactoryBot.create(:consumer).oauth_key) expect(consumer.errors[:oauth_key]).to be_present end diff --git a/spec/models/execution_environment_spec.rb b/spec/models/execution_environment_spec.rb index a55eda25..2dcee496 100644 --- a/spec/models/execution_environment_spec.rb +++ b/spec/models/execution_environment_spec.rb @@ -6,7 +6,7 @@ describe ExecutionEnvironment do it 'validates that the Docker image works', docker: true do expect(execution_environment).to receive(:validate_docker_image?).and_return(true) expect(execution_environment).to receive(:working_docker_image?) - execution_environment.update(docker_image: FactoryGirl.attributes_for(:ruby)[:docker_image]) + execution_environment.update(docker_image: FactoryBot.attributes_for(:ruby)[:docker_image]) end it 'validates the presence of a Docker image name' do @@ -69,7 +69,7 @@ describe ExecutionEnvironment do describe '#valid_test_setup?' do context 'with a test command and a testing framework' do - before(:each) { execution_environment.update(test_command: FactoryGirl.attributes_for(:ruby)[:test_command], testing_framework: FactoryGirl.attributes_for(:ruby)[:testing_framework]) } + before(:each) { execution_environment.update(test_command: FactoryBot.attributes_for(:ruby)[:test_command], testing_framework: FactoryGirl.attributes_for(:ruby)[:testing_framework]) } it 'is valid' do expect(execution_environment.errors[:test_command]).to be_blank @@ -77,7 +77,7 @@ describe ExecutionEnvironment do end context 'with a test command but no testing framework' do - before(:each) { execution_environment.update(test_command: FactoryGirl.attributes_for(:ruby)[:test_command], testing_framework: nil) } + before(:each) { execution_environment.update(test_command: FactoryBot.attributes_for(:ruby)[:test_command], testing_framework: nil) } it 'is invalid' do expect(execution_environment.errors[:test_command]).to be_present @@ -85,7 +85,7 @@ describe ExecutionEnvironment do end context 'with no test command but a testing framework' do - before(:each) { execution_environment.update(test_command: nil, testing_framework: FactoryGirl.attributes_for(:ruby)[:testing_framework]) } + before(:each) { execution_environment.update(test_command: nil, testing_framework: FactoryBot.attributes_for(:ruby)[:testing_framework]) } it 'is invalid' do expect(execution_environment.errors[:test_command]).to be_present @@ -113,7 +113,7 @@ describe ExecutionEnvironment do end it 'is true otherwise' do - execution_environment.docker_image = FactoryGirl.attributes_for(:ruby)[:docker_image] + execution_environment.docker_image = FactoryBot.attributes_for(:ruby)[:docker_image] allow(Rails.env).to receive(:test?).and_return(false) expect(execution_environment.send(:validate_docker_image?)).to be true end diff --git a/spec/models/exercise_spec.rb b/spec/models/exercise_spec.rb index f91ed4fa..640efd92 100644 --- a/spec/models/exercise_spec.rb +++ b/spec/models/exercise_spec.rb @@ -2,17 +2,17 @@ require 'rails_helper' describe Exercise do let(:exercise) { described_class.create.tap { |exercise| exercise.update(public: nil, token: nil) } } - let(:users) { FactoryGirl.create_list(:external_user, 10) } + let(:users) { FactoryBot.create_list(:external_user, 10) } def create_submissions 10.times do - FactoryGirl.create(:submission, cause: 'submit', exercise: exercise, score: Forgery(:basic).number, user: users.sample) + FactoryBot.create(:submission, cause: 'submit', exercise: exercise, score: Forgery(:basic).number, user: users.sample) end end it 'validates the number of main files' do - exercise = FactoryGirl.create(:dummy) - exercise.files += FactoryGirl.create_pair(:file) + exercise = FactoryBot.create(:dummy) + exercise.files += FactoryBot.create_pair(:file) expect(exercise).to receive(:valid_main_file?).and_call_original exercise.save expect(exercise.errors[:files]).to be_present @@ -46,7 +46,7 @@ describe Exercise do end describe '#average_percentage' do - let(:exercise) { FactoryGirl.create(:fibonacci) } + let(:exercise) { FactoryBot.create(:fibonacci) } context 'without submissions' do it 'returns nil' do @@ -65,7 +65,7 @@ describe Exercise do end describe '#average_score' do - let(:exercise) { FactoryGirl.create(:fibonacci) } + let(:exercise) { FactoryBot.create(:fibonacci) } context 'without submissions' do it 'returns nil' do @@ -84,7 +84,7 @@ describe Exercise do end describe '#duplicate' do - let(:exercise) { FactoryGirl.create(:fibonacci) } + let(:exercise) { FactoryBot.create(:fibonacci) } after(:each) { exercise.duplicate } it 'duplicates the exercise' do diff --git a/spec/models/external_user_spec.rb b/spec/models/external_user_spec.rb index a47f4aca..5d1d0aae 100644 --- a/spec/models/external_user_spec.rb +++ b/spec/models/external_user_spec.rb @@ -13,7 +13,7 @@ describe ExternalUser do describe '#admin?' do it 'is false' do - expect(FactoryGirl.build(:external_user).admin?).to be false + expect(FactoryBot.build(:external_user).admin?).to be false end end @@ -31,7 +31,7 @@ describe ExternalUser do describe '#teacher?' do it 'is false' do - expect(FactoryGirl.build(:external_user).teacher?).to be false + expect(FactoryBot.build(:external_user).teacher?).to be false end end end diff --git a/spec/models/internal_user_spec.rb b/spec/models/internal_user_spec.rb index 9a41d7b6..25f7e172 100644 --- a/spec/models/internal_user_spec.rb +++ b/spec/models/internal_user_spec.rb @@ -9,12 +9,12 @@ describe InternalUser do end it 'validates the uniqueness of the email address' do - user.update(email: FactoryGirl.create(:admin).email) + user.update(email: FactoryBot.create(:admin).email) expect(user.errors[:email]).to be_present end context 'when not activated' do - let(:user) { FactoryGirl.create(:teacher) } + let(:user) { FactoryBot.create(:teacher) } before(:each) do user.send(:setup_activation) @@ -33,7 +33,7 @@ describe InternalUser do end context 'with a pending password reset' do - let(:user) { FactoryGirl.create(:teacher) } + let(:user) { FactoryBot.create(:teacher) } before(:each) { user.deliver_reset_password_instructions! } it 'validates the confirmation of the password' do @@ -48,7 +48,7 @@ describe InternalUser do end context 'when complete' do - let(:user) { FactoryGirl.create(:teacher, activation_state: 'active') } + let(:user) { FactoryBot.create(:teacher, activation_state: 'active') } it 'does not validate the confirmation of the password' do user.update(password: password, password_confirmation: '') @@ -71,8 +71,8 @@ describe InternalUser do describe '#admin?' do it 'is only true for admins' do - expect(FactoryGirl.build(:admin).admin?).to be true - expect(FactoryGirl.build(:teacher).admin?).to be false + expect(FactoryBot.build(:admin).admin?).to be true + expect(FactoryBot.build(:teacher).admin?).to be false end end @@ -90,8 +90,8 @@ describe InternalUser do describe '#teacher?' do it 'is only true for teachers' do - expect(FactoryGirl.build(:admin).teacher?).to be false - expect(FactoryGirl.build(:teacher).teacher?).to be true + expect(FactoryBot.build(:admin).teacher?).to be false + expect(FactoryBot.build(:teacher).teacher?).to be true end end end diff --git a/spec/models/submission_spec.rb b/spec/models/submission_spec.rb index 227c6b99..0d48eedf 100644 --- a/spec/models/submission_spec.rb +++ b/spec/models/submission_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe Submission do - let(:submission) { FactoryGirl.create(:submission, exercise: FactoryGirl.create(:dummy)) } + let(:submission) { FactoryBot.create(:submission, exercise: FactoryGirl.create(:dummy)) } it 'validates the presence of a cause' do expect(described_class.create.errors[:cause]).to be_present @@ -17,7 +17,7 @@ describe Submission do end describe '#main_file' do - let(:submission) { FactoryGirl.create(:submission) } + let(:submission) { FactoryBot.create(:submission) } it "returns the submission's main file" do expect(submission.main_file).to be_a(CodeOcean::File) @@ -27,7 +27,7 @@ describe Submission do describe '#normalized_score' do context 'with a score' do - let(:submission) { FactoryGirl.create(:submission) } + let(:submission) { FactoryBot.create(:submission) } before(:each) { submission.score = submission.exercise.maximum_score / 2 } it 'returns the score as a value between 0 and 1' do @@ -46,7 +46,7 @@ describe Submission do describe '#percentage' do context 'with a score' do - let(:submission) { FactoryGirl.create(:submission) } + let(:submission) { FactoryBot.create(:submission) } before(:each) { submission.score = submission.exercise.maximum_score / 2 } it 'returns the score expressed as a percentage' do @@ -65,11 +65,11 @@ describe Submission do describe '#siblings' do let(:siblings) { described_class.find_by(user: user).siblings } - let(:user) { FactoryGirl.create(:external_user) } + let(:user) { FactoryBot.create(:external_user) } before(:each) do 10.times.each_with_index do |_, index| - FactoryGirl.create(:submission, exercise: submission.exercise, user: (index.even? ? user : FactoryGirl.create(:external_user))) + FactoryBot.create(:submission, exercise: submission.exercise, user: (index.even? ? user : FactoryGirl.create(:external_user))) end end @@ -89,9 +89,9 @@ describe Submission do describe '#redirect_to_feedback?' do context 'with no exercise feedback' do - let(:exercise) {FactoryGirl.create(:dummy)} - let(:user) {FactoryGirl.build(:external_user, id: (11 - exercise.created_at.to_i % 10) % 10)} - let(:submission) {FactoryGirl.build(:submission, exercise: exercise, user: user)} + let(:exercise) {FactoryBot.create(:dummy)} + let(:user) {FactoryBot.build(:external_user, id: (11 - exercise.created_at.to_i % 10) % 10)} + let(:submission) {FactoryBot.build(:submission, exercise: exercise, user: user)} it 'sends 10% of users to feedback page' do expect(submission.send(:redirect_to_feedback?)).to be_truthy @@ -99,16 +99,16 @@ describe Submission do it 'does not redirect other users' do 9.times do |i| - submission = FactoryGirl.build(:submission, exercise: exercise, user: FactoryGirl.build(:external_user, id: (11 - exercise.created_at.to_i % 10) - i - 1)) + submission = FactoryBot.build(:submission, exercise: exercise, user: FactoryGirl.build(:external_user, id: (11 - exercise.created_at.to_i % 10) - i - 1)) expect(submission.send(:redirect_to_feedback?)).to be_falsey end end end context 'with little exercise feedback' do - let(:exercise) {FactoryGirl.create(:dummy_with_user_feedbacks)} - let(:user) {FactoryGirl.build(:external_user, id: (11 - exercise.created_at.to_i % 10) % 10)} - let(:submission) {FactoryGirl.build(:submission, exercise: exercise, user: user)} + let(:exercise) {FactoryBot.create(:dummy_with_user_feedbacks)} + let(:user) {FactoryBot.build(:external_user, id: (11 - exercise.created_at.to_i % 10) % 10)} + let(:submission) {FactoryBot.build(:submission, exercise: exercise, user: user)} it 'sends 10% of users to feedback page' do expect(submission.send(:redirect_to_feedback?)).to be_truthy @@ -116,19 +116,19 @@ describe Submission do it 'does not redirect other users' do 9.times do |i| - submission = FactoryGirl.build(:submission, exercise: exercise, user: FactoryGirl.build(:external_user, id: (11 - exercise.created_at.to_i % 10) - i - 1)) + submission = FactoryBot.build(:submission, exercise: exercise, user: FactoryGirl.build(:external_user, id: (11 - exercise.created_at.to_i % 10) - i - 1)) expect(submission.send(:redirect_to_feedback?)).to be_falsey end end end context 'with enough exercise feedback' do - let(:exercise) {FactoryGirl.create(:dummy_with_user_feedbacks, user_feedbacks_count: 42)} - let(:user) {FactoryGirl.create(:external_user)} + let(:exercise) {FactoryBot.create(:dummy_with_user_feedbacks, user_feedbacks_count: 42)} + let(:user) {FactoryBot.create(:external_user)} it 'sends nobody to feedback page' do 30.times do |i| - submission = FactoryGirl.create(:submission, exercise: exercise, user: FactoryGirl.create(:external_user)) + submission = FactoryBot.create(:submission, exercise: exercise, user: FactoryGirl.create(:external_user)) expect(submission.send(:redirect_to_feedback?)).to be_falsey end end diff --git a/spec/policies/admin/dashboard_policy_spec.rb b/spec/policies/admin/dashboard_policy_spec.rb index 0592843a..71a7adcd 100644 --- a/spec/policies/admin/dashboard_policy_spec.rb +++ b/spec/policies/admin/dashboard_policy_spec.rb @@ -5,15 +5,15 @@ describe Admin::DashboardPolicy do permissions :show? do it 'grants access to admins' do - expect(subject).to permit(FactoryGirl.build(:admin), :dashboard) + expect(subject).to permit(FactoryBot.build(:admin), :dashboard) end it 'does not grant access to teachers' do - expect(subject).not_to permit(FactoryGirl.build(:teacher), :dashboard) + expect(subject).not_to permit(FactoryBot.build(:teacher), :dashboard) end it 'does not grant access to external users' do - expect(subject).not_to permit(FactoryGirl.build(:external_user), :dashboard) + expect(subject).not_to permit(FactoryBot.build(:external_user), :dashboard) end end end diff --git a/spec/policies/code_ocean/file_policy_spec.rb b/spec/policies/code_ocean/file_policy_spec.rb index a41f0a0b..ac928cb3 100644 --- a/spec/policies/code_ocean/file_policy_spec.rb +++ b/spec/policies/code_ocean/file_policy_spec.rb @@ -3,15 +3,15 @@ require 'rails_helper' describe CodeOcean::FilePolicy do subject { described_class } - let(:exercise) { FactoryGirl.create(:fibonacci) } - let(:submission) { FactoryGirl.create(:submission) } + let(:exercise) { FactoryBot.create(:fibonacci) } + let(:submission) { FactoryBot.create(:submission) } permissions :create? do context 'as part of an exercise' do let(:file) { exercise.files.first } it 'grants access to admins' do - expect(subject).to permit(FactoryGirl.build(:admin), file) + expect(subject).to permit(FactoryBot.build(:admin), file) end it 'grants access to authors' do @@ -20,7 +20,7 @@ describe CodeOcean::FilePolicy do it 'does not grant access to all other users' do [:external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), file) + expect(subject).not_to permit(FactoryBot.build(factory_name), file) end end end @@ -34,7 +34,7 @@ describe CodeOcean::FilePolicy do it 'does not grant access to all other users' do [:admin, :external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), file) + expect(subject).not_to permit(FactoryBot.build(factory_name), file) end end end @@ -45,7 +45,7 @@ describe CodeOcean::FilePolicy do let(:file) { exercise.files.first } it 'grants access to admins' do - expect(subject).to permit(FactoryGirl.build(:admin), file) + expect(subject).to permit(FactoryBot.build(:admin), file) end it 'grants access to authors' do @@ -54,7 +54,7 @@ describe CodeOcean::FilePolicy do it 'does not grant access to all other users' do [:external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), file) + expect(subject).not_to permit(FactoryBot.build(factory_name), file) end end end @@ -64,7 +64,7 @@ describe CodeOcean::FilePolicy do it 'does not grant access to anyone' do [:admin, :external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), file) + expect(subject).not_to permit(FactoryBot.build(factory_name), file) end end end diff --git a/spec/policies/consumer_policy_spec.rb b/spec/policies/consumer_policy_spec.rb index 01b74dd3..36f96288 100644 --- a/spec/policies/consumer_policy_spec.rb +++ b/spec/policies/consumer_policy_spec.rb @@ -6,9 +6,9 @@ describe ConsumerPolicy do [:create?, :destroy?, :edit?, :index?, :new?, :show?, :update?].each do |action| permissions(action) do it 'grants access to admins only' do - expect(subject).to permit(FactoryGirl.build(:admin), Consumer.new) + expect(subject).to permit(FactoryBot.build(:admin), Consumer.new) [:external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), Consumer.new) + expect(subject).not_to permit(FactoryBot.build(factory_name), Consumer.new) end end end diff --git a/spec/policies/error_policy_spec.rb b/spec/policies/error_policy_spec.rb index 185eeeae..2fff2e7e 100644 --- a/spec/policies/error_policy_spec.rb +++ b/spec/policies/error_policy_spec.rb @@ -3,20 +3,20 @@ require 'rails_helper' describe ErrorPolicy do subject { described_class } - let(:error) { FactoryGirl.build(:error) } + let(:error) { FactoryBot.build(:error) } [:create?, :index?, :new?].each do |action| permissions(action) do it 'grants access to admins' do - expect(subject).to permit(FactoryGirl.build(:admin), error) + expect(subject).to permit(FactoryBot.build(:admin), error) end it 'grants access to teachers' do - expect(subject).to permit(FactoryGirl.build(:teacher), error) + expect(subject).to permit(FactoryBot.build(:teacher), error) end it 'does not grant access to external users' do - expect(subject).not_to permit(FactoryGirl.build(:external_user), error) + expect(subject).not_to permit(FactoryBot.build(:external_user), error) end end end @@ -24,7 +24,7 @@ describe ErrorPolicy do [:destroy?, :edit?, :show?, :update?].each do |action| permissions(action) do it 'grants access to admins' do - expect(subject).to permit(FactoryGirl.build(:admin), error) + expect(subject).to permit(FactoryBot.build(:admin), error) end it 'grants access to authors' do @@ -33,7 +33,7 @@ describe ErrorPolicy do it 'does not grant access to all other users' do [:external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), error) + expect(subject).not_to permit(FactoryBot.build(factory_name), error) end end end diff --git a/spec/policies/execution_environment_policy_spec.rb b/spec/policies/execution_environment_policy_spec.rb index 6f41f7e4..ef5787b9 100644 --- a/spec/policies/execution_environment_policy_spec.rb +++ b/spec/policies/execution_environment_policy_spec.rb @@ -3,20 +3,20 @@ require 'rails_helper' describe ExecutionEnvironmentPolicy do subject { described_class } - let(:execution_environment) { FactoryGirl.build(:ruby) } + let(:execution_environment) { FactoryBot.build(:ruby) } [:create?, :index?, :new?].each do |action| permissions(action) do it 'grants access to admins' do - expect(subject).to permit(FactoryGirl.build(:admin), execution_environment) + expect(subject).to permit(FactoryBot.build(:admin), execution_environment) end it 'grants access to teachers' do - expect(subject).to permit(FactoryGirl.build(:teacher), execution_environment) + expect(subject).to permit(FactoryBot.build(:teacher), execution_environment) end it 'does not grant access to external users' do - expect(subject).not_to permit(FactoryGirl.build(:external_user), execution_environment) + expect(subject).not_to permit(FactoryBot.build(:external_user), execution_environment) end end end @@ -24,7 +24,7 @@ describe ExecutionEnvironmentPolicy do [:execute_command?, :shell?, :statistics?].each do |action| permissions(action) do it 'grants access to admins' do - expect(subject).to permit(FactoryGirl.build(:admin), execution_environment) + expect(subject).to permit(FactoryBot.build(:admin), execution_environment) end it 'grants access to authors' do @@ -33,7 +33,7 @@ describe ExecutionEnvironmentPolicy do it 'does not grant access to all other users' do [:external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), execution_environment) + expect(subject).not_to permit(FactoryBot.build(factory_name), execution_environment) end end end @@ -42,7 +42,7 @@ describe ExecutionEnvironmentPolicy do [:destroy?, :edit?, :show?, :update?].each do |action| permissions(action) do it 'grants access to admins' do - expect(subject).to permit(FactoryGirl.build(:admin), execution_environment) + expect(subject).to permit(FactoryBot.build(:admin), execution_environment) end it 'does not grant access to authors' do @@ -51,7 +51,7 @@ describe ExecutionEnvironmentPolicy do it 'does not grant access to all other users' do [:external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), execution_environment) + expect(subject).not_to permit(FactoryBot.build(factory_name), execution_environment) end end end diff --git a/spec/policies/exercise_policy_spec.rb b/spec/policies/exercise_policy_spec.rb index 2799123f..f0024fa8 100644 --- a/spec/policies/exercise_policy_spec.rb +++ b/spec/policies/exercise_policy_spec.rb @@ -3,13 +3,13 @@ require 'rails_helper' describe ExercisePolicy do subject { described_class } -let(:exercise) { FactoryGirl.build(:dummy) } +let(:exercise) { FactoryBot.build(:dummy) } permissions :batch_update? do it 'grants access to admins only' do - expect(subject).to permit(FactoryGirl.build(:admin), exercise) + expect(subject).to permit(FactoryBot.build(:admin), exercise) [:external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), exercise) + expect(subject).not_to permit(FactoryBot.build(factory_name), exercise) end end end @@ -17,15 +17,15 @@ let(:exercise) { FactoryGirl.build(:dummy) } [:create?, :index?, :new?].each do |action| permissions(action) do it 'grants access to admins' do - expect(subject).to permit(FactoryGirl.build(:admin), exercise) + expect(subject).to permit(FactoryBot.build(:admin), exercise) end it 'grants access to teachers' do - expect(subject).to permit(FactoryGirl.build(:teacher), exercise) + expect(subject).to permit(FactoryBot.build(:teacher), exercise) end it 'does not grant access to external users' do - expect(subject).not_to permit(FactoryGirl.build(:external_user), exercise) + expect(subject).not_to permit(FactoryBot.build(:external_user), exercise) end end end @@ -33,7 +33,7 @@ let(:exercise) { FactoryGirl.build(:dummy) } [:clone?, :destroy?, :edit?, :statistics?, :update?].each do |action| permissions(action) do it 'grants access to admins' do - expect(subject).to permit(FactoryGirl.build(:admin), exercise) + expect(subject).to permit(FactoryBot.build(:admin), exercise) end it 'grants access to authors' do @@ -42,7 +42,7 @@ let(:exercise) { FactoryGirl.build(:dummy) } it 'does not grant access to all other users' do [:external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), exercise) + expect(subject).not_to permit(FactoryBot.build(factory_name), exercise) end end end @@ -51,7 +51,7 @@ let(:exercise) { FactoryGirl.build(:dummy) } [:show?].each do |action| permissions(action) do it 'not grants access to external users' do - expect(subject).not_to permit(FactoryGirl.build(:external_user), exercise) + expect(subject).not_to permit(FactoryBot.build(:external_user), exercise) end end end @@ -60,7 +60,7 @@ let(:exercise) { FactoryGirl.build(:dummy) } permissions(action) do it 'grants access to anyone' do [:admin, :external_user, :teacher].each do |factory_name| - expect(subject).to permit(FactoryGirl.build(factory_name), Exercise.new) + expect(subject).to permit(FactoryBot.build(factory_name), Exercise.new) end end end @@ -69,13 +69,13 @@ let(:exercise) { FactoryGirl.build(:dummy) } describe ExercisePolicy::Scope do describe '#resolve' do before(:all) do - @admin = FactoryGirl.create(:admin) - @external_user = FactoryGirl.create(:external_user) - @teacher = FactoryGirl.create(:teacher) + @admin = FactoryBot.create(:admin) + @external_user = FactoryBot.create(:external_user) + @teacher = FactoryBot.create(:teacher) [@admin, @teacher].each do |user| [true, false].each do |public| - FactoryGirl.create(:dummy, public: public, user_id: user.id, user_type: InternalUser.class.name) + FactoryBot.create(:dummy, public: public, user_id: user.id, user_type: InternalUser.class.name) end end end diff --git a/spec/policies/external_user_policy_spec.rb b/spec/policies/external_user_policy_spec.rb index be506c7f..d668c305 100644 --- a/spec/policies/external_user_policy_spec.rb +++ b/spec/policies/external_user_policy_spec.rb @@ -6,9 +6,9 @@ describe ExternalUserPolicy do [:create?, :destroy?, :edit?, :index?, :new?, :show?, :update?].each do |action| permissions(action) do it 'grants access to admins only' do - expect(subject).to permit(FactoryGirl.build(:admin), ExternalUser.new) + expect(subject).to permit(FactoryBot.build(:admin), ExternalUser.new) [:external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), ExternalUser.new) + expect(subject).not_to permit(FactoryBot.build(factory_name), ExternalUser.new) end end end diff --git a/spec/policies/file_type_policy_spec.rb b/spec/policies/file_type_policy_spec.rb index 042e4393..55ec4120 100644 --- a/spec/policies/file_type_policy_spec.rb +++ b/spec/policies/file_type_policy_spec.rb @@ -3,20 +3,20 @@ require 'rails_helper' describe FileTypePolicy do subject { described_class } - let(:file_type) { FactoryGirl.build(:dot_rb) } + let(:file_type) { FactoryBot.build(:dot_rb) } [:create?, :index?, :new?].each do |action| permissions(action) do it 'grants access to admins' do - expect(subject).to permit(FactoryGirl.build(:admin), file_type) + expect(subject).to permit(FactoryBot.build(:admin), file_type) end it 'grants access to teachers' do - expect(subject).to permit(FactoryGirl.build(:teacher), file_type) + expect(subject).to permit(FactoryBot.build(:teacher), file_type) end it 'does not grant access to external users' do - expect(subject).not_to permit(FactoryGirl.build(:external_user), file_type) + expect(subject).not_to permit(FactoryBot.build(:external_user), file_type) end end end @@ -24,7 +24,7 @@ describe FileTypePolicy do [:destroy?, :edit?, :show?, :update?].each do |action| permissions(action) do it 'grants access to admins' do - expect(subject).to permit(FactoryGirl.build(:admin), file_type) + expect(subject).to permit(FactoryBot.build(:admin), file_type) end it 'grants access to authors' do @@ -33,7 +33,7 @@ describe FileTypePolicy do it 'does not grant access to all other users' do [:external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), file_type) + expect(subject).not_to permit(FactoryBot.build(factory_name), file_type) end end end diff --git a/spec/policies/hint_policy_spec.rb b/spec/policies/hint_policy_spec.rb index ccde798f..2aa9d9e5 100644 --- a/spec/policies/hint_policy_spec.rb +++ b/spec/policies/hint_policy_spec.rb @@ -3,20 +3,20 @@ require 'rails_helper' describe HintPolicy do subject { described_class } - let(:hint) { FactoryGirl.build(:ruby_no_method_error) } + let(:hint) { FactoryBot.build(:ruby_no_method_error) } [:create?, :index?, :new?].each do |action| permissions(action) do it 'grants access to admins' do - expect(subject).to permit(FactoryGirl.build(:admin), hint) + expect(subject).to permit(FactoryBot.build(:admin), hint) end it 'grants access to teachers' do - expect(subject).to permit(FactoryGirl.build(:teacher), hint) + expect(subject).to permit(FactoryBot.build(:teacher), hint) end it 'does not grant access to external users' do - expect(subject).not_to permit(FactoryGirl.build(:external_user), hint) + expect(subject).not_to permit(FactoryBot.build(:external_user), hint) end end end @@ -24,7 +24,7 @@ describe HintPolicy do [:destroy?, :edit?, :show?, :update?].each do |action| permissions(action) do it 'grants access to admins' do - expect(subject).to permit(FactoryGirl.build(:admin), hint) + expect(subject).to permit(FactoryBot.build(:admin), hint) end it 'grants access to authors' do @@ -33,7 +33,7 @@ describe HintPolicy do it 'does not grant access to all other users' do [:external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), hint) + expect(subject).not_to permit(FactoryBot.build(factory_name), hint) end end end diff --git a/spec/policies/internal_user_policy_spec.rb b/spec/policies/internal_user_policy_spec.rb index 3ad6e7d9..8a50988f 100644 --- a/spec/policies/internal_user_policy_spec.rb +++ b/spec/policies/internal_user_policy_spec.rb @@ -6,9 +6,9 @@ describe InternalUserPolicy do [:create?, :edit?, :index?, :new?, :show?, :update?].each do |action| permissions(action) do it 'grants access to admins only' do - expect(subject).to permit(FactoryGirl.build(:admin), InternalUser.new) + expect(subject).to permit(FactoryBot.build(:admin), InternalUser.new) [:external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), InternalUser.new) + expect(subject).not_to permit(FactoryBot.build(factory_name), InternalUser.new) end end end @@ -18,16 +18,16 @@ describe InternalUserPolicy do context 'with an admin user' do it 'grants access to no one' do [:admin, :external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), FactoryGirl.build(:admin)) + expect(subject).not_to permit(FactoryBot.build(factory_name), FactoryGirl.build(:admin)) end end end context 'with a non-admin user' do it 'grants access to admins only' do - expect(subject).to permit(FactoryGirl.build(:admin), InternalUser.new) + expect(subject).to permit(FactoryBot.build(:admin), InternalUser.new) [:external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), FactoryGirl.build(:teacher)) + expect(subject).not_to permit(FactoryBot.build(factory_name), FactoryGirl.build(:teacher)) end end end diff --git a/spec/policies/submission_policy_spec.rb b/spec/policies/submission_policy_spec.rb index f844b984..9d79b4e1 100644 --- a/spec/policies/submission_policy_spec.rb +++ b/spec/policies/submission_policy_spec.rb @@ -6,7 +6,7 @@ describe SubmissionPolicy do permissions :create? do it 'grants access to anyone' do [:admin, :external_user, :teacher].each do |factory_name| - expect(subject).to permit(FactoryGirl.build(factory_name), Submission.new) + expect(subject).to permit(FactoryBot.build(factory_name), Submission.new) end end end @@ -14,21 +14,21 @@ describe SubmissionPolicy do [:download_file?, :render_file?, :run?, :score?, :show?, :statistics?, :stop?, :test?].each do |action| permissions(action) do it 'grants access to admins' do - expect(subject).to permit(FactoryGirl.build(:admin), Submission.new) + expect(subject).to permit(FactoryBot.build(:admin), Submission.new) end it 'grants access to authors' do - user = FactoryGirl.create(:external_user) - expect(subject).to permit(user, FactoryGirl.build(:submission, exercise: Exercise.new, user_id: user.id, user_type: user.class.name)) + user = FactoryBot.create(:external_user) + expect(subject).to permit(user, FactoryBot.build(:submission, exercise: Exercise.new, user_id: user.id, user_type: user.class.name)) end end end permissions :index? do it 'grants access to admins only' do - expect(subject).to permit(FactoryGirl.build(:admin), Submission.new) + expect(subject).to permit(FactoryBot.build(:admin), Submission.new) [:external_user, :teacher].each do |factory_name| - expect(subject).not_to permit(FactoryGirl.build(factory_name), Submission.new) + expect(subject).not_to permit(FactoryBot.build(factory_name), Submission.new) end end end diff --git a/spec/support/docker.rb b/spec/support/docker.rb index 7cb16ed4..e2be05f9 100644 --- a/spec/support/docker.rb +++ b/spec/support/docker.rb @@ -1,5 +1,5 @@ CONTAINER = Docker::Container.send(:new, Docker::Connection.new('http://example.org', {}), 'id' => SecureRandom.hex) -IMAGE = Docker::Image.new(Docker::Connection.new('http://example.org', {}), 'id' => SecureRandom.hex, 'RepoTags' => [FactoryGirl.attributes_for(:ruby)[:docker_image]]) +IMAGE = Docker::Image.new(Docker::Connection.new('http://example.org', {}), 'id' => SecureRandom.hex, 'RepoTags' => [FactoryBot.attributes_for(:ruby)[:docker_image]]) RSpec.configure do |config| config.before(:each) do |example| diff --git a/spec/uploaders/file_uploader_spec.rb b/spec/uploaders/file_uploader_spec.rb index eabc37d1..3d335fa4 100644 --- a/spec/uploaders/file_uploader_spec.rb +++ b/spec/uploaders/file_uploader_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' describe FileUploader do let(:file_path) { Rails.root.join('db', 'seeds', 'fibonacci', 'exercise.rb') } - let(:uploader) { described_class.new(FactoryGirl.create(:file)) } + let(:uploader) { described_class.new(FactoryBot.create(:file)) } before(:each) { uploader.store!(File.open(file_path, 'r')) } after(:each) { uploader.remove! } diff --git a/spec/views/execution_environments/shell.html.slim_spec.rb b/spec/views/execution_environments/shell.html.slim_spec.rb index 791804e3..84adb038 100644 --- a/spec/views/execution_environments/shell.html.slim_spec.rb +++ b/spec/views/execution_environments/shell.html.slim_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe 'execution_environments/shell.html.slim' do - let(:execution_environment) { FactoryGirl.create(:ruby) } + let(:execution_environment) { FactoryBot.create(:ruby) } before(:each) do assign(:execution_environment, execution_environment) diff --git a/spec/views/exercises/implement.html.slim_spec.rb b/spec/views/exercises/implement.html.slim_spec.rb index 84a65fa2..7c5e641a 100644 --- a/spec/views/exercises/implement.html.slim_spec.rb +++ b/spec/views/exercises/implement.html.slim_spec.rb @@ -1,12 +1,12 @@ require 'rails_helper' describe 'exercises/implement.html.slim' do - let(:exercise) { FactoryGirl.create(:fibonacci) } + let(:exercise) { FactoryBot.create(:fibonacci) } let(:files) { exercise.files.visible } let(:non_binary_files) { files.reject { |file| file.file_type.binary? } } before(:each) do - assign(:current_user, FactoryGirl.create(:admin)) + assign(:current_user, FactoryBot.create(:admin)) assign(:exercise, exercise) assign(:files, files) assign(:paths, []) diff --git a/test/factories/error_template_attributes.rb b/test/factories/error_template_attributes.rb index 24adb856..84e65757 100644 --- a/test/factories/error_template_attributes.rb +++ b/test/factories/error_template_attributes.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :error_template_attribute do error_template nil key "MyString" diff --git a/test/factories/error_templates.rb b/test/factories/error_templates.rb index 2abf68c9..3a2637ca 100644 --- a/test/factories/error_templates.rb +++ b/test/factories/error_templates.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :error_template do execution_environment nil name "MyString" diff --git a/test/factories/structured_error_attributes.rb b/test/factories/structured_error_attributes.rb index 7485967c..0b720b23 100644 --- a/test/factories/structured_error_attributes.rb +++ b/test/factories/structured_error_attributes.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :structured_error_attribute do structured_error nil error_template_attribute nil diff --git a/test/factories/structured_errors.rb b/test/factories/structured_errors.rb index 4a87cec1..041b4bbd 100644 --- a/test/factories/structured_errors.rb +++ b/test/factories/structured_errors.rb @@ -1,4 +1,4 @@ -FactoryGirl.define do +FactoryBot.define do factory :structured_error do error_template nil file nil