mirror of
				https://github.com/ets-labs/python-dependency-injector.git
				synced 2025-11-01 00:17:55 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Main module."""
 | |
| 
 | |
| from dependency_injector import providers
 | |
| 
 | |
| import api
 | |
| import models
 | |
| 
 | |
| 
 | |
| # Creating ApiClient and User providers:
 | |
| api_client = providers.Singleton(api.ApiClient,
 | |
|                                  host='production.com',
 | |
|                                  api_key='PROD_API_KEY')
 | |
| user_factory = providers.Factory(models.User,
 | |
|                                  api_client=api_client)
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     # Creating several users and register them:
 | |
|     user1 = user_factory(1)
 | |
|     user1.register()
 | |
|     # API call [production.com:PROD_API_KEY], method - register, data -
 | |
|     # {'id': 1}
 | |
| 
 | |
|     user2 = user_factory(2)
 | |
|     user2.register()
 | |
|     # API call [production.com:PROD_API_KEY], method - register, data -
 | |
|     # {'id': 2}
 | |
| 
 | |
|     # Overriding of ApiClient on dev environment:
 | |
|     api_client.override(providers.Singleton(api.ApiClient,
 | |
|                                             host='localhost',
 | |
|                                             api_key='DEV_API_KEY'))
 | |
| 
 | |
|     user3 = user_factory(3)
 | |
|     user3.register()
 | |
|     # API call [localhost:DEV_API_KEY], method - register, data - {'id': 3}
 |