Sha256: 8ae9b2b216f57aac573d477b8af30e17c8cab778cd22e865b4c14d122c70c1dc
Contents?: true
Size: 1.46 KB
Versions: 1
Compression:
Stored size: 1.46 KB
Contents
require 'spec_helper' describe Upsert do describe "doesn't blow up on reserved words" do # 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 $conn, 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
upsert-0.4.0 | spec/reserved_words_spec.rb |