aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix `PG::ConnectionBad` error when running fixtureseileencodes2019-08-021-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At first this appeared to be a multi-db bug but after some invesitgation it was clear that this can occur just by calling `establish_connection` from ApplicationRecord. After some investigation we found that this only occurred when using fixtures. The console boots fine, the server runs fine, and the tests even run fine if we used paralellization or eager loading in the tests. I tracked the issue down to the line that calls `self.connection_specification_name = name` in the SchemaMigration changes for Rails 6.0. But how can this be? That is not that major of a change? How could `connection_specification_name` be a problem? First `connection_specification_name` caches the name of the connection specificatio. Second, fixtures were incorrectly holding onto a reference to that connection. So when you went to run the tests the models wouldn't be connected and when the fixtures tried to load the data it would choke on that unconnected database. The changes here move the connection into a lambda so we can call it when we need it rather than blowing up before the model is connected. Fixes #36743 Co-authored-by: Aaron Patterson <aaron.patterson@gmail.com>
* 1.hour needs core_ext to workRafael Mendonça França2019-08-021-0/+2
| | | | | | Usually the application requires the entire active support at load time but the configuration happens before it is loaded. For that reason we need to require the core_ext that we want to use in this file.
* Merge pull request #36843 from ↵Eileen M. Uchitelle2019-08-023-7/+43
|\ | | | | | | | | eileencodes/add-ability-to-unset-preventing-writes Add ability to unset preventing writes
| * Add ability to unset preventing writeseileencodes2019-08-023-7/+43
|/ | | | | | | | | | | Previously if an app attempts to do a write inside a read request it will be impossilbe to switch back to writing to the primary. This PR adds an argument to the `while_preventing_writes` so that we can make sure to turn it off if we're doing a write on a primary. Fixes #36830 Co-authored-by: John Crepezzi <john.crepezzi@gmail.com>
* Merge pull request #36814 from eileencodes/introduce-invalid-configuration-errorEileen M. Uchitelle2019-08-022-3/+23
|\ | | | | Introduce InvalidConfigurationError
| * Introduce InvalidConfigurationErroreileencodes2019-08-012-3/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In our app at work we had a faked config like this: ``` { "foo" => :bar, "bar" => { "adapter" => "memory" } } ``` This config is invalid. You can't say for foo env just have a symbol, nor would this work if you had fa foo env with just a string. A configuration must be a url or an adapter or a database. Otherwise it's invalid and we can't parse it. When this was just yaml turned into hashes you could get away with passing whatever. It wouldn't work but it wouldn't blow up either. Now that we're using objects we were returning `nil` for these but that just means we either blow up on `for_current_env` or compact the `nil`'s. I think it's a better user experience to not build the configs and raise an appropriate error. This is also an invalid config because if you do pass a string here it should be a URL. ``` { "foo" => "bar", "bar" => { "adapter" => "memory" } } ```
* | This test needs integer core ext for timeRafael Mendonça França2019-08-021-0/+1
| |
* | ConditionalGet needs time core_extRafael Mendonça França2019-08-021-0/+1
| |
* | Require time extensions in the job that depends on timeRafael Mendonça França2019-08-021-0/+1
| |
* | Require integer conversion for this testRafael Mendonça França2019-08-021-0/+1
| |
* | Revert "No such class since 8d2866bb80fbe81acb04f5b0c44f152f571fb29f"Rafael Mendonça França2019-08-0250-57/+57
| | | | | | | | This reverts commit dd779c9686f49f5ed6dda8ad5a1cb3b0788e1dd4.
* | Revert "MethodCallAssertions is a regular player of the team ↵Rafael Mendonça França2019-08-0211-3/+28
| | | | | | | | | | | | ActiveSupport::TestCase now" This reverts commit 98d0f7ebd34b858f12a12dcf37ae54fdbb5cab64.
* | Revert "You give jruby_skip & rubinius_skip a good name"Rafael Mendonça França2019-08-028-20/+78
| | | | | | | | This reverts commit 8d2866bb80fbe81acb04f5b0c44f152f571fb29f.
* | Missing require AS/core_ext/date/conversionsAkira Matsuda2019-08-022-0/+2
| |
* | hash_conversion itself does not at all depend on time extensionsAkira Matsuda2019-08-021-1/+0
| |
* | Add *_previously_was attribute methods when dirty tracking (#36836)David Heinemeier Hansson2019-08-013-1/+19
| |
* | Merge pull request #36837 from composerinteralia/no-colorRyuta Kamizono2019-08-021-5/+0
|\ \ | | | | | | Remove duplicate method definition
| * | Remove duplicate method definitionDaniel Colson2019-08-011-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | no_color! is already defined in [`Rails::Command::Behavior`][behavior], which gets [included into `Rails:Generators`][include]. This duplication came about in 6813edc7d9 when we introduced the Thor command structure. We have [test coverage][] to ensure this method still behaves correctly on `Rails:Generators`. [behavior]: https://github.com/rails/rails/blob/f7e91c7224560fbd3e95c238a0e8bb362799bcb7/railties/lib/rails/command/behavior.rb#L12-L14 [include]: https://github.com/rails/rails/blob/f7e91c7224560fbd3e95c238a0e8bb362799bcb7/railties/lib/rails/generators.rb#L18 [test coverage]: https://github.com/rails/rails/blob/f7e91c7224560fbd3e95c238a0e8bb362799bcb7/railties/test/generators_test.rb#L163-L168
* | | Lazily evaluate FileUpdateCheckerSharedTests when being includedAkira Matsuda2019-08-021-195/+199
| | | | | | | | | | | | To avoid "uninitialized constant ActiveSupport::Testing (NameError)"
* | | No such class since 8d2866bb80fbe81acb04f5b0c44f152f571fb29fAkira Matsuda2019-08-0250-57/+57
|/ /
* | Merge pull request #36821 from rails/virtual-attribute-typeRyuta Kamizono2019-08-021-0/+84
|\ \ | | | | | | Add tests for selecting aggregrates
| * | Add tests for selecting aggregatesGodfrey Chan2019-08-011-0/+84
| | | | | | | | | | | | | | | | | | These tests verifies that aggregates like `AVG` can be selected as "virtual attributes" on Active Record models and have the correct column type.
* | | Missing require AS/core_ext/string/inflectionsAkira Matsuda2019-08-021-0/+2
| | |
* | | Let's try not to depend too much on other core extensions in a core ↵Akira Matsuda2019-08-021-1/+1
| | | | | | | | | | | | extension test
* | | Missing require AS/core_ext/object/blankAkira Matsuda2019-08-021-0/+1
| | |
* | | require only what each test concernsAkira Matsuda2019-08-024-4/+7
| | |
* | | You give jruby_skip & rubinius_skip a good nameAkira Matsuda2019-08-028-78/+20
| | | | | | | | | | | | | | | | | | | | | | | | This hack prevails everywhere in the codebase by being copy & pasted, and it's actually not a negative thing but a necessary thing for framework implementors, so it should better have a name and be a thing. And with this commit, activesupport/test/abstract_unit.rb now doesn't silently autoload AS::TestCase, so we're ready to establish clearner environment for running AS tests (probably in later commits)
* | | MethodCallAssertions is a regular player of the team ActiveSupport::TestCase nowAkira Matsuda2019-08-0211-28/+3
| |/ |/| | | | | It's used everywhere, clean and mature enough
* | Merge pull request #36834 from kamipo/deduplicate_joinsRyuta Kamizono2019-08-022-3/+13
|\ \ | |/ |/| Deduplicate joins values
| * Deduplicate joins valuesRyuta Kamizono2019-08-022-3/+13
|/ | | | | | | | | #36805 have one possible regression that failing deduplication if `joins_values` have complex order (e.g. `joins_values = [join_node_a, :comments, :tags, join_node_a]`). This fixes the deduplication to take it in the first phase before grouping.
* Fix `_write_layout_method`Ryuta Kamizono2019-08-021-1/+1
|
* No private defRafael Mendonça França2019-08-013-4/+8
|
* Merge pull request #36831 from ↵Carlos Antonio da Silva2019-08-011-1/+1
|\ | | | | | | | | akshaymohite/fix-form-helpers-documentation-comment Added missing comment notation for the example of form_with in form_helpers.md documentation. [ci skip]
| * Added missing comment notation for the example of form_with in ↵Akshay Mohite2019-08-011-1/+1
|/ | | | form_helpers.md documentation. [ci skip]
* Missing require "AS/core_ext/date_time/conversions"Akira Matsuda2019-08-011-0/+1
| | | | | This causes "NameError: undefined local variable or method `nsec' for #<DateTime:0x0000559163cdd878>"
* Another missing require "AS/core_ext/object/try"Akira Matsuda2019-08-011-0/+1
|
* It may be better to explicitly require 'object/try' where we call `try`Akira Matsuda2019-08-0114-0/+21
| | | | | | In most cases it works now without explicit require because it's accidentally required through active_support/core_ext/date_and_time/calculations.rb where we still call `try`, but that would stop working if we changed the Calculations implementation and remove the require call there.
* Don't require 'active_support/all' in an individual test case!!!Akira Matsuda2019-08-012-1/+1
| | | | and Git taught me that this crap was added via this commit... https://github.com/rails/rails/commit/68db6bc431fbff0b2291f1f60ccf974b4eece596
* These methods doesn't have to be `protected`Akira Matsuda2019-08-012-6/+3
|
* Use `try` only when we're unsure if the receiver would respond_to the methodAkira Matsuda2019-08-0124-43/+40
|
* Merge pull request #36827 from akshaymohite/fix-documentation-typo-in-exampleVipul A M2019-08-011-1/+1
|\ | | | | Fixed a typo in documentation example of activerecord database configuration. [ci skip]
| * Fixed a typo in documentation example of activerecord database ↵Akshay Mohite2019-08-011-1/+1
| | | | | | | | | | | | configuration. [ci skip] - The example has sqlite3 adpater in database.yml, whereas configuration object had incorrectly specified mysql2 in documentation.
* | Do not use the same test class in different testsyuuji.yaginuma2019-08-011-2/+2
| | | | | | | | | | | | | | | | | | This fixes the following warnings. ``` actionmailer/test/base_test.rb:272: warning: method redefined; discarding old welcome actionmailer/test/base_test.rb:260: warning: previous definition of welcome was here ```
* | Merge pull request #36792 from peterzhu2118/azure-content-dispositionGannon McGibbon2019-07-312-2/+19
|\ \ | | | | | | Upload filename and disposition for Azure
| * | Upload file with filename and disposition for AzurePeter Zhu2019-07-312-2/+19
| | |
* | | Merge pull request #36825 from cpruitt/transliterate-frozen-us-ascii-stringsEileen M. Uchitelle2019-07-312-7/+8
|\ \ \ | | | | | | | | Prevent error on transliterate with frozen strings
| * | | Prevent error on transliterate with frozen strings.Cliff Pruitt2019-07-312-7/+8
| | |/ | |/| | | | | | | ActiveSupport::Inflector.transliterate mutates strings by changing encodings. Prior to this commit passing a frozen string would raise a `FrozenError`. This change duplicates the internal string, if frozen, before transliterating.
* | | Merge pull request #36791 from peterzhu2118/s3-upload-dispositionGannon McGibbon2019-07-312-7/+26
|\ \ \ | | | | | | | | Upload with filename and disposition for S3
| * | | Upload file with filename and disposition for S3Peter Zhu2019-07-312-7/+26
| | |/ | |/|
* | | Merge pull request #36824 from eileencodes/fix-db-seedEileen M. Uchitelle2019-07-312-0/+21
|\ \ \ | |_|/ |/| | Fix db:seed