Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Address FixturesWithForeignKeyViolationsTest#test_does_not_raise_if_no_fk_violations error #43101

Merged
merged 1 commit into from
Aug 29, 2021

Conversation

yahonda
Copy link
Member

@yahonda yahonda commented Aug 25, 2021

Summary

This pull request fixes the CI error at https://buildkite.com/rails/rails/builds/80548#e6a190c0-2ba5-41cf-8ebd-11ca6c4f6612

  • This commit addresses the following error
$ bin/test test/cases/relation/and_test.rb test/cases/fixtures_test.rb -n "/^(?:ActiveRecord::AndTest#(?:test_and)|FixturesWithForeignKeyViolationsTest#(?:test_does_not_raise_if_no_fk_violations))$/" --seed 1987
Using sqlite3
Run options: -n "/^(?:ActiveRecord::AndTest#(?:test_and)|FixturesWithForeignKeyViolationsTest#(?:test_does_not_raise_if_no_fk_violations))$/" --seed 1987

.E

Error:
FixturesWithForeignKeyViolationsTest#test_does_not_raise_if_no_fk_violations:
RuntimeError: Foreign key violations found in your fixture data. Ensure you aren't referring to labels that don't exist on associations.
    /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:641:in `block in insert'
    /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:629:in `each'
    /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:629:in `insert'
    /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:615:in `read_and_insert'
    /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:567:in `create_fixtures'
    /home/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:846:in `block (2 levels) in test_does_not_raise_if_no_fk_violations'
    /home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/testing/assertions.rb:34:in `assert_nothing_raised'
    /home/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:845:in `block in test_does_not_raise_if_no_fk_violations'
    /home/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:859:in `with_verify_foreign_keys_for_fixtures'
    /home/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:844:in `test_does_not_raise_if_no_fk_violations'

bin/test test/cases/fixtures_test.rb:837

Finished in 0.022298s, 89.6940 runs/s, 44.8470 assertions/s.
2 runs, 1 assertions, 0 failures, 1 errors, 0 skips
$

@p8
Copy link
Member

p8 commented Aug 27, 2021

Thanks @yahonda! Should the following be fixed as well?


fixtures :posts, :comments, :authors, :humans, :essays

…no_fk_violations` error

Fixed CI error at https://buildkite.com/rails/rails/builds/80548#e6a190c0-2ba5-41cf-8ebd-11ca6c4f6612

- This commit addresses the following error

```ruby
$ bin/test test/cases/relation/and_test.rb test/cases/fixtures_test.rb -n "/^(?:ActiveRecord::AndTest#(?:test_and)|FixturesWithForeignKeyViolationsTest#(?:test_does_not_raise_if_no_fk_violations))$/" --seed 1987
Using sqlite3
Run options: -n "/^(?:ActiveRecord::AndTest#(?:test_and)|FixturesWithForeignKeyViolationsTest#(?:test_does_not_raise_if_no_fk_violations))$/" --seed 1987

.E

Error:
FixturesWithForeignKeyViolationsTest#test_does_not_raise_if_no_fk_violations:
RuntimeError: Foreign key violations found in your fixture data. Ensure you aren't referring to labels that don't exist on associations.
    /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:641:in `block in insert'
    /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:629:in `each'
    /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:629:in `insert'
    /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:615:in `read_and_insert'
    /home/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:567:in `create_fixtures'
    /home/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:846:in `block (2 levels) in test_does_not_raise_if_no_fk_violations'
    /home/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/testing/assertions.rb:34:in `assert_nothing_raised'
    /home/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:845:in `block in test_does_not_raise_if_no_fk_violations'
    /home/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:859:in `with_verify_foreign_keys_for_fixtures'
    /home/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:844:in `test_does_not_raise_if_no_fk_violations'

bin/test test/cases/fixtures_test.rb:837

