Skip to content

Commit

Permalink
Fix tag creation (#6585)
Browse files Browse the repository at this point in the history
  • Loading branch information
ErikSchierboom authored Dec 1, 2023
1 parent 038e937 commit 9b96b93
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 2 deletions.
4 changes: 2 additions & 2 deletions app/commands/training_data/code_tags_sample/create.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def call
end
end

TrainingData::CodeTagsSample::GenerateTags.defer(sample) if generate_tags?
TrainingData::CodeTagsSample::GenerateTags.defer(sample) if generate_tags?(sample)

sample
end
Expand All @@ -24,7 +24,7 @@ def call
memoize
def submission = solution.latest_published_iteration_submission

def generate_tags?
def generate_tags?(sample)
sample.status == :untagged &&
sample.dataset == :training &&
sample.llm_tags.blank?
Expand Down
55 changes: 55 additions & 0 deletions test/commands/training_data/code_tags_sample/create_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
require 'test_helper'

class TrainingData::CodeTagsSample::CreateTest < ActiveSupport::TestCase
test "creates sample for solution with published submission" do
solution = create(:practice_solution, :published)
submission = create(:submission, solution:)
create(:submission_file, submission:, content: "foo")
create(:iteration, submission:)

sample = TrainingData::CodeTagsSample::Create.(solution)

assert_equal solution, sample.solution
assert_equal :training, sample.dataset
assert_equal :untagged, sample.status
end

test "does not create sample when no solution has no published submission" do
solution = create(:practice_solution, published_at: nil)

TrainingData::CodeTagsSample::Create.(solution)

refute TrainingData::CodeTagsSample.exists?
end

test "does not create sample when published submission does not have files" do
solution = create(:practice_solution, :published)
create(:submission, solution:)

TrainingData::CodeTagsSample::Create.(solution)

refute TrainingData::CodeTagsSample.exists?
end

test "generates tags for solution with published submission" do
solution = create(:practice_solution, :published)
submission = create(:submission, solution:)
create(:submission_file, submission:, content: "foo")
create(:iteration, submission:)

TrainingData::CodeTagsSample::GenerateTags.expects(:defer)

TrainingData::CodeTagsSample::Create.(solution)
end

test "does not generate tags when creating validation dataset" do
solution = create(:practice_solution, :published)
submission = create(:submission, solution:)
create(:submission_file, submission:, content: "foo")
create(:iteration, submission:)

TrainingData::CodeTagsSample::GenerateTags.expects(:defer).never

TrainingData::CodeTagsSample::Create.(solution, dataset: :validation)
end
end

0 comments on commit 9b96b93

Please sign in to comment.