Skip to content

Instantly share code, notes, and snippets.

@utilum
Created December 16, 2016 20:37
Show Gist options
  • Save utilum/2faa32e70838d1966971d20897032577 to your computer and use it in GitHub Desktop.
Save utilum/2faa32e70838d1966971d20897032577 to your computer and use it in GitHub Desktop.
slightly revised test for #27348
begin
require "bundler/inline"
rescue LoadError => e
$stderr.puts "Bundler version 1.10 or later is required. Please update your Bundler"
raise e
end
gemfile(true) do
source "https://rubygems.org"
gem "rails", '4.2.7.1'
gem "sqlite3", '1.3.11'
end
require "active_record"
require "minitest/autorun"
require "logger"
# This connection will do for database-independent bug reports.
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
ActiveRecord::Base.logger = Logger.new(STDOUT)
ActiveRecord::Schema.define do
create_table :posts, force: true do |t|
t.string :title, default: 'Default Title'
end
end
class Post < ActiveRecord::Base
end
class BugTest < Minitest::Test
def test_attribute_definition
Post.create!
Post.reset_column_information
post = Post.last
assert_equal 'Default Title', post.title
assert post.class.instance_variable_get(:@attribute_methods_generated)
end
def test_attribute_definition_with_marshal
dump = Marshal.dump(Post.create!)
Post.reset_column_information
post = Marshal.load(dump)
assert_equal 'Default Title', post.title
end
def test_attribute_definition_bool_with_marshal
dump = Marshal.dump(Post.create!)
Post.reset_column_information
post = Marshal.load(dump)
refute post.class.method_defined?(:title)
post.class.define_attribute_methods
assert post.class.method_defined?(:title)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment