From: Andy Allan Date: Sun, 30 Oct 2016 15:15:23 +0000 (+0100) Subject: Convert fixtures to factory for old_way_tags X-Git-Tag: live~3639^2~6 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/e308da8daf91d4a720473111fef6f756d4510102 Convert fixtures to factory for old_way_tags --- diff --git a/test/controllers/old_way_controller_test.rb b/test/controllers/old_way_controller_test.rb index 612b4a6a4..a15f6bad5 100644 --- a/test/controllers/old_way_controller_test.rb +++ b/test/controllers/old_way_controller_test.rb @@ -46,6 +46,10 @@ class OldWayControllerTest < ActionController::TestCase ## # check that we can retrieve versions of a way def test_version + propogate_tags(current_ways(:visible_way), ways(:visible_way)) + propogate_tags(current_ways(:used_way), ways(:used_way)) + propogate_tags(current_ways(:way_with_versions), ways(:way_with_versions_v4)) + check_current_version(current_ways(:visible_way).id) check_current_version(current_ways(:used_way).id) check_current_version(current_ways(:way_with_versions).id) @@ -276,4 +280,10 @@ class OldWayControllerTest < ActionController::TestCase # now redact it post :redact, :id => way.way_id, :version => way.version, :redaction => redaction.id end + + def propogate_tags(way, old_way) + way.tags.each do |k, v| + create(:old_way_tag, :old_way => old_way, :k => k, :v => v) + end + end end diff --git a/test/factories/old_way_tags.rb b/test/factories/old_way_tags.rb new file mode 100644 index 000000000..c639c06db --- /dev/null +++ b/test/factories/old_way_tags.rb @@ -0,0 +1,10 @@ +FactoryGirl.define do + factory :old_way_tag do + sequence(:k) { |n| "Key #{n}" } + sequence(:v) { |n| "Value #{n}" } + + # Fixme requires old_way factory + way_id 1 + version 1 + end +end diff --git a/test/fixtures/way_tags.yml b/test/fixtures/way_tags.yml deleted file mode 100644 index 3361f74cb..000000000 --- a/test/fixtures/way_tags.yml +++ /dev/null @@ -1,77 +0,0 @@ -t1: - way_id: 1 - k: 'test' - v: 'yes' - version: 1 - -t2: - way_id: 2 - k: 'test' - v: 'yes' - version: 1 - -t3: - way_id: 3 - k: 'test' - v: 'yes' - version: 1 - -t3_t2: - way_id: 3 - k: 'name' - v: 'Test Way' - version: 1 - -wv3_t1: - way_id: 4 - k: 'testing' - v: 'added in way version 3' - version: 3 - -wv3_t2: - way_id: 4 - k: 'testing two' - v: 'added in way version 3' - version: 3 - -wv3_t3: - way_id: 4 - k: 'testing three' - v: 'added in way version 3' - version: 3 - -wv4_t1: - way_id: 4 - k: 'testing' - v: 'added in way version 3' - version: 4 - -wv4_t2: - way_id: 4 - k: 'testing two' - v: 'modified in way version 4' - version: 4 - -t6_v1: - way_id: 6 - k: 'test' - v: 'yes' - version: 1 - -t6_v2: - way_id: 6 - k: 'test' - v: 'yes' - version: 2 - -t6_v3: - way_id: 6 - k: 'test' - v: 'yes' - version: 3 - -t6_v4: - way_id: 6 - k: 'test' - v: 'yes' - version: 4 diff --git a/test/models/old_node_tag_test.rb b/test/models/old_node_tag_test.rb index f49be9256..3f0867a87 100644 --- a/test/models/old_node_tag_test.rb +++ b/test/models/old_node_tag_test.rb @@ -1,8 +1,6 @@ require "test_helper" class OldNodeTagTest < ActiveSupport::TestCase - api_fixtures - def test_length_key_valid tag = create(:old_node_tag) (0..255).each do |i| diff --git a/test/models/old_node_test.rb b/test/models/old_node_test.rb index 6d25d7667..a4c317c02 100644 --- a/test/models/old_node_test.rb +++ b/test/models/old_node_test.rb @@ -90,7 +90,7 @@ class OldNodeTest < ActiveSupport::TestCase node = nodes(:node_with_versions_v3) tags = OldNode.find(node.id).old_tags.order(:k) assert_equal 3, tags.count - taglist_v3.sort_by(&:k).each_index do |i| + taglist_v3.sort_by!(&:k).each_index do |i| assert_equal taglist_v3[i].k, tags[i].k assert_equal taglist_v3[i].v, tags[i].v end @@ -98,7 +98,7 @@ class OldNodeTest < ActiveSupport::TestCase node = nodes(:node_with_versions_v4) tags = OldNode.find(node.id).old_tags.order(:k) assert_equal 2, tags.count - taglist_v4.sort_by(&:k).each_index do |i| + taglist_v4.sort_by!(&:k).each_index do |i| assert_equal taglist_v4[i].k, tags[i].k assert_equal taglist_v4[i].v, tags[i].v end diff --git a/test/models/old_way_tag_test.rb b/test/models/old_way_tag_test.rb index b8757d572..057bdf4f0 100644 --- a/test/models/old_way_tag_test.rb +++ b/test/models/old_way_tag_test.rb @@ -1,58 +1,34 @@ require "test_helper" class OldWayTagTest < ActiveSupport::TestCase - api_fixtures - - def test_tag_count - assert_equal 13, OldWayTag.count - end - def test_length_key_valid - key = "k" + tag = create(:old_way_tag) (0..255).each do |i| - tag = OldWayTag.new - tag.way_id = way_tags(:t1).way_id - tag.version = 1 - tag.k = key * i - tag.v = "v" + tag.k = "k" * i assert tag.valid? end end def test_length_value_valid - val = "v" + tag = create(:old_way_tag) (0..255).each do |i| - tag = OldWayTag.new - tag.way_id = way_tags(:t1).way_id - tag.version = 1 - tag.k = "k" - tag.v = val * i + tag.v = "v" * i assert tag.valid? end end def test_length_key_invalid - ["k" * 256].each do |i| - tag = OldWayTag.new - tag.way_id = way_tags(:t1).way_id - tag.version = 1 - tag.k = i - tag.v = "v" - assert !tag.valid?, "Key should be too long" - assert tag.errors[:k].any? - end + tag = create(:old_way_tag) + tag.k = "k" * 256 + assert !tag.valid?, "Key should be too long" + assert tag.errors[:k].any? end def test_length_value_invalid - ["k" * 256].each do |i| - tag = OldWayTag.new - tag.way_id = way_tags(:t1).way_id - tag.version = 1 - tag.k = "k" - tag.v = i - assert !tag.valid?, "Value should be too long" - assert tag.errors[:v].any? - end + tag = create(:old_way_tag) + tag.v = "v" * 256 + assert !tag.valid?, "Value should be too long" + assert tag.errors[:v].any? end def test_empty_tag_invalid @@ -62,11 +38,12 @@ class OldWayTagTest < ActiveSupport::TestCase end def test_uniqueness + existing = create(:old_way_tag) tag = OldWayTag.new - tag.way_id = way_tags(:t1).way_id - tag.version = way_tags(:t1).version - tag.k = way_tags(:t1).k - tag.v = way_tags(:t1).v + tag.way_id = existing.way_id + tag.version = existing.version + tag.k = existing.k + tag.v = existing.v assert tag.new_record? assert !tag.valid? assert_raise(ActiveRecord::RecordInvalid) { tag.save! } diff --git a/test/models/old_way_test.rb b/test/models/old_way_test.rb index 37dfccad3..b65963260 100644 --- a/test/models/old_way_test.rb +++ b/test/models/old_way_test.rb @@ -38,6 +38,9 @@ class OldWayTest < ActiveSupport::TestCase end def test_way_tags + taglist_v3 = create_list(:old_way_tag, 3, :old_way => ways(:way_with_versions_v3)) + taglist_v4 = create_list(:old_way_tag, 2, :old_way => ways(:way_with_versions_v4)) + way = ways(:way_with_versions_v1) tags = OldWay.find(way.id).old_tags.order(:k) assert_equal 0, tags.count @@ -49,23 +52,24 @@ class OldWayTest < ActiveSupport::TestCase way = ways(:way_with_versions_v3) tags = OldWay.find(way.id).old_tags.order(:k) assert_equal 3, tags.count - assert_equal "testing", tags[0].k - assert_equal "added in way version 3", tags[0].v - assert_equal "testing three", tags[1].k - assert_equal "added in way version 3", tags[1].v - assert_equal "testing two", tags[2].k - assert_equal "added in way version 3", tags[2].v + taglist_v3.sort_by!(&:k).each_index do |i| + assert_equal taglist_v3[i].k, tags[i].k + assert_equal taglist_v3[i].v, tags[i].v + end way = ways(:way_with_versions_v4) tags = OldWay.find(way.id).old_tags.order(:k) assert_equal 2, tags.count - assert_equal "testing", tags[0].k - assert_equal "added in way version 3", tags[0].v - assert_equal "testing two", tags[1].k - assert_equal "modified in way version 4", tags[1].v + taglist_v4.sort_by!(&:k).each_index do |i| + assert_equal taglist_v4[i].k, tags[i].k + assert_equal taglist_v4[i].v, tags[i].v + end end def test_tags + taglist_v3 = create_list(:old_way_tag, 3, :old_way => ways(:way_with_versions_v3)) + taglist_v4 = create_list(:old_way_tag, 2, :old_way => ways(:way_with_versions_v4)) + way = ways(:way_with_versions_v1) tags = OldWay.find(way.id).tags assert_equal 0, tags.size @@ -77,15 +81,16 @@ class OldWayTest < ActiveSupport::TestCase way = ways(:way_with_versions_v3) tags = OldWay.find(way.id).tags assert_equal 3, tags.size - assert_equal "added in way version 3", tags["testing"] - assert_equal "added in way version 3", tags["testing two"] - assert_equal "added in way version 3", tags["testing three"] + taglist_v3.each do |tag| + assert_equal tag.v, tags[tag.k] + end way = ways(:way_with_versions_v4) tags = OldWay.find(way.id).tags assert_equal 2, tags.size - assert_equal "added in way version 3", tags["testing"] - assert_equal "modified in way version 4", tags["testing two"] + taglist_v4.each do |tag| + assert_equal tag.v, tags[tag.k] + end end def test_get_nodes_undelete diff --git a/test/test_helper.rb b/test/test_helper.rb index 0fced7ba8..df01a326a 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -33,9 +33,8 @@ module ActiveSupport fixtures :ways set_fixture_class :ways => OldWay - fixtures :way_nodes, :way_tags + fixtures :way_nodes set_fixture_class :way_nodes => OldWayNode - set_fixture_class :way_tags => OldWayTag fixtures :current_relations set_fixture_class :current_relations => Relation