Sha256: 3c5a8842eaf853249c2324d9eb5041480e0811d02d99740e9a0e12eb50126594
Contents?: true
Size: 1.38 KB
Versions: 4
Compression:
Stored size: 1.38 KB
Contents
shared_examples_for "doesn't blow up on reserved words" do unless ENV['RES'] == 'false' # collect and uniq reserved words reserved_words = ['mysql_reserved.txt', 'pg_reserved.txt'].map do |basename| File.expand_path("../../misc/#{basename}", __FILE__) end.map do |path| IO.readlines(path) end.flatten.map(&:chomp).select(&:present?).uniq # make lots of AR models, each of which has 10 columns named after these words nasties = [] reserved_words.each_slice(10) do |words| eval %{ class Nasty#{nasties.length} < ActiveRecord::Base end } nasty = Object.const_get("Nasty#{nasties.length}") nasty.class_eval do self.primary_key = 'fake_primary_key' col :fake_primary_key words.each do |word| col word end end nasties << [ nasty, words ] end nasties.each do |nasty, _| nasty.auto_upgrade! end describe "reserved words" do nasties.each do |nasty, words| it "doesn't die on reserved words #{words.join(',')}" do upsert = Upsert.new connection, nasty.table_name random = rand(1e3).to_s selector = { :fake_primary_key => random, words.first => words.first } document = words[1..-1].inject({}) { |memo, word| memo[word] = word; memo } assert_creates nasty, [selector.merge(document)] do upsert.row selector, document end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
upsert-0.3.4 | test/shared/reserved_words.rb |
upsert-0.3.3 | test/shared/reserved_words.rb |
upsert-0.3.2 | test/shared/reserved_words.rb |
upsert-0.3.1 | test/shared/reserved_words.rb |