99from fromager import bootstrapper
1010from fromager .context import WorkContext
1111from fromager .dependency_graph import DependencyGraph
12- from fromager .requirements_file import RequirementType
12+ from fromager .requirements_file import RequirementType , SourceType
1313
1414old_graph = DependencyGraph ()
1515
@@ -290,13 +290,13 @@ def test_build_order(tmp_context: WorkContext) -> None:
290290 req = Requirement ("buildme>1.0" ),
291291 version = Version ("6.0" ),
292292 source_url = "url" ,
293- source_url_type = "sdist" ,
293+ source_type = SourceType . SDIST ,
294294 )
295295 bt ._add_to_build_order (
296296 req = Requirement ("testdist>1.0" ),
297297 version = Version ("1.2" ),
298298 source_url = "url" ,
299- source_url_type = "sdist" ,
299+ source_type = SourceType . SDIST ,
300300 )
301301 contents_str = bt ._build_order_filename .read_text ()
302302 contents = json .loads (contents_str )
@@ -329,19 +329,19 @@ def test_build_order_repeats(tmp_context: WorkContext) -> None:
329329 Requirement ("buildme>1.0" ),
330330 Version ("6.0" ),
331331 "url" ,
332- "sdist" ,
332+ SourceType . SDIST ,
333333 )
334334 bt ._add_to_build_order (
335335 Requirement ("buildme>1.0" ),
336336 Version ("6.0" ),
337337 "url" ,
338- "sdist" ,
338+ SourceType . SDIST ,
339339 )
340340 bt ._add_to_build_order (
341341 Requirement ("buildme[extra]>1.0" ),
342342 Version ("6.0" ),
343343 "url" ,
344- "sdist" ,
344+ SourceType . SDIST ,
345345 )
346346 contents_str = bt ._build_order_filename .read_text ()
347347 contents = json .loads (contents_str )
@@ -365,13 +365,13 @@ def test_build_order_name_canonicalization(tmp_context: WorkContext) -> None:
365365 Requirement ("flit-core>1.0" ),
366366 Version ("3.9.0" ),
367367 "url" ,
368- "sdist" ,
368+ SourceType . SDIST ,
369369 )
370370 bt ._add_to_build_order (
371371 Requirement ("flit_core>1.0" ),
372372 Version ("3.9.0" ),
373373 "url" ,
374- "sdist" ,
374+ SourceType . SDIST ,
375375 )
376376 contents_str = bt ._build_order_filename .read_text ()
377377 contents = json .loads (contents_str )
@@ -447,50 +447,47 @@ def test_find_cached_wheel_returns_tuple(tmp_context: WorkContext) -> None:
447447 assert len (result ) == 2
448448
449449
450- def test_get_install_dependencies_returns_list (tmp_context : WorkContext ) -> None :
450+ @patch ("fromager.dependencies.get_install_dependencies_of_wheel" , return_value = set ())
451+ def test_get_install_dependencies_returns_list (
452+ mock_get_deps : Mock , tmp_context : WorkContext
453+ ) -> None :
451454 """Verify _get_install_dependencies returns list."""
452455 bt = bootstrapper .Bootstrapper (tmp_context )
453456
454457 # Create fake wheel file and mock dependencies
455458 wheel_file = pathlib .Path ("/fake/package-1.0.0-py3-none-any.whl" )
456459 unpack_dir = tmp_context .work_dir
457460
458- # Mock the dependency extraction to return empty set
459- import fromager .dependencies as deps
460-
461- original_func = deps .get_install_dependencies_of_wheel
462- deps .get_install_dependencies_of_wheel = Mock (return_value = set ())
463-
464- try :
465- result = bt ._get_install_dependencies (
466- req = Requirement ("test-package" ),
467- resolved_version = Version ("1.0.0" ),
468- wheel_filename = wheel_file ,
469- sdist_filename = None ,
470- sdist_root_dir = None ,
471- build_env = None ,
472- unpack_dir = unpack_dir ,
473- )
461+ result = bt ._get_install_dependencies (
462+ req = Requirement ("test-package" ),
463+ resolved_version = Version ("1.0.0" ),
464+ wheel_filename = wheel_file ,
465+ sdist_filename = None ,
466+ sdist_root_dir = None ,
467+ build_env = None ,
468+ unpack_dir = unpack_dir ,
469+ )
474470
475- # Verify return type is list
476- assert isinstance (result , list )
477- finally :
478- deps . get_install_dependencies_of_wheel = original_func
471+ # Verify return type is list
472+ assert isinstance (result , list )
473+ # Verify the mocked function was called
474+ mock_get_deps . assert_called_once ()
479475
480476
481477def test_build_from_source_returns_dataclass (tmp_context : WorkContext ) -> None :
482- """Verify _build_from_source returns SourceBuildResult."""
478+ """Verify _build_from_source returns SourceBuildResult with correct values ."""
483479 bt = bootstrapper .Bootstrapper (tmp_context )
484480
485481 mock_sdist_root = tmp_context .work_dir / "package-1.0.0" / "package-1.0.0"
486482 mock_sdist_root .parent .mkdir (parents = True , exist_ok = True )
487483 mock_source_file = tmp_context .work_dir / "package-1.0.0.tar.gz"
488484 mock_wheel = tmp_context .work_dir / "package-1.0.0-py3-none-any.whl"
485+ expected_unpack_dir = mock_sdist_root .parent
489486
490487 with (
491488 patch ("fromager.sources.download_source" , return_value = mock_source_file ),
492489 patch ("fromager.sources.prepare_source" , return_value = mock_sdist_root ),
493- patch ("fromager.sources.get_source_type" , return_value = "sdist" ),
490+ patch ("fromager.sources.get_source_type" , return_value = SourceType . SDIST ),
494491 patch .object (bt , "_prepare_build_dependencies" ),
495492 patch .object (bt , "_build_wheel" , return_value = (mock_wheel , None )),
496493 ):
@@ -506,10 +503,10 @@ def test_build_from_source_returns_dataclass(tmp_context: WorkContext) -> None:
506503 # Verify return type is SourceBuildResult
507504 assert isinstance (result , bootstrapper .SourceBuildResult )
508505
509- # Verify all expected fields are present
510- assert hasattr ( result , " wheel_filename" )
511- assert hasattr ( result , " sdist_filename" )
512- assert hasattr ( result , " unpack_dir" )
513- assert hasattr ( result , " sdist_root_dir" )
514- assert hasattr ( result , " build_env" )
515- assert hasattr ( result , "source_url_type" )
506+ # Verify all expected fields have correct values
507+ assert result . wheel_filename == mock_wheel
508+ assert result . sdist_filename is None
509+ assert result . unpack_dir == expected_unpack_dir
510+ assert result . sdist_root_dir == mock_sdist_root
511+ assert result . build_env is not None
512+ assert result . source_type == SourceType . SDIST
0 commit comments