aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/dirty_test.rb
Commit message (Collapse)AuthorAgeFilesLines
* Fix handling of dirty time zone aware attributesLilibeth De La Cruz2013-02-171-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, when `time_zone_aware_attributes` were enabled, after changing a datetime or timestamp attribute and then changing it back to the original value, `changed_attributes` still tracked the attribute as changed. This caused `[attribute]_changed?` and `changed?` methods to return true incorrectly. Example: in_time_zone 'Paris' do order = Order.new original_time = Time.local(2012, 10, 10) order.shipped_at = original_time order.save order.changed? # => false # changing value order.shipped_at = Time.local(2013, 1, 1) order.changed? # => true # reverting to original value order.shipped_at = original_time order.changed? # => false, used to return true end (cherry picked from commit bc982cbcb34129ea2cfe8aa1f8e0b40e444e68db) Conflicts: activerecord/CHANGELOG.md activerecord/lib/active_record/attribute_methods/time_zone_conversion.rb Backport of #9073 Fixes #8898
* Revert "Merge pull request #6986 from kennyj/fix_6975"Andrew White2013-01-221-15/+0
| | | | | | | | | This reverts commit 8905c1fb496641c3cdb7b3b816ae6d3d4b2c2b73. Closes #8460 Conflicts: activerecord/test/cases/dirty_test.rb
* Add failing test case for #8460Andrew White2013-01-221-0/+14
| | | | Add a test case to ensure that fractional second updates are detected.
* Merge pull request #8311 from alisdair/dirty-nullable-datetimeCarlos Antonio da Silva2012-11-251-0/+14
| | | | | | | | | | | Don't call will_change! for datetime nil->"". Setting a nil datetime attribute to a blank string should not cause the attribute to be dirty. Conflicts: activerecord/CHANGELOG.md activerecord/lib/active_record/attribute_methods/time_zone_conversion.rb
* Merge pull request #3544 from amatsuda/_field_changedAaron Patterson2012-09-211-1/+15
| | | | | | | | Rename field_changed? to _field_changed? so that users can create a field named field Conflicts: activerecord/lib/active_record/core.rb activerecord/test/cases/dirty_test.rb
* Revert "backport fair connection pool 02b2335563 to 3-2-stable"Rafael Mendonça França2012-09-201-3/+1
| | | | | | | | | | | | | This reverts commit 0693e079708a52b777f2b7872b8e3d467b880a0d. Revert "Cache columns metadata to avoid extra while testing" This reverts commit a82f1e3f5d11c8dfba9f4c911745ec40a7965216. Reason: This is causing failures in the postgresql build. See http://travis-ci.org/#!/rails/rails/builds/2485584 Related with #7675
* Cache columns metadata to avoid extra while testingRafael Mendonça França2012-09-181-1/+3
|
* Merge pull request #6986 from kennyj/fix_6975Rafael Mendonça França2012-08-211-0/+15
| | | | | | | Fix #6975. Round usec when writing timestamp attribute. Conflicts: activerecord/lib/active_record/attribute_methods/time_zone_conversion.rb
* Do not use update_column where update_attribute is not interchangeableRafael Mendonça França2012-08-151-0/+10
| | | | | | | | | | | | Revert "Deprecate update_attribute." This reverts commit b081f6b59fb3f15d12043072ad9b331ffd2bc56e. Reason: Since the new deprecation policy we removed the deprecation of update_attribute but we didn't reverted the changes to use update_column. Fixes #7306
* Do not consider the numeric attribute as changed if the old value isRafael Mendonça França2012-08-021-1/+14
| | | | | | | | | | | | | | | | | | | | zero and the new value is not a string. Before this commit this was the behavior r = Review.find_by_issue(0) r.issue => 0 r.changes => {} r.issue = 0 => 0 r.changed? => true r.changes => {"issue"=>[0,0]} Fixes #7237
* Remove unneded tests.Rafael Mendonça França2012-06-141-11/+1
| | | | | | | Before b081f6b59fb3f15d12043072ad9b331ffd2bc56e, this test are asserting that update_attribute does the dirty tracking. Since we deprecated this method and update_column write in the database directly this tests will always fail.
* Deprecate update_attribute.Steve Klabnik2012-06-141-1/+1
| | | | | | | | | | | Historically, update_attribute and update_attributes are similar, but with one big difference: update_attribute does not run validations. These two methods are really easy to confuse given their similar names. Therefore, update_attribute is being deprecated in favor of update_column, and will be removed in Rails 4. See the discussion on rails-core here: https://groups.google.com/d/topic/rubyonrails-core/BWPUTK7WvYA/discussion
* Add failing test for 3.2.5 datetime attribute regressionEvan Arnold2012-06-041-0/+11
|
* please use ruby -I lib:test path/to/test.rb, or export RUBY_OPTAaron Patterson2011-06-061-1/+1
|
* Refactor Active Record test connection setup. Please see the ↵Jon Leighton2011-06-041-1/+1
| | | | RUNNING_UNIT_TESTS file for details, but essentially you can now configure things in test/config.yml. You can also run tests directly via the command line, e.g. ruby path/to/test.rb (no rake needed, uses default db connection from test/config.yml). This will help us fix the CI by enabling us to isolate the different Rails versions to different databases.
* Added new #update_column method.Sebastian Martinez2011-03-271-1/+1
| | | | Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
* Revert "Removed #update_attribute method. New #update_column method."Sebastian Martinez2011-03-271-3/+2
| | | | | | This reverts commit 45c233ef819dc7b67e259dd73f24721fec28b8c8. Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
* Removed #update_attribute method. New #update_column method.Sebastian Martinez2011-03-261-2/+3
| | | | Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
* fixing dup regressionsAaron Patterson2010-11-231-4/+4
|
* Ensure save always updates timestamps when serialized attributes are presentPratik Naik2010-11-021-0/+14
|
* Deletes trailing whitespaces (over text files only find * -type f -exec sed ↵Santiago Pastorino2010-08-141-7/+7
| | | | 's/[ \t]*$//' -i {} \;)
* Make update_attribute behave as in Rails 2.3 and document the behavior ↵José Valim2010-08-121-3/+4
| | | | intrinsic to its implementation.
* This patch changes update_attribute implementatino so:Neeraj Singh2010-07-081-4/+3
| | | | | | | | | | - it will only save the attribute it has been asked to save and not all dirty attributes - it does not invoke callbacks - it does change updated_at/on Signed-off-by: José Valim <jose.valim@gmail.com>
* Use better assertion methods for testingNeeraj Singh2010-05-191-2/+2
| | | | | | [#4645 state:resolved] Signed-off-by: José Valim <jose.valim@gmail.com>
* a cloned object no longer mimics changed flags from creator , plus a test ↵Federico Brubacher2010-05-161-0/+9
| | | | | | case [#4614 state:resolved] Signed-off-by: José Valim <jose.valim@gmail.com>
* Dirty datetime attributes should be aware of time zone info [#3658 ↵Kristopher Murata2010-04-081-0/+95
| | | | | | state:resolved] Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
* Hack to keep column metadata queries out of test query countsJeremy Kemper2010-03-151-0/+5
|
* Replace Model.first(options) with new finder methods inside testsPratik Naik2009-12-271-1/+1
|
* I added this feature so that a Map of changed fields could be retrievedJosh Sharpe2009-08-311-0/+78
| | | | | | | | | | | | | | | | | | | | after a model had been saved. This is useful in the after_save callback when you need to know what fields changed. At present there is no way to do this other than have code in the before_save callback that takes a copy of the changes Map, which I thought was a bit messy. Example. person = Person.find_by_name('bob') person.name = 'robert' person.changes # => {'name' => ['bob, 'robert']} person.save person.changes # => {} person.previous_changes # => {'name' => ['bob, 'robert']} person.reload person.previous_changes # => {} Signed-off-by: Joshua Peek <josh@joshpeek.com>
* Serialized attributes should only be saved with partial_updates when the ↵Mike Breen2009-08-091-0/+10
| | | | | | serialized attribute is present [#2397 state:resolved] Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
* Added reset_attribute! method to ActiveRecord::AttributeMethods::Dirty which ↵Paul Gillard2009-08-041-0/+10
| | | | | | will reset an attribute to its original value should it have changed. Signed-off-by: Joshua Peek <josh@joshpeek.com>
* Ruby 1.9 compat: rename deprecated assert_raises to assert_raise.Jeremy Kemper2009-03-081-1/+1
| | | | [#1617 state:resolved]
* Add support for nested object forms to ActiveRecord and the helpers in ↵Eloy Duran2009-02-011-1/+1
| | | | | | | | ActionPack Signed-Off-By: Michael Koziarski <michael@koziarski.com> [#1202 state:committed]
* Fix dirty handling of nullable non-integer numeric columns [#1692 ↵Carlos Kozuszko2009-01-161-0/+24
| | | | | | state:resolved] Signed-off-by: Frederick Cheung <frederick.cheung@gmail.com>
* Fixing bug on ActiveRecord::Dirty#field_changed? for nullable numeric ↵Carlos Kozuszko2009-01-161-1/+1
| | | | | | | columns, NULL gets stored in database for blank (i.e. '') values. Only integer columns were considered. Signed-off-by: Michael Koziarski <michael@koziarski.com> [#1692 state:committed]
* Change field_changed? method to handle the case where a nullable integer ↵Ben Symonds2008-12-081-0/+12
| | | | | | | | column is changed from 0 to '0' [#1530 state:committed] Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
* Allow for the dirty tracking to work with the aliased name of aliased ↵Rich Cavanaugh2008-09-131-0/+13
| | | | | | | attributes. Signed-off-by: Michael Koziarski <michael@koziarski.com> [#812 state:committed]
* Dirty: treat two changes resulting in the original value as being unchanged.Tom Lea2008-08-271-0/+36
| | | | | | [#798 state:resolved] Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
* Serialized attributes will now always be saved even with partial_updates ↵Tom Lea2008-08-121-0/+12
| | | | | | | turned on. Signed-off-by: Michael Koziarski <michael@koziarski.com> [#788 state:committed]
* Dirty: recognize when an integer changes from zero to blank. [#433 ↵Tim Chater2008-06-271-0/+27
| | | | state:resolved]
* Partial updates don't update lock_version if nothing changed. [#426 ↵Daniel Morrison2008-06-221-0/+19
| | | | state:resolved]
* ActiveRecord::Base#reload should clear dirty attributes. [#231 state:resolved]Ryan Bates2008-05-211-0/+8
| | | | Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
* Ensure nil to '' doesn't get recorded by dirty for nullable integer columns. ↵Pratik Naik2008-05-201-0/+10
| | | | [#150 state:resolved] [Jason Dew, Pratik]
* Dirty attributes aren't cleared if save fails. [#174 state:resolved]Xavier Noria2008-05-121-1/+20
| | | | Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
* Partial updates play nice with updated_at/on timestampsJeremy Kemper2008-03-311-0/+6
| | | | git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@9159 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Partial updates include only unsaved attributes. Off by default; set ↵Jeremy Kemper2008-03-311-2/+45
| | | | | | YourClass.partial_updates = true to enable. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@9157 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Dirty typecasts attribute values before comparison, if possible. Closes ↵Jeremy Kemper2008-03-291-62/+59
| | | | | | #11464 [Russell Norris, mroch] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@9139 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
* Track changes to unsaved attributesJeremy Kemper2008-03-291-0/+80
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@9127 5ecf4fe2-1ee6-0310-87b1-e25e094e27de