Skip to content

Commit

Permalink
Revert "Add uniqueness validation on Issue"
Browse files Browse the repository at this point in the history
  • Loading branch information
vpereira committed Dec 13, 2019
1 parent 43e00f7 commit ae219ef
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 14 deletions.
1 change: 0 additions & 1 deletion src/api/app/models/issue.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ class Issue < ApplicationRecord
belongs_to :owner, class_name: 'User'

validate :name_validation, on: :create
validates :name, uniqueness: { scope: :issue_tracker_id }

scope :stateless, -> { where(state: nil) }

Expand Down
2 changes: 1 addition & 1 deletion src/api/app/models/patchinfo.rb
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ def verify_data(project, raw_post)
data.elements('issue').each do |i|
tracker = IssueTracker.find_by_name(i['tracker'])
raise TrackerNotFound, "Tracker #{i['tracker']} is not registered in this OBS instance" unless tracker
issue = Issue.find_or_initialize_by(name: i['id'], issue_tracker: tracker)
issue = Issue.new(name: i['id'], issue_tracker: tracker)
raise Issue::InvalidName, issue.errors.full_messages.to_sentence unless issue.valid?
end
# are releasetargets specified ? validate that this project is actually defining them.
Expand Down
1 change: 0 additions & 1 deletion src/api/spec/models/attrib_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,6 @@

subject { build(:attrib, project: project, attrib_type: attrib_type, issues: [issue]) }

it { expect(subject).to be_invalid }
it { expect(subject.errors.full_messages).to match_array(["Issues can't have issues"]) }
end

Expand Down
11 changes: 0 additions & 11 deletions src/api/spec/models/issue_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,5 @@
it 'CVE-XXXX-YYYY should be an invalid name' do
expect { issue_cve.save! }.to raise_error(ActiveRecord::RecordInvalid, /does not match defined regex/)
end

context 'with duplicated issues' do
let(:duplicated_issue) { build(:issue, name: '1234', issue_tracker: issue_tracker) }

it { expect(duplicated_issue).to be_invalid }

it 'has a proper error' do
duplicated_issue.save
expect(duplicated_issue.errors.full_messages).to match_array(['Name has already been taken'])
end
end
end
end
12 changes: 12 additions & 0 deletions src/api/test/unit/attrib_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,18 @@ class AttribTest < ActiveSupport::TestCase
assert_equal 'One', attrib.values.first.value
end

test 'should have no issues' do
attrib_type = AttribType.new(attrib_namespace: @namespace, name: 'AttribIssues')
attrib = Attrib.new(attrib_type: attrib_type, project: Project.first)

bnc = IssueTracker.find_by_name('bnc')
attrib.issues << Issue.new(name: '12345', issue_tracker: bnc)
assert_not attrib.valid?
assert_equal ["can't have issues"], attrib.errors.messages[:issues]
attrib_type.issue_list = true
assert attrib.valid?, "attrib should be valid: #{attrib.errors.messages}"
end

test 'find_by_container_and_fullname' do
project = Project.find_by(name: 'BaseDistro2.0')
attrib = Attrib.find_by_container_and_fullname(project, 'OBS:UpdateProject')
Expand Down

0 comments on commit ae219ef

Please sign in to comment.