mirror of
				https://github.com/ets-labs/python-dependency-injector.git
				synced 2025-10-31 07:57:43 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Tests for string module and package names."""
 | |
| 
 | |
| from typing import Iterator, Optional
 | |
| 
 | |
| from pytest import fixture, mark
 | |
| from samples.wiring.container import Container
 | |
| 
 | |
| from dependency_injector.wiring import _fetch_reference_injections
 | |
| 
 | |
| 
 | |
| @fixture
 | |
| def container() -> Iterator[Container]:
 | |
|     container = Container()
 | |
|     yield container
 | |
|     container.unwire()
 | |
| 
 | |
| 
 | |
| @mark.parametrize(
 | |
|     ["arg_value", "wc_value", "empty_cache"],
 | |
|     [
 | |
|         (None, False, True),
 | |
|         (False, True, True),
 | |
|         (True, False, False),
 | |
|         (None, True, False),
 | |
|     ],
 | |
| )
 | |
| def test_fetch_reference_injections_cache(
 | |
|     container: Container,
 | |
|     arg_value: Optional[bool],
 | |
|     wc_value: bool,
 | |
|     empty_cache: bool,
 | |
| ) -> None:
 | |
|     container.wiring_config.keep_cache = wc_value
 | |
|     container.wire(
 | |
|         modules=["samples.wiring.module"],
 | |
|         packages=["samples.wiring.package"],
 | |
|         keep_cache=arg_value,
 | |
|     )
 | |
|     cache_info = _fetch_reference_injections.cache_info()
 | |
| 
 | |
|     if empty_cache:
 | |
|         assert cache_info == (0, 0, None, 0)
 | |
|     else:
 | |
|         assert cache_info.hits > 0
 | |
|         assert cache_info.misses > 0
 | |
|         assert cache_info.currsize > 0
 |