aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
Commit message (Collapse)AuthorAgeFilesLines
* Change duplicated test nameRafael Mendonça França2013-01-031-2/+2
|
* Fix undefined method `to_i' introduced since 3.2.8Jason Stirk2013-01-042-6/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fixes a bug introduced in 96a13fc7 which breaks behaviour of integer fields. In 3.2.8, setting the value of an integer field to a non-integer (eg. Array, Hash, etc.) would default to 1 (true) : # 3.2.8 p = Post.new p.category_id = [ 1, 2 ] p.category_id # => 1 p.category_id = { 3 => 4 } p.category_id # => 1 In 3.2.9 and above, this will raise a NoMethodError : # 3.2.9 p = Post.new p.category_id = [ 1, 2 ] NoMethodError: undefined method `to_i' for [1, 2]:Array Whilst at first blush this appear to be sensible, it combines in bad ways with scoping. For example, it is common to use scopes to control access to data : @collection = Posts.where(:category_id => [ 1, 2 ]) @new_post = @collection.new In 3.2.8, this would work as expected, creating a new Post object (albeit with @new_post.category_id = 1). However, in 3.2.9 this will cause the NoMethodError to be raised as above. It is difficult to avoid triggering this error without descoping before calling .new, breaking any apps running on 3.2.8 that rely on this behaviour. This patch deviates from 3.2.8 in that it does not retain the somewhat spurious behaviour of setting the attribute to 1. Instead, it explicitly sets these invalid values to nil : p = Post.new p.category_id = [ 1, 2 ] p.category_id # => nil This also fixes the situation where a scope using an array will "pollute" any newly instantiated records. @new_post = @collection.new @new_post.category_id # => nil Finally, 3.2.8 exhibited a behaviour where setting an object to an integer field caused it to be coerced to "1". This has not been retained, as it is spurious and surprising in the same way that setting Arrays and Heshes was : c = Category.find(6) p = Post.new # 3.2.8 p.category_id = c p.category_id # => 1 # This patch p.category_id = c p.category_id # => nil This commit includes explicit test cases that expose the original issue with calling new on a scope that uses an Array. As this is a common situation, an explicit test case is the best way to prevent regressions in the future. It also updates and separates existing tests to be explicit about the situation that is being tested (eg. AR objects vs. other objects vs. non-integers)
* Merge pull request #8728 from amatsuda/model_all_returns_a_relationRafael Mendonça França2013-01-031-1/+1
|\ | | | | A small fix for an AR test case
| * need to to_a the Relation to execute SQL hereAkira Matsuda2013-01-041-1/+1
| |
* | Merge pull request #8705 from amparo-luna/change_update_attributes_to_updateGuillermo Iguaran2013-01-0312-81/+119
|\ \ | |/ |/| Rename update_attributes method to update
| * Rename update_attributes method to update, keep update_attributes as an aliasAmparo Luna + Guillermo Iguaran2013-01-0312-81/+119
| |
* | CVE-2012-5664 options hashes should only be extracted if there are extra ↵Aaron Patterson2013-01-021-0/+12
|/ | | | | | | parameters Conflicts: activerecord/lib/active_record/dynamic_matchers.rb
* Merge pull request #8682 from amatsuda/rm_as_frozen_object_errorGuillermo Iguaran2013-01-013-6/+3
|\ | | | | remove meaningless AS::FrozenObjectError
| * remove meaningless AS::FrozenObjectErrorAkira Matsuda2013-01-023-6/+3
| |
* | Standardize the use of current_adapter?Rafael Mendonça França2013-01-019-19/+19
| |
* | Merge pull request #8678 from yahonda/remove_column_oracleRafael Mendonça França2013-01-011-2/+3
|\ \ | | | | | | Address a failure test_remove_column_with_multi_column_index with Oracle
| * | Address a failure test_remove_column_with_multi_column_index with Oracle ↵Yasuo Honda2013-01-021-2/+3
| |/ | | | | | | | | | | | | database Not only PostgreSQL, Oracle database adapter drops the multi-column index if any of the indexed columns dropped by remove_column.
* / unused scopeAkira Matsuda2013-01-021-2/+0
|/
* Alias refute methods to assert_not and perfer assert_not on testsRafael Mendonça França2012-12-3110-40/+40
|
* Add active_support/testing/autorunRafael Mendonça França2012-12-312-2/+2
| | | | | minitest/autorun load minitest/spec polluting the global namespace with the DSL that we don't want on Rails
* add missing require and fixturesAaron Patterson2012-12-291-0/+3
|
* fix time typcasting on group counts in PGAaron Patterson2012-12-281-0/+6
|
* fix PG typecasting errorsAaron Patterson2012-12-281-20/+7
|
* work off FIXME comments in AR rename_column_test.rbYves Senn2012-12-281-9/+22
| | | | | | There were a couple of tests, which had FIXME comments in palce of assertions. I replaced these FIXME comments with actual assertions to get more feedback from our test suite.
* validate :on option on after_commit and after_rollback callbacksPascal Friederich2012-12-261-0/+8
|
* Fixes for PR [#8267]Marc-Andre Lafortune2012-12-221-2/+4
| | | | | | | | * Fix Migration#reversible by not using `transaction`. * Adapt mysql adapter to updated api for remove_column * Update test after aedcd683684d08eaf30623a4b48ce31a31426372
* Remove duplicated methods in command recorder and duplicated test nameCarlos Antonio da Silva2012-12-211-1/+1
|
* Merge pull request #8267 from marcandre/reversible_drop_table_etcAaron Patterson2012-12-214-92/+318
|\ | | | | Reversible commands
| * Make execute, change_column and remove_columns methods actually irreversibleMarc-Andre Lafortune2012-12-211-1/+7
| | | | | | | | [#8267]
| * Make change_table reversible when possible [#8267]Marc-Andre Lafortune2012-12-211-0/+20
| |
| * Factorize methods that are easily reversible [#8267]Marc-Andre Lafortune2012-12-211-8/+8
| |
| * Make remove_index reversible [#8267]Marc-Andre Lafortune2012-12-211-3/+24
| |
| * Differentiate between remove_column and remove_columns. Make remove_column ↵Marc-Andre Lafortune2012-12-212-3/+14
| | | | | | | | | | | | reversible. [#8267]
| * Make drop_table reversible [#8267]Marc-Andre Lafortune2012-12-212-14/+27
| |
| * Add drop_join_table [#8267]Marc-Andre Lafortune2012-12-212-4/+52
| |
| * Add Migration#reversible for reversible data operations [#8267]Marc-Andre Lafortune2012-12-211-0/+39
| |
| * Allow revert of whole migration [#8267]Marc-Andre Lafortune2012-12-211-0/+63
| |
| * Allow reverting of migration commands with Migration#revert [#8267]Marc-Andre Lafortune2012-12-212-48/+74
| |
| * Simplify change_table and avoid duplicated logicMarc-Andre Lafortune2012-12-211-26/+5
| |
* | Fix broken test for postgresqlRafael Mendonça França2012-12-211-1/+1
|/ | | | | | For some reason postgresql doesn't pass an integer value to load. cc @tenderlove
* Serialized attribute can be serialized in an integer columnRafael Mendonça França2012-12-213-1/+32
| | | | Fix #8575
* Wrap table creation in a transaction.Rafael Mendonça França2012-12-211-6/+8
| | | | This will make the tests pass when the intrange datatype is not present
* Merge pull request #8522 from senny/3489_index_names_on_copyCarlos Antonio da Silva2012-12-191-0/+10
|\ | | | | Leep index names when using `alter_table` with sqlite3. Closes #3489
| * Keep index names when using with sqlite3Yves Senn2012-12-191-0/+10
| |
* | Address test_binary_data_is_not_logged with Oracle databaseYasuo Honda2012-12-191-2/+1
|/ | | | | | The number of sql statement logged depends on each database adapter implementation. Also, this test does not depends on how many sql statement executed.
* Added support for validates_uniqueness_of in PostgreSQL array columns. ↵Pedro Padron2012-12-181-3/+20
| | | | Fixes: #8075.
* AR supporting new int4range and int8range data type on PostgreSQL >= 9.2. ↵Alexey2012-12-171-1/+18
| | | | Fix realization
* AR supporting new intrange data type on PostgreSQL >= 9.2Alexey2012-12-162-1/+98
|
* Skip binary data with binds test for mysql2, fix buildCarlos Antonio da Silva2012-12-141-0/+2
| | | | | | | Mysql2 doesn't support binds, which means no binds payload is set when logging, so the logic to render binary data differently here doesn't work. Introduced in 99d142a9375f9ba1960863b3cc745265aa9a14df.
* Do not log the binding values for binary columns.Matthew M. Boedicker2012-12-141-0/+8
| | | | They tend to be large and not very useful in the log.
* Fix for has_many_through counter_cache bugMatthew Robertson2012-12-141-0/+11
| | | | | | This commit fixes reported issue #7630 in which counter caches were not being updated properly when replacing has_many_through relationships
* recognize migrations, in folders containing numbers and 'rb'.Yves Senn2012-12-132-0/+17
| | | | Closes #8492
* Improve test name related to cache timestamp format [ci skip]Carlos Antonio da Silva2012-12-111-1/+1
| | | | | Conflicts: activerecord/test/cases/base_test.rb
* Deprecate obsolete Time to DateTime fallback methodsAndrew White2012-12-111-3/+3
| | | | | | | The Time.time_with_datetime_fallback, Time.utc_time and Time.local_time methods were added to handle the limitations of Ruby's native Time implementation. Those limitations no longer apply so we are deprecating them in 4.0 and they will be removed in 4.1.
* Allow users to choose the timestamp format in the cache keyRafael Mendonça França2012-12-102-0/+10
| | | | | | | This can be done using the class attribute cache_timestamp_format Conflicts: railties/guides/source/configuring.textile