Coverage for src/products/management/commands/create_products.py: 0%

22 statements  

« prev     ^ index     » next       coverage.py v7.9.2, created at 2025-08-04 12:59 +0300

1import os 

2import random 

3import django 

4from django.core.management.base import BaseCommand 

5 

6from src.products.management.commands.utils.create_product import ( 

7 create_product, 

8) 

9from src.products.management.products_data import products_data 

10from src.products.management.commands.utils.attributes_as_list_mapper import ( 

11 attributes_as_list_mapper, 

12) 

13 

14 

15class Command(BaseCommand): 

16 help = 'Creating products' 

17 

18 def handle(self, *args, **options): 

19 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'src.settings') 

20 

21 django.setup() 

22 

23 self.stdout.write(self.style.SUCCESS('Starting creating products...')) 

24 

25 self.initialize_data() 

26 

27 self.stdout.write( 

28 self.style.SUCCESS('All products created successfully.') 

29 ) 

30 

31 def initialize_data(self): 

32 

33 for model, list in attributes_as_list_mapper.items(): 

34 for element in list: 

35 model.objects.create( 

36 name=element, 

37 ) 

38 

39 random.shuffle(products_data) 

40 

41 for product_data in products_data: 

42 create_product(product_data)