aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | We can conditional define the tests depending on the adapter orRajarshi Das2014-04-021-7/+5
| | | | | | | | | | | | | | | | | | | | connection.
* | | | | PostgreSQL, Support for materialized views. [Dave Lee & Yves Senn]Dave Lee2014-04-021-8/+26
| |/ / / |/| | | | | | | | | | | | | | | Expand the query used in #table_exists? to include materialized views in the kinds of relations it searches.
* | | | cleanup, `reset_pg_session` in range_test.rbYves Senn2014-04-021-2/+5
| | | | | | | | | | | | | | | | | | | | Also do not use transactional fixtures. We drop the type and the table after every run, so there is nothing for the transaction to clean up.
* | | | Allow postgresql enum_test to be run in random order.Guo Xiang Tan2014-04-013-9/+21
| | | | | | | | | | | | | | | | Creating and dropping similar tables within the same connection causes postgresql to look up old values in the cache of tables which have already been dropped.
* | | | PostgreSQL, register custom domains. Closes #14305.Yves Senn2014-04-011-0/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch registers custom domains in our OID-type_map. They will behave exactly as the type specified by `pg_type.typbasetype`. /cc @matthewd
* | | | Merge pull request #14513 from senny/pg/responsible_oidRafael Mendonça França2014-04-013-6/+5
|\ \ \ \ | | | | | | | | | | PostgreSQL determine `Column#type` through corresponding OID. #7814
| * | | | PostgreSQL determine `Column#type` through corresponding OID. #7814Yves Senn2014-04-013-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I ran the whole test suite and compared the old to the new types. Following is the list of types that did change with this patch: ``` DIFFERENT TYPE FOR mood: NEW: enum, BEFORE: DIFFERENT TYPE FOR floatrange: NEW: floatrange, BEFORE: float ``` The `floatrange` is a custom type. The old type `float` was simply a coincidence form the name `floatrange` and our type-guessing.
* | | | | refactor assert_sql query to reuse capture_sqleileencodes2014-03-311-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | set assert_sql to reuse the capture_sql method from above instead of repeating the code in response to comments on issue #14546
* | | | | Merge pull request #14546 from ↵Aaron Patterson2014-03-312-1/+22
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | eileencodes/fix_delete_all_to_not_use_IN_statement Fix delete all to not produce sql in statement
| * | | | | add test to compare sql statements in delete_all queryeileencodes2014-03-311-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | delete_all sql if an association is not loaded should behave the same as if the association is loaded. This test ensures the SQL statements are exactly the same.
| * | | | | add capture_sql method to compare sql statements and compareeileencodes2014-03-311-0/+6
| |/ / / / | | | | | | | | | | | | | | | | | | | | Other methods compare specific patterns, this method outputs the actual sql query that is generated.
* | | | | Merge pull request #14532 from thedarkone/polymorphic-preload-fixAaron Patterson2014-03-311-4/+15
|\ \ \ \ \ | |/ / / / |/| | | | Fix polymorphic preloads on NOT NULL _type columns
| * | | | Simplify Preloader#grouped_records code.thedarkone2014-03-301-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new method relies on AR::Associations::Association knowing about both reflection and a model class. AR::Base#association now raises a descriptive error when trying to access non-existent associations. Previously it would blow up with a confusing NoMethodError: undefined method `association_class' for nil:NilClass.
| * | | | Fix polymorphic preloads on NOT NULL _type columns.thedarkone2014-03-301-0/+11
| | | | | | | | | | | | | | | | | | | | Defer to Association#klass instead of having a custom/duplicate code.
* | | | | fix bug on non empty defaults for pg array columnsLuke Steensen2014-03-301-0/+11
|/ / / / | | | | | | | | | | | | fixes #10613
* | | | Refactor test to use DdlHelper.Guo Xiang Tan2014-03-292-167/+198
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow-Up to https://github.com/rails/rails/pull/14400 This ensures that all tables are removed after each test and thereby allowing us to run the tests in a random order.
* | | | Merge pull request #14524 from tgxworld/fix_unsubscribe_from_notificationsYves Senn2014-03-294-12/+12
|\ \ \ \ | | | | | | | | | | | | | | | Fix tests not unsubscribing from Notifications.
| * | | | Fix tests not unsubscribing from Notifications.Guo Xiang Tan2014-03-284-8/+8
| | | | | | | | | | | | | | | | | | | | See https://github.com/rails/rails/blob/master/activesupport/lib/active_support/notifications.rb#L131
* | | | | Ensure we are returning either `true` or `false` for `#==`Godfrey Chan2014-03-291-6/+7
|/ / / / | | | | | | | | | | | | | | | | | | | | 460eb83d cused `ActiveRecord::Base#==` to sometimes return `nil` in some cases, this ensures we always return a boolean value. Also fixed a similar problem in AR reflections.
* | | | PostgreSQL, use `PostgreSQLColumn` in PG specific tests.Yves Senn2014-03-281-8/+8
| | | |
* | | | PostgreSQL, test-cases to lock down column default values.Yves Senn2014-03-283-0/+33
| | | |
* | | | PostgreSQL, test cases to lock the current column types.Yves Senn2014-03-288-15/+68
| | | |
* | | | Merge pull request #14154 from al2o3cr/issue12770Aaron Patterson2014-03-272-0/+10
|\ \ \ \ | | | | | | | | | | Pass a base relation to build_default_scope when joining
| * | | | Pass a base relation to build_default_scope when joiningMatt Jones2014-02-212-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | This allows the default scope to be built using the current table alias. Resolves #12770
* | | | | Merge pull request #14469 from tiegz/timestamp_inheritance_fixRafael Mendonça França2014-03-271-0/+18
| | | | | | | | | | | | | | | | | | | | Swap Timestamp/Callbacks order in ActiveRecord::Base
* | | | | AR .persisted? throws SystemStackError for an unsaved model with achrisfinne2014-03-272-0/+8
| | | | | | | | | | | | | | | | | | | | custom primary_key that didn't save due to validation error
* | | | | ActiveRecord/ActiveModel '#validate' alias for 'valid?'Henrik Nyh2014-03-271-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's unintuitive to call '#valid?' when you want to run validations but don't care about the return value. The alias in ActiveRecord isn't strictly necessary (the ActiveModel alias is still in effect), but it clarifies.
* | | | | require dependency to execute a single test from xml_serialization_testYves Senn2014-03-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the tests are executed in order, the dependency is loaded at the right time. However this makes it impossible to execute a single test later down the line. Let's require the dependecy at the beginning to get them working independent of the order. This resolves the following error: ``` $ ARCONN=postgresql ruby -Itest /Users/senny/Projects/rails/activerecord/test/cases/xml_serialization_test.rb -n test_to_xml Using postgresql Run options: -n test_to_xml --seed 51819 E Finished in 0.081320s, 12.2971 runs/s, 0.0000 assertions/s. 1) Error: DatabaseConnectedXmlSerializationTest#test_to_xml: NameError: uninitialized constant DatabaseConnectedXmlSerializationTest::REXML /Users/senny/Projects/rails/activerecord/test/cases/xml_serialization_test.rb:226:in `test_to_xml' ``` /cc @tgxworld fyi
* | | | | only run citext_test if the connection supports_extensions?.Yves Senn2014-03-271-52/+54
| | | | | | | | | | | | | | | | | | | | This will keep the test suite passing with older PG installations.
* | | | | Add a test case for save(validate:false) with invalid foreign key.Lauro Caetano2014-03-271-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | It is supposed to raise ActiveRecord::InvalidForeignKey when the database has a fk constraint.
* | | | | No need to use begin/end blocksRafael Mendonça França2014-03-262-16/+16
| | | | |
* | | | | No need to gsub the stringRafael Mendonça França2014-03-262-2/+2
| | | | |
* | | | | Fixes bugs for using indexes in CREATE TABLE by adding checks for table ↵Steve Rice2014-03-252-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | existence Also: - updates tests by stubbing table_exists? method - adds entry for creating indexes in CREATE TABLE to changelog
* | | | | create indexes inline in CREATE TABLE for MySQLCody Cutrer2014-03-252-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is important, because adding an index on a temporary table after it has been created would commit the transaction Conflicts: activerecord/CHANGELOG.md
* | | | | Use rails convetionsRafael Mendonça França2014-03-251-2/+2
| | | | |
* | | | | Merge pull request #14390 from huoxito/true-touchRafael Mendonça França2014-03-251-0/+11
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Still touch associations when theres no timestamp
| * | | | | Still touch associations when theres no timestampWashington Luiz2014-03-141-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to Rails 4.0.4 when touching a object which doesn't have timestamp attributes (updated_at / updated_on) rails would still touch all associations. After 73ba2c14cd7d7dfb2d132b18c47ade995401736f it updates associations but rollsback because `touch` would return nil since there's no timestamp attribute
* | | | | | Revert "Merge pull request #8313 from alan/only_save_changed_has_one_objects"Rafael Mendonça França2014-03-251-13/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 6e3ab3e15faf782f6a937ccf5574a4fb63e3e353, reversing changes made to 39e07b64ce3f4bb55e60ba0266e677f8e4f4893a. Conflicts: activerecord/CHANGELOG.md activerecord/test/cases/autosave_association_test.rb
* | | | | | do not rely on method_missing hitting arelAaron Patterson2014-03-241-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | arel methods are not supposed to be public API for ActiveRecord
* | | | | | use ARel factory methods for building AST nodesAaron Patterson2014-03-242-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | This abstracts us from the actual construction of the nodes
* | | | | | Clean up tables after each test.Guo Xiang Tan2014-03-222-92/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow-Up to https://github.com/rails/rails/pull/14400 This ensures that all tables are removed after each test and thereby allowing us to run the tests in a random order.
* | | | | | Extract with_example_table into helper method.Guo Xiang Tan2014-03-202-6/+13
| | | | | | | | | | | | | | | | | | | | | | | | This setups the helper method which other tests can benefit from.
* | | | | | Merge pull request #12955 from joshwilliams/masterYves Senn2014-03-201-0/+45
|\ \ \ \ \ \ | | | | | | | | | | | | | | Postgres schema: Constrain sequence search classid
| * | | | | | Postgres schema: Constrain sequence search classidJosh Williams2014-03-201-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pk_an_sequence_for query previously joined against pg_class's oid for rows in pg_depend, but pg_depend's objid may point to other system tables, such as pg_attrdef. If a row in one of those other tables coincidentally has the same oid as an (unrelated) sequence, that sequence name may be returned instead of the real one. This ensures that only the pg_depend entries pointing to pg_class are considered.
* | | | | | | Remove extra indirection for testing exceptions and messagesCarlos Antonio da Silva2014-03-201-28/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | assert_raise + assert_equal on the returned exception message work just fine, there is no need for extra work, specially like this overly complicated helper.
* | | | | | | ActiveRecord#touch should accept multiple attributes #14423Thiago Pinto2014-03-191-0/+12
|/ / / / / /
* | | | | | Add counter cache test for class_nameArthur Neves2014-03-171-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | Backport test from #14410
* | | | | | test should only pass if the pool.size+1 checkout failsAaron Patterson2014-03-171-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, any of the connection checkouts could have failed, and this test would pass.
* | | | | | use a latch to avoid busy loopsAaron Patterson2014-03-171-3/+4
| | | | | |
* | | | | | Reap connections based on owning-thread deathMatthew Draper2014-03-183-22/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | .. not a general timeout. Now, if a thread checks out a connection then dies, we can immediately recover that connection and re-use it. This should alleviate the pool exhaustion discussed in #12867. More importantly, it entirely avoids the potential issues of the reaper attempting to check whether connections are still active: as long as the owning thread is alive, the connection is its business alone. As a no-op reap is now trivial (only entails checking a thread status per connection), we can also perform one in-line any time we decide to sleep for a connection.