1212FIXTURE_SEED_PATH = "tests.masoniteorm.commands.fixtures.databases.seeders"
1313
1414
15- class FakeSeeder :
16- """Records constructor args and awaited methods, mocking DB side effects."""
17-
18- instances = []
19-
20- def __init__ (self , seed_path = "databases/seeders" , connection = None ):
21- self .seed_path = seed_path
22- self .connection = connection
23- self .calls = []
24- FakeSeeder .instances .append (self )
25-
26- async def run_database_seed (self ):
27- self .calls .append (("run_database_seed" , None ))
28-
29- async def run_specific_seed (self , seed ):
30- self .calls .append (("run_specific_seed" , seed ))
31-
32-
3315class TestDBSeedCommand (unittest .TestCase ):
3416 def setUp (self ):
3517 from .fixtures .app import create_app
@@ -54,69 +36,47 @@ def _run_app(self, args=""):
5436 # -- option/argument resolution, exercised against a mocked Seeder --
5537
5638 def test_runs_database_seeder_by_default (self ):
57- FakeSeeder .instances = []
58- with mock .patch ("fastapi_startkit.masoniteorm.seeders.Seeder" , FakeSeeder ):
39+ with mock .patch ("fastapi_startkit.masoniteorm.seeders.Seeder" , autospec = True ) as MockSeeder :
5940 output = self ._run ("" )
6041
6142 self .assertIn ("Database Seeder seeded!" , output )
62- seeder = FakeSeeder .instances [- 1 ]
63- self .assertEqual (seeder .calls , [("run_database_seed" , None )])
64- self .assertEqual (seeder .seed_path , "databases/seeders" )
65- self .assertEqual (seeder .connection , "default" )
43+ MockSeeder .assert_called_once_with (seed_path = "databases/seeders" , connection = "default" )
44+ MockSeeder .return_value .run_database_seed .assert_awaited_once_with ()
45+ MockSeeder .return_value .run_specific_seed .assert_not_awaited ()
6646
6747 def test_seeds_specific_table_from_argument (self ):
68- FakeSeeder .instances = []
69- with mock .patch ("fastapi_startkit.masoniteorm.seeders.Seeder" , FakeSeeder ):
48+ with mock .patch ("fastapi_startkit.masoniteorm.seeders.Seeder" , autospec = True ) as MockSeeder :
7049 output = self ._run ("posts" )
7150
7251 self .assertIn ("PostsTableSeeder seeded!" , output )
73- seeder = FakeSeeder .instances [- 1 ]
74- self .assertEqual (
75- seeder .calls ,
76- [("run_specific_seed" , "posts_table_seeder.PostsTableSeeder" )],
77- )
52+ MockSeeder .return_value .run_specific_seed .assert_awaited_once_with ("posts_table_seeder.PostsTableSeeder" )
7853
7954 def test_class_option_resolves_plain_class_name (self ):
80- FakeSeeder .instances = []
81- with mock .patch ("fastapi_startkit.masoniteorm.seeders.Seeder" , FakeSeeder ):
55+ with mock .patch ("fastapi_startkit.masoniteorm.seeders.Seeder" , autospec = True ) as MockSeeder :
8256 output = self ._run ("--class PostSeeder" )
8357
8458 self .assertIn ("PostSeeder seeded!" , output )
85- seeder = FakeSeeder .instances [- 1 ]
86- self .assertEqual (
87- seeder .calls ,
88- [("run_specific_seed" , "post_seeder.PostSeeder" )],
89- )
59+ MockSeeder .return_value .run_specific_seed .assert_awaited_once_with ("post_seeder.PostSeeder" )
9060
9161 def test_class_option_resolves_table_seeder_suffix (self ):
92- FakeSeeder .instances = []
93- with mock .patch ("fastapi_startkit.masoniteorm.seeders.Seeder" , FakeSeeder ):
62+ with mock .patch ("fastapi_startkit.masoniteorm.seeders.Seeder" , autospec = True ) as MockSeeder :
9463 output = self ._run ("--class PostTableSeeder" )
9564
9665 self .assertIn ("PostTableSeeder seeded!" , output )
97- seeder = FakeSeeder .instances [- 1 ]
98- self .assertEqual (
99- seeder .calls ,
100- [("run_specific_seed" , "post_table_seeder.PostTableSeeder" )],
101- )
66+ MockSeeder .return_value .run_specific_seed .assert_awaited_once_with ("post_table_seeder.PostTableSeeder" )
10267
10368 def test_class_option_accepts_dotted_path (self ):
104- FakeSeeder .instances = []
105- with mock .patch ("fastapi_startkit.masoniteorm.seeders.Seeder" , FakeSeeder ):
69+ with mock .patch ("fastapi_startkit.masoniteorm.seeders.Seeder" , autospec = True ) as MockSeeder :
10670 output = self ._run ("--class custom.MySeeder" )
10771
10872 self .assertIn ("MySeeder seeded!" , output )
109- seeder = FakeSeeder .instances [- 1 ]
110- self .assertEqual (seeder .calls , [("run_specific_seed" , "custom.MySeeder" )])
73+ MockSeeder .return_value .run_specific_seed .assert_awaited_once_with ("custom.MySeeder" )
11174
11275 def test_connection_and_directory_options_are_forwarded (self ):
113- FakeSeeder .instances = []
114- with mock .patch ("fastapi_startkit.masoniteorm.seeders.Seeder" , FakeSeeder ):
76+ with mock .patch ("fastapi_startkit.masoniteorm.seeders.Seeder" , autospec = True ) as MockSeeder :
11577 self ._run ("--connection sqlite --directory db/seeds" )
11678
117- seeder = FakeSeeder .instances [- 1 ]
118- self .assertEqual (seeder .seed_path , "db/seeds" )
119- self .assertEqual (seeder .connection , "sqlite" )
79+ MockSeeder .assert_called_once_with (seed_path = "db/seeds" , connection = "sqlite" )
12080
12181 # -- end-to-end, driven through the registered console app against real fixture seeders --
12282
0 commit comments