aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #10489 from greenriver/ar_counter_cache_multiple_destroyRafael Mendonça França2013-05-061-0/+20
|\ | | | | | | | | | | | | Confirm a record has not already been destroyed before decrementing counter cache Conflicts: activerecord/CHANGELOG.md
| * Confirm a record has not already been destroyed before decrementingBen Tucker2013-05-061-0/+20
| | | | | | | | | | | | | | | | | | counter cache At present, calling destroy multiple times on the same record results in the belongs_to counter cache being decremented multiple times. With this change the record is checked for whether it is already destroyed prior to decrementing the counter cache.
* | Fix test asserting the sanitized SQL hash differently to some adaptersRafael Mendonça França2013-05-061-1/+7
| |
* | Merge pull request #10352 from ↵Rafael Mendonça França2013-05-061-0/+4
|\ \ | | | | | | | | | | | | zohlgren/fix_activerecord_sanitization_sanitize_sql_hash Fix bug in ActiveRecord::Sanitization#sanitize_sql_hash_for_conditions
| * | Fix bug in ActiveRecord::Sanitization#sanitize_sql_hash_for_conditionsZach Ohlgren2013-05-061-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | Fixing CHANGLOG description Remove extra line. Remove blank lines.
* | | fix failing test caused by 3771e4d511Neeraj Singh2013-05-061-2/+2
|/ /
* | raise IrreversibleMigration if no column givenNeeraj Singh2013-05-061-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes #10419 Following code should raise IrreversibleMigration. But the code was failing since options is an array and not a hash. def change change_table :users do |t| t.remove_index [:name, :email] end end Fix was to check if the options is a Hash before operating on it.
* | fix to remove warning on postgres adapter test.Akshay Khole2013-05-051-1/+1
| | | | | | | | | | Warning was: "/vagrant/rails/activerecord/test/cases/adapters/postgresql/uuid_test.rb:63: warning: ambiguous first argument; put parentheses or even spaces"
* | Merge pull request #10458 from bwbuchanan/issue-10451Rafael Mendonça França2013-05-041-0/+12
|\ \ | | | | | | Make SchemaDumper emit "id: :uuid" when using UUID primary keys
| * | Make SchemaDumper emit "id: :uuid" when appropriate. Fixes #10451.Brian Buchanan2013-05-031-0/+12
| | |
* | | Squashed commit of the following:Aaron Patterson2013-05-031-2/+0
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 2683de5da85135e8d9fe48593ff6167db9d64b18 Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Fri May 3 11:29:20 2013 -0700 cannot support infinite ranges right now commit cebb6acef2c3957f975f6db4afd849e535126253 Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Fri May 3 11:26:12 2013 -0700 reverting infinity comparison commit 385f7e6b4efd1bf9b89e8d607fcb13e5b03737ea Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Fri May 3 11:23:28 2013 -0700 Revert "Added ability to compare date/time with infinity" This reverts commit 38f28dca3aa16efd6cc3af6453f2e6b9e9655ec1. Conflicts: activesupport/CHANGELOG.md activesupport/lib/active_support/core_ext/numeric/infinite_comparable.rb activesupport/test/core_ext/date_ext_test.rb activesupport/test/core_ext/date_time_ext_test.rb activesupport/test/core_ext/numeric_ext_test.rb activesupport/test/core_ext/time_ext_test.rb activesupport/test/core_ext/time_with_zone_test.rb commit 0d799a188dc12b18267fc8421675729917610047 Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Fri May 3 11:18:53 2013 -0700 Revert "Refactor infinite comparable definition a bit" This reverts commit dd3360e05e4909f2f0c74a624cccc2def688f828. commit 42dec90e49745bbfae546f0560b8783f6b48b074 Author: Aaron Patterson <aaron.patterson@gmail.com> Date: Fri May 3 11:18:47 2013 -0700 Revert "Require 'active_support/core_ext/module/aliasing' in the infinite_comparable module" This reverts commit 7003e71c13c53ec3d34250560fbf80b8381df693.
* | Do not overwrite manually built records during one-to-one nested attribute ↵Olek Janiszewski2013-05-031-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | assignment For one-to-one nested associations, if you build the new (in-memory) child object yourself before assignment, then the NestedAttributes module will not overwrite it, e.g.: class Member < ActiveRecord::Base has_one :avatar accepts_nested_attributes_for :avatar def avatar super || build_avatar(width: 200) end end member = Member.new member.avatar_attributes = {icon: 'sad'} member.avatar.width # => 200
* | Merge pull request #10417 from jholton/fix_association_auto_saveJon Leighton2013-05-031-3/+19
|\ \ | | | | | | autosave_association issue that occurs when table has unique index (resubmission)
| * | destroys association records before saving/inserting new association recordsJohnny Holton2013-05-021-3/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes bug introduced by #3329 These are the conditions necessary to reproduce the bug: - For an association, autosave => true. - An association record is being destroyed - A new association record is being created. - There is a unique index one of the association's fields. - The record being created has the same value as the record being destroyed on the indexed field. Before, the deletion of records was postponed until after all insertions/saves. Therefore the new record with the identical value in the indexed field caused a non-unique value error to be thrown at the database level. With this fix, the deletions happen first, before the insertions/saves. Therefore the record with the duplicate value is gone from the database before the new record is created, thereby avoiding the non-uniuqe value error.
* | | Fix broken mysql testJon Leighton2013-05-032-32/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | test_mysql_integer_not_null_defaults in test/cases/defaults_test.rb was failing. This test relies on the connection being in strict mode. By default a new connection is not in strict mode, but Active Record automatically places it in strict mode. ActiveSchemaTest overwrites the connection's #execute method in order to prevent SQL statements from actually being executed. One of the operations which is performed in ActiveSchema test is a #recreate_database. Since 2088bf27981137a2c6c8b2f718f33b417b4045af, recreate_database on mysql or mysql2 will trigger a reconnect. Due to the implementation of the hacking of #execute in ActiveSchemaTest, this reconnect would take place, but the connection would *not* be placed in strict mode because #execute had been overridden to prevent SQL queries hitting the database. Therefore, after ActiveSchemaTest, the connection would no longer be in strict mode, causing test_mysql_integer_not_null_defaults to fail. I don't think that the way that ActiveSchemaTest is implemented is particularly nice or clean, but I have taken steps to make its hacks more isolated - it now create a separate connection object which is thrown away after the test, and the hacks are applied on the singleton class of this object.
* | | Add test for `AR::Base#to_param`Takehiro Adachi2013-05-021-1/+6
|/ / | | | | | | | | | | | | According to the doc of `AR::Base#to_param`( https://github.com/rails/rails/blob/04cda1848cb847c2bdad0bfc12160dc8d554 7775/activerecord/lib/active_record/integration.rb#L18 ), it returns `nil` if the record is not persisted.
* | Merge pull request #10396 from tkhr/extract-test-code-from-base_test.rbCarlos Antonio da Silva2013-05-012-73/+82
|\ \ | | | | | | Extract tests code out from AR's base_test.rb to integration_test.rb
| * | Extract tests code out from AR's base_test.rb to integration_test.rbTakehiro Adachi2013-05-022-73/+82
| |/ | | | | | | | | | | `AR::Base#to_param` and `AR::Base#cache_key` is defined at active_record/integration.rb, so tests for those methods should be at integration_test.rb
* | Merge pull request #7839 from ↵Aaron Patterson2013-05-014-1/+24
|\ \ | | | | | | | | | | | | chancancode/handle_aliased_attributes_in_ar_relation Handle aliased attributes in AR::Relation
| * | Handle aliased attributes in ActiveRecord::Relation.Godfrey Chan2013-05-014-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using symbol keys, ActiveRecord will now translate aliased attribute names to the actual column name used in the database: With the model class Topic alias_attribute :heading, :title end The call Topic.where(heading: 'The First Topic') should yield the same result as Topic.where(title: 'The First Topic') This also applies to ActiveRecord::Relation::Calculations calls such as `Model.sum(:aliased)` and `Model.pluck(:aliased)`. This will not work with SQL fragment strings like `Model.sum('DISTINCT aliased')`. Github #7839 *Godfrey Chan*
* | | Improve docs for postgresql with uuid primary keys [ci skip]Carlos Antonio da Silva2013-05-011-1/+0
|/ / | | | | | | Introduced in 09ac1776abc0d3482f491f2d49f47bcb3d9a4ad7.
* / allow override of uuid_generate_v4() default by passing default: nilChad Moone2013-05-011-0/+31
|/ | | | without this, it's not possible to use UUID primary keys without uuid-ossp installed and activated
* Mute psql output when running rake db:schema:loadGodfrey Chan2013-04-301-1/+1
|
* Fix #8856 Ensure has_one association=(associate) triggers save.Chris Thompson2013-04-301-0/+16
| | | | | | | | | | | | | | | | | | | | | | | activerecord/lib/active_record/associations.rb states: # [association=(associate)] # Assigns the associate object, extracts the primary key, sets it as the foreign key, # and saves the associate object. Since commit 42dd5d9f2976677a4bf22347f2dde1a8135dfbb4 to fix #7191, this is no longer the case if the associate has changed, but is the same object. For example: # Pirate has_one :ship pirate = Pirate.create!(catchphrase: "A Pirate") ship = pirate.build_ship(name: 'old name') ship.save! ship.name = 'new name' pirate.ship = ship That last line should trigger a save. Although we are not changing the association, the associate (ship) has changed.
* Abort a rake task when missing db/structure.sql like `db:schema:load` task.kennyj2013-05-011-0/+7
|
* Delegate #unscope query methodCarlos Antonio da Silva2013-04-281-0/+10
|
* Merge pull request #10368 from demands/fix-typoGuillermo Iguaran2013-04-281-1/+1
|\ | | | | Fix typo in serialized_attribute_test. [ci skip]
| * Fix typo in serialized_attribute_test. [ci skip]Max Edmands2013-04-281-1/+1
| |
* | fixes a test, and explains why AR::AttributeMethods checks ↵Xavier Noria2013-04-281-5/+2
|/ | | | defined?(@attributes) in some places
* adding test for the symbol refsAaron Patterson2013-04-261-0/+7
|
* Move method used only in the test to the test code itselfIvan Kataitsev2013-04-251-0/+9
|
* Added testcase for #10067 and a CHANGELOG entry about this change.kennyj2013-04-251-0/+14
|
* Removed unused associationsAndrew White2013-04-241-2/+0
|
* Reset the primary key for other testsAndrew White2013-04-241-0/+2
|
* added test cases for #10197Adam Gamble2013-04-241-0/+56
|
* Revert "Revert "`belongs_to :touch` behavior now touches old association ↵Andrew White2013-04-241-0/+46
| | | | | | | | | when transitioning to new association" until a proper fix is found for #10197" This reverts commit 7389df139a35436f00876c96d20e81ba23c93f0a. Conflicts: activerecord/test/cases/timestamp_test.rb
* Remove test case also related to the belongs_to touch featureDavid Heinemeier Hansson2013-04-231-20/+0
|
* Revert "`belongs_to :touch` behavior now touches old association when ↵David Heinemeier Hansson2013-04-231-26/+0
| | | | transitioning to new association" until a proper fix is found for #10197
* When empty options passed to having clause having_values was [nil] but ↵Fyodor2013-04-231-0/+8
| | | | should be empty.
* Merge pull request #10295 from senny/10237_dirty_with_nullable_datetimeCarlos Antonio da Silva2013-04-221-3/+5
|\ | | | | Also assign nil in dirty nullable_datetime test. Closes #10237
| * also assign nil in dirty nullable_datetime test. #10237Yves Senn2013-04-221-3/+5
| |
* | Update counter cache when pushing into associationMatthew Robertson2013-04-211-0/+9
|/ | | | | | | | | | | | | | | | This commit fixes a regression bug in which counter_cache columns were not being updated correctly when newly created records were being pushed into an assocation. EG: # this was fine @post.comment.create! # this was fine @comment = Comment.first @post.comments << @comment # this would not update counters @post.comments << Comment.create!
* if singletons belong to the contract, test themXavier Noria2013-04-201-1/+4
| | | | | | Object#respond_to? returns singletons and thus we inherit that contract. The implementation of the predicate is good, but the test is only checking boolean semantics, which in this case is not enough.
* fix respond_to? for non selected columnNeeraj Singh2013-04-191-0/+5
| | | | | | | | | | | | | | | | | | | | | | | fixes #4208 If a query selects only a few columns and gives custom names to those columns then respond_to? was returning true for the non selected columns. However calling those non selected columns raises exception. post = Post.select("'title' as post_title").first In the above case when `post.body` is invoked then an exception is raised since `body` attribute is not selected. Howevere `respond_to?` did not behave correctly. pos.respond_to?(:body) #=> true Reason was that Active Record calls `super` to pass the call to Active Model and all the columns are defined on Active Model. Fix is to actually check if the data returned from the db contains the data for column in question.
* Revert "Merge pull request #10183 from jholton/fix_association_auto_save"Jon Leighton2013-04-191-14/+0
| | | | | | | This reverts commit e8727d37fc49d5bf9976c3cb5c46badb92cf4ced, reversing changes made to d098e1c24bc145e0cc14532348436e14dc46d375. Reason: it broke the mysql build
* destroys association records before saving/inserting new association recordsJohnny Holton2013-04-191-0/+14
| | | | | | | | | | | | | | | | | | | | | fixes bug introduced by #3329 These are the conditions necessary to reproduce the bug: - For an association, autosave => true. - An association record is being destroyed - A new association record is being created. - There is a unique index one of the association's fields. - The record being created has the same value as the record being destroyed on the indexed field. Before, the deletion of records was postponed until after all insertions/saves. Therefore the new record with the identical value in the indexed field caused a non-unique value error to be thrown at the database level. With this fix, the deletions happen first, before the insertions/saves. Therefore the record with the duplicate value is gone from the database before the new record is created, thereby avoiding the non-uniuqe value error.
* Merge pull request #10264 from cconstantine/masterRafael Mendonça França2013-04-191-0/+6
|\ | | | | Postgresql array columns don't properly escape single quote strings when loading fixtures
| * Fix loading of fixtures when the column type is a postgres array of strings.Chris Constantine2013-04-181-0/+6
| | | | | | | | - A string in an array of strings that has a quote char (') needs to have that quote char escaped if the array is getting wrapped in quote chars.
* | Improve the error messageRafael Mendonça França2013-04-191-1/+1
| |
* | Merge pull request #10217 from mirasrael/make-migrator-run-transactional-4.0Rafael Mendonça França2013-04-191-0/+26
|\ \ | | | | | | | | | | | | | | | | | | Support transactions in Migrator.run Conflicts: activerecord/CHANGELOG.md