Finished in 0.022298s, 89.6940 runs/s, 44.8470 assertions/s.
2 runs, 1 assertions, 0 failures, 1 errors, 0 skips
$
```

It also addresses these errors.
bin/test test/cases/fixtures_test.rb test/cases/associations/has_many_through_disable_joins_associations_test.rb --seed 50111 -n "/^(?:HasManyThroughDisableJoinsAssociationsTest#(?:test_empty_on_disable_joins_through)|FixturesWithForeignKeyViolationsTest#(?:test_does_not_raise_if_no_fk_violations))$/"
bin/test test/cases/fixtures_test.rb  test/cases/relation/where_chain_test.rb --seed 62605 -n "/^(?:ActiveRecord::WhereChainTest#(?:test_missing_with_multiple_association)|FixturesWithForeignKeyViolationsTest#(?:test_does_not_raise_if_no_fk_violations))$/"
@yahonda
Copy link
Member Author

yahonda commented Aug 29, 2021

Thanks for the review and the suggestion @p8 .

Reproduced as follows and :author_addresses fixture has been added to each test files.

  • test/cases/associations/has_many_through_disable_joins_associations_test.rb
% bin/test test/cases/fixtures_test.rb test/cases/associations/has_many_through_disable_joins_associations_test.rb --seed 50111 -n "/^(?:HasManyThroughDisableJoinsAssociationsTest#(?:test_empty_on_disable_joins_through)|FixturesWithForeignKeyViolationsTest#(?:test_does_not_raise_if_no_fk_violations))$/"

Using sqlite3
Run options: --seed 50111 -n "/^(?:HasManyThroughDisableJoinsAssociationsTest#(?:test_empty_on_disable_joins_through)|FixturesWithForeignKeyViolationsTest#(?:test_does_not_raise_if_no_fk_violations))$/"

# Running:

.E

Error:
FixturesWithForeignKeyViolationsTest#test_does_not_raise_if_no_fk_violations:
RuntimeError: Foreign key violations found in your fixture data. Ensure you aren't referring to labels that don't exist on associations.
    /Users/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:641:in `block in insert'
    /Users/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:629:in `each'
    /Users/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:629:in `insert'
    /Users/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:615:in `read_and_insert'
    /Users/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:567:in `create_fixtures'
    /Users/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:846:in `block (2 levels) in test_does_not_raise_if_no_fk_violations'
    /Users/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/testing/assertions.rb:34:in `assert_nothing_raised'
    /Users/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:845:in `block in test_does_not_raise_if_no_fk_violations'
    /Users/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:859:in `with_verify_foreign_keys_for_fixtures'
    /Users/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:844:in `test_does_not_raise_if_no_fk_violations'


bin/test test/cases/fixtures_test.rb:837



Finished in 0.134745s, 14.8429 runs/s, 29.6857 assertions/s.
2 runs, 4 assertions, 0 failures, 1 errors, 0 skips
  • test/cases/relation/where_chain_test.rb
% bin/test test/cases/fixtures_test.rb test/cases/relation/where_chain_test.rb --seed 62605 -n "/^(?:ActiveRecord::WhereChainTest#(?:test_missing_with_multiple_association)|FixturesWithForeignKeyViolationsTest#(?:test_does_not_raise_if_no_fk_violations))$/"

Using sqlite3
Run options: --seed 62605 -n "/^(?:ActiveRecord::WhereChainTest#(?:test_missing_with_multiple_association)|FixturesWithForeignKeyViolationsTest#(?:test_does_not_raise_if_no_fk_violations))$/"

# Running:

.E

Error:
FixturesWithForeignKeyViolationsTest#test_does_not_raise_if_no_fk_violations:
RuntimeError: Foreign key violations found in your fixture data. Ensure you aren't referring to labels that don't exist on associations.
    /Users/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:641:in `block in insert'
    /Users/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:629:in `each'
    /Users/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:629:in `insert'
    /Users/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:615:in `read_and_insert'
    /Users/yahonda/src/github.com/rails/rails/activerecord/lib/active_record/fixtures.rb:567:in `create_fixtures'
    /Users/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:846:in `block (2 levels) in test_does_not_raise_if_no_fk_violations'
    /Users/yahonda/src/github.com/rails/rails/activesupport/lib/active_support/testing/assertions.rb:34:in `assert_nothing_raised'
    /Users/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:845:in `block in test_does_not_raise_if_no_fk_violations'
    /Users/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:859:in `with_verify_foreign_keys_for_fixtures'
    /Users/yahonda/src/github.com/rails/rails/activerecord/test/cases/fixtures_test.rb:844:in `test_does_not_raise_if_no_fk_violations'


bin/test test/cases/fixtures_test.rb:837



Finished in 0.086469s, 23.1297 runs/s, 23.1297 assertions/s.
2 runs, 2 assertions, 0 failures, 1 errors, 0 skips

@kamipo kamipo merged commit 4c0e63b into rails:main Aug 29, 2021
@p8
Copy link
Member

p8 commented Aug 29, 2021

Nice 😀!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants