test(orm): refactor DBSeedCommand tests to class-based app-driven style - #175
Merged
Conversation
Consolidate test_db_seed_command.py and test_seed_commands.py into a
single TestDBSeedCommand(unittest.TestCase). setUp now builds a real
Application via fixtures.app.create_app(); option/argument-resolution
tests keep driving the command directly through CommandTester (needed
for the mocked-Seeder assertions and for the exception paths, since the
console app swallows command exceptions), while the fixture-backed
end-to-end tests now run through self.app.run("db:seed", ...).
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
tmgbedu
added a commit
that referenced
this pull request
Jul 14, 2026
Replace the hand-rolled FakeSeeder class in test_db_seed_command.py with mock.patch(..., autospec=True) against the real Seeder, asserting constructor args and awaited calls directly. Same cleanup already applied on the PR #155 branch (commit 8471bd9) but missed on the experiments seeds->seeders refactor (PR #175).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
TestDBSeedCommand(unittest.TestCase)with asetUpthat builds a realApplicationviafixtures.app.create_app().test_db_seed_command.py(mocked-Seederoption/argument-resolution coverage) andtest_seed_commands.py(real fixture-seeder end-to-end coverage) into one file/class, since both were testingDBSeedCommandand had drifted into duplicate coverage across two files.self.app.run("db:seed", ...), exercising the fully registered console command.CommandTester-based_runhelper for direct execution — the console application swallows command exceptions (Application.runcatches and reports them rather than propagating), soassertRaises(ValueError)requires the direct path.fixtures/app.pyalready existed (used bytest_migrate_commands.py) and is reused as-is; no framework code changed.test_make_commands.pyandtest_migrate_commands.pywere left untouched — they're already class-basedunittest.TestCases, and the make/generator commands operate onos.getcwd()rather than the app container, so folding them into thecreate_app()pattern wouldn't add coverage (andMakeObserverCommandisn't registered on the app, so it can't be driven viaself.app.run()).Test plan
uv run pytest tests/masoniteorm/commands/ -v— 41 passed, 1 skippeduv run pytest --ignore=tests/masoniteorm/postgres— 1837 passed, 7 skipped, no regressionsuv run ruff check/ruff format --checkon the changed file🤖 Generated with Claude Code