Coverage report: 70%

Files Functions Classes

coverage.py v7.9.2, created at 2025-09-21 16:24 +0300

File function statements missing excluded coverage
src/__init__.py (no function) 2 0 0 100%
src/accounts/__init__.py (no function) 0 0 0 100%
src/accounts/admin.py (no function) 17 0 0 100%
src/accounts/apps.py AccountsConfig.ready 1 0 0 100%
src/accounts/apps.py (no function) 5 0 0 100%
src/accounts/authentication.py CustomAuthBackendBackend.authenticate 7 0 0 100%
src/accounts/authentication.py (no function) 6 0 0 100%
src/accounts/constants.py (no function) 38 0 0 100%
src/accounts/forms.py (no function) 10 0 0 100%
src/accounts/management/__init__.py (no function) 0 0 0 100%
src/accounts/managers/__init__.py (no function) 1 0 0 100%
src/accounts/managers/user_credential.py UserCredentialManager._create_user_object 6 1 0 83%
src/accounts/managers/user_credential.py UserCredentialManager._create_user 3 0 0 100%
src/accounts/managers/user_credential.py UserCredentialManager._acreate_user 3 3 0 0%
src/accounts/managers/user_credential.py UserCredentialManager.create_user 3 0 0 100%
src/accounts/managers/user_credential.py UserCredentialManager.acreate_user 3 3 0 0%
src/accounts/managers/user_credential.py UserCredentialManager.create_superuser 7 7 0 0%
src/accounts/managers/user_credential.py UserCredentialManager.acreate_superuser 7 7 0 0%
src/accounts/managers/user_credential.py UserCredentialManager.with_perm 11 11 0 0%
src/accounts/managers/user_credential.py (no function) 17 0 0 100%
src/accounts/migrations/0001_initial.py (no function) 11 0 0 100%
src/accounts/migrations/__init__.py (no function) 0 0 0 100%
src/accounts/models/__init__.py (no function) 3 0 0 100%
src/accounts/models/user_credential.py UserCredential.__str__ 1 1 0 0%
src/accounts/models/user_credential.py (no function) 16 0 0 100%
src/accounts/models/user_photo.py (no function) 9 0 0 100%
src/accounts/models/user_profile.py (no function) 16 0 0 100%
src/accounts/serializers/__init__.py (no function) 3 0 0 100%
src/accounts/serializers/user_credential.py UserRegisterSerializer.validate_password 2 2 0 0%
src/accounts/serializers/user_credential.py UserRegisterSerializer.validate_username 3 3 0 0%
src/accounts/serializers/user_credential.py UserRegisterSerializer.validate_agreed_to_emails 3 3 0 0%
src/accounts/serializers/user_credential.py UserRegisterSerializer.create 2 2 0 0%
src/accounts/serializers/user_credential.py UserLoginRequestSerializer.validate_email_or_username 3 0 0 100%
src/accounts/serializers/user_credential.py UserPasswordChangeSerializer.validate_current_password 4 4 0 0%
src/accounts/serializers/user_credential.py UserPasswordChangeSerializer.validate_new_password 2 2 0 0%
src/accounts/serializers/user_credential.py UserPasswordChangeSerializer.validate 3 3 0 0%
src/accounts/serializers/user_credential.py UserPasswordChangeSerializer.save 4 4 0 0%
src/accounts/serializers/user_credential.py UserPasswordResetRequestSerializer.save 11 11 0 0%
src/accounts/serializers/user_credential.py UserPasswordResetConfirmSerializer.validate 19 6 0 68%
src/accounts/serializers/user_credential.py UserPasswordResetConfirmSerializer.save 7 0 0 100%
src/accounts/serializers/user_credential.py (no function) 53 0 0 100%
src/accounts/serializers/user_photo.py UserPhotoSerializer.get_photo_url 4 4 0 0%
src/accounts/serializers/user_photo.py (no function) 11 0 0 100%
src/accounts/serializers/user_profile.py UserProfileSerializer.update 6 6 0 0%
src/accounts/serializers/user_profile.py (no function) 7 0 0 100%
src/accounts/signals.py create_related_user_models 6 0 0 100%
src/accounts/signals.py (no function) 12 0 0 100%
src/accounts/urls.py (no function) 4 0 0 100%
src/accounts/validators/models.py OnlyDigitsValidator.__init__ 1 0 0 100%
src/accounts/validators/models.py OnlyDigitsValidator.message 1 1 0 0%
src/accounts/validators/models.py OnlyDigitsValidator.message 3 1 0 67%
src/accounts/validators/models.py OnlyDigitsValidator.__call__ 2 2 0 0%
src/accounts/validators/models.py NameValidator.__init__ 1 0 0 100%
src/accounts/validators/models.py NameValidator.message 1 1 0 0%
src/accounts/validators/models.py NameValidator.message 3 1 0 67%
src/accounts/validators/models.py NameValidator.__call__ 4 4 0 0%
src/accounts/validators/models.py UsernameValidator.__init__ 1 0 0 100%
src/accounts/validators/models.py UsernameValidator.message 1 1 0 0%
src/accounts/validators/models.py UsernameValidator.message 3 1 0 67%
src/accounts/validators/models.py UsernameValidator.__call__ 2 2 0 0%
src/accounts/validators/models.py EmailOrUsernameValidator.__init__ 1 0 0 100%
src/accounts/validators/models.py EmailOrUsernameValidator.message 1 1 0 0%
src/accounts/validators/models.py EmailOrUsernameValidator.message 3 1 0 67%
src/accounts/validators/models.py EmailOrUsernameValidator.__call__ 10 1 0 90%
src/accounts/validators/models.py FileSizeValidator.__init__ 2 0 0 100%
src/accounts/validators/models.py FileSizeValidator.message 1 0 0 100%
src/accounts/validators/models.py FileSizeValidator.message 3 0 0 100%
src/accounts/validators/models.py FileSizeValidator.__call__ 2 0 0 100%
src/accounts/validators/models.py (no function) 49 0 0 100%
src/accounts/validators/password.py DigitRequiredValidator.validate 2 1 0 50%
src/accounts/validators/password.py DigitRequiredValidator.get_error_message 1 1 0 0%
src/accounts/validators/password.py DigitRequiredValidator.get_help_text 1 1 0 0%
src/accounts/validators/password.py UpperCaseLetterRequiredValidator.validate 2 1 0 50%
src/accounts/validators/password.py UpperCaseLetterRequiredValidator.get_error_message 1 1 0 0%
src/accounts/validators/password.py UpperCaseLetterRequiredValidator.get_help_text 1 1 0 0%
src/accounts/validators/password.py LowerCaseLetterRequiredValidator.validate 2 1 0 50%
src/accounts/validators/password.py LowerCaseLetterRequiredValidator.get_error_message 1 1 0 0%
src/accounts/validators/password.py LowerCaseLetterRequiredValidator.get_help_text 1 1 0 0%
src/accounts/validators/password.py NoWhiteSpacesRequiredValidator.validate 2 1 0 50%
src/accounts/validators/password.py NoWhiteSpacesRequiredValidator.get_error_message 1 1 0 0%
src/accounts/validators/password.py NoWhiteSpacesRequiredValidator.get_help_text 1 1 0 0%
src/accounts/validators/password.py SpecialCharRequiredValidator.validate 3 1 0 67%
src/accounts/validators/password.py SpecialCharRequiredValidator.get_error_message 1 1 0 0%
src/accounts/validators/password.py SpecialCharRequiredValidator.get_help_text 1 1 0 0%
src/accounts/validators/password.py (no function) 23 0 0 100%
src/accounts/views/__init__.py (no function) 3 0 0 100%
src/accounts/views/user_credential.py UserRegisterView.create 5 5 0 0%
src/accounts/views/user_credential.py UserLoginView.post 13 2 0 85%
src/accounts/views/user_credential.py UserLogoutView.post 7 7 0 0%
src/accounts/views/user_credential.py UserPasswordChangeView.patch 5 5 0 0%
src/accounts/views/user_credential.py UserDeleteView.get_object 1 1 0 0%
src/accounts/views/user_credential.py UserPasswordResetRequestView.post 5 5 0 0%
src/accounts/views/user_credential.py UserPasswordResetConfirmView.post 5 5 0 0%
src/accounts/views/user_credential.py (no function) 38 0 0 100%
src/accounts/views/user_photo.py UserPhotoView.get_object 2 2 0 0%
src/accounts/views/user_photo.py (no function) 8 0 0 100%
src/accounts/views/user_profile.py UserProfileView.get_object 2 2 0 0%
src/accounts/views/user_profile.py (no function) 6 0 0 100%
src/asgi.py (no function) 4 4 0 0%
src/celery.py (no function) 8 0 0 100%
src/chatbot/__init__.py (no function) 0 0 0 100%
src/chatbot/adapters.py LLMAdapter.__new__ 5 5 0 0%
src/chatbot/adapters.py LLMAdapter.get_llm 1 1 0 0%
src/chatbot/adapters.py LLMAdapter.get_streaming_llm 1 1 0 0%
src/chatbot/adapters.py LLMAdapter._initialize_llm 1 1 0 0%
src/chatbot/adapters.py LLMAdapter._initialize_streaming_llm 1 1 0 0%
src/chatbot/adapters.py MemoryAdapter.__new__ 4 4 0 0%
src/chatbot/adapters.py MemoryAdapter._initialize 5 5 0 0%
src/chatbot/adapters.py MemoryAdapter.get_memory 1 1 0 0%
src/chatbot/adapters.py MemoryAdapter.get_app 1 1 0 0%
src/chatbot/adapters.py MemoryAdapter._call_model 3 3 0 0%
src/chatbot/adapters.py VectorStoreAdapter.__new__ 4 4 0 0%
src/chatbot/adapters.py VectorStoreAdapter.get_vectorstore 1 1 0 0%
src/chatbot/adapters.py VectorStoreAdapter._initialize 14 14 0 0%
src/chatbot/adapters.py (no function) 37 0 0 100%
src/chatbot/apps.py (no function) 4 0 0 100%
src/chatbot/config.py (no function) 11 0 0 100%
src/chatbot/constants.py (no function) 1 0 0 100%
src/chatbot/factories.py ChatbotServiceFactory.create 1 1 0 0%
src/chatbot/factories.py (no function) 5 0 0 100%
src/chatbot/handlers.py (no function) 14 0 0 100%
src/chatbot/migrations/__init__.py (no function) 0 0 0 100%
src/chatbot/mixins.py GeneralInfoMixin._build_general_info_chain 1 1 0 0%
src/chatbot/mixins.py JewelryConsultationMixin._build_jewelry_consultation_chain 1 1 0 0%
src/chatbot/mixins.py JewelryConsultationMixin._build_preference_extraction_chain 2 2 0 0%
src/chatbot/mixins.py JewelryConsultationMixin._build_discovery_or_recommend_chain 1 1 0 0%
src/chatbot/mixins.py JewelryConsultationMixin._all_preferences_collected 1 1 0 0%
src/chatbot/mixins.py JewelryConsultationMixin._build_recommend_product_chain 1 1 0 0%
src/chatbot/mixins.py JewelryConsultationMixin._build_continue_discovery_chain 1 1 0 0%
src/chatbot/mixins.py JewelryConsultationMixin._build_available_options_navigator_chain 1 1 0 0%
src/chatbot/mixins.py JewelryConsultationMixin._extract_preferences 2 2 0 0%
src/chatbot/mixins.py JewelryConsultationMixin._extract_safe_preferences 2 2 0 0%
src/chatbot/mixins.py JewelryConsultationMixin._extract_individual_products 1 1 0 0%
src/chatbot/mixins.py JewelryConsultationMixin._check_products_individually 19 19 0 0%
src/chatbot/mixins.py (no function) 21 0 0 100%
src/chatbot/models.py (no function) 48 0 0 100%
src/chatbot/prompts/base.py (no function) 10 0 0 100%
src/chatbot/prompts/customer_intent_determiner.py (no function) 3 0 0 100%
src/chatbot/prompts/general/company_information_handler.py (no function) 3 0 0 100%
src/chatbot/prompts/general/objection_handler.py (no function) 3 0 0 100%
src/chatbot/prompts/general/off_topic_handler.py (no function) 3 0 0 100%
src/chatbot/prompts/general/sizing_help_handler.py (no function) 3 0 0 100%
src/chatbot/prompts/jewelry_consultation/available_options_navigator.py (no function) 3 0 0 100%
src/chatbot/prompts/jewelry_consultation/discoverer.py (no function) 3 0 0 100%
src/chatbot/prompts/jewelry_consultation/inventory_validator.py (no function) 3 0 0 100%
src/chatbot/prompts/jewelry_consultation/preferences_builder.py (no function) 3 0 0 100%
src/chatbot/prompts/jewelry_consultation/query_for_search_optimizer.py (no function) 3 0 0 100%
src/chatbot/prompts/jewelry_consultation/recommender.py (no function) 3 0 0 100%
src/chatbot/serializers.py ChatRequestSerializer.validate_message 3 3 0 0%
src/chatbot/serializers.py (no function) 8 0 0 100%
src/chatbot/services.py ChatbotService.__init__ 10 10 0 0%
src/chatbot/services.py ChatbotService.generate_response_stream 10 10 0 0%
src/chatbot/services.py ChatbotService._build_main_chain 1 1 0 0%
src/chatbot/services.py (no function) 10 0 0 100%
src/chatbot/strategies.py PreferenceDiscoveryStrategy.get_next_question 5 5 0 0%
src/chatbot/strategies.py (no function) 6 0 0 100%
src/chatbot/urls.py (no function) 4 0 0 100%
src/chatbot/utils.py build_conversation_history 12 12 0 0%
src/chatbot/utils.py retrieve_relevant_content 4 4 0 0%
src/chatbot/utils.py generate_formatted_response 8 8 0 0%
src/chatbot/utils.py generate_formatted_response.get_and_format_customer_preferences 4 4 0 0%
src/chatbot/utils.py (no function) 9 0 0 100%
src/chatbot/views.py ChatBotAPIView.post 11 11 0 0%
src/chatbot/views.py ChatBotAPIView.post.generate_response 5 5 0 0%
src/chatbot/views.py ChatBotAPIView._get_or_create_session_id 4 4 0 0%
src/chatbot/views.py (no function) 15 0 0 100%
src/common/__init__.py (no function) 0 0 0 100%
src/common/apps.py (no function) 4 0 0 100%
src/common/management/__init__.py (no function) 0 0 0 100%
src/common/management/commands/__init__.py (no function) 0 0 0 100%
src/common/management/commands/setup_database.py Command.handle 20 20 0 0%
src/common/management/commands/setup_database.py (no function) 5 5 0 0%
src/common/mixins.py InventoryMixin.get_product_info 9 2 0 78%
src/common/mixins.py InventoryMixin.get_total_price_per_product 4 2 0 50%
src/common/mixins.py (no function) 6 0 0 100%
src/common/permissions.py IsOrderManager.has_permission 1 0 0 100%
src/common/permissions.py (no function) 3 0 0 100%
src/common/services.py UserIdentificationService.get_user_identifier 1 0 0 100%
src/common/services.py (no function) 3 0 0 100%
src/common/tasks.py _send_email 1 0 0 100%
src/common/tasks.py (no function) 4 0 0 100%
src/common/urls.py (no function) 3 0 0 100%
src/common/utils.py ChoicesMaxLengthMixin.max_length 1 0 0 100%
src/common/utils.py convert_to_lower_case 7 7 0 0%
src/common/utils.py (no function) 5 0 0 100%
src/common/views.py send_email 1 1 0 0%
src/common/views.py notify_users_they_have_uncompleted_orders 8 8 0 0%
src/common/views.py ShoppingBagReminderInfoView.get 4 4 0 0%
src/common/views.py WakeUpServerView.get 1 1 0 0%
src/common/views.py (no function) 26 0 0 100%
src/orders/__init__.py (no function) 0 0 0 100%
src/orders/admin.py OrderAdmin.product_display 6 6 0 0%
src/orders/admin.py OrderAdmin.product_info 9 9 0 0%
src/orders/admin.py (no function) 17 0 0 100%
src/orders/apps.py (no function) 4 0 0 100%
src/orders/choices.py (no function) 5 0 0 100%
src/orders/constants.py (no function) 28 0 0 100%
src/orders/migrations/0001_initial.py (no function) 6 0 0 100%
src/orders/migrations/0002_initial.py (no function) 7 0 0 100%
src/orders/migrations/__init__.py (no function) 0 0 0 100%
src/orders/models.py Order.__str__ 1 1 0 0%
src/orders/models.py (no function) 15 0 0 100%
src/orders/serializers.py OrderSerializer.get_product_info 4 0 0 100%
src/orders/serializers.py OrderSerializer.get_total_price 1 0 0 100%
src/orders/serializers.py OrderSerializer.get_product_content_type 7 2 0 71%
src/orders/serializers.py OrderSerializer.get_product_object_id 7 2 0 71%
src/orders/serializers.py OrderGroupSerializer.to_representation 8 2 0 75%
src/orders/serializers.py OrderCreateSerializer.validate 2 0 0 100%
src/orders/serializers.py (no function) 36 0 0 100%
src/orders/services.py PaymentValidationService.validate_card_number 6 0 0 100%
src/orders/services.py PaymentValidationService.validate_card_holder_name 5 0 0 100%
src/orders/services.py PaymentValidationService.validate_cvv 5 0 0 100%
src/orders/services.py PaymentValidationService.validate_expiry_date 13 0 0 100%
src/orders/services.py PaymentValidationService.validate_payment_data 5 0 0 100%
src/orders/services.py OrderService.get_user_identifier 1 1 0 0%
src/orders/services.py OrderService.process_order_from_shopping_bag 10 0 0 100%
src/orders/services.py OrderService.get_user_orders 1 0 0 100%
src/orders/services.py OrderService.get_user_orders_grouped 16 1 0 94%
src/orders/services.py OrderService.calculate_order_group_total 6 0 0 100%
src/orders/services.py (no function) 36 0 0 100%
src/orders/tasks.py complete_old_orders 2 0 0 100%
src/orders/tasks.py (no function) 7 0 0 100%
src/orders/urls.py (no function) 6 0 0 100%
src/orders/views.py OrderViewSet.get_queryset 1 1 0 0%
src/orders/views.py OrderViewSet.list 6 6 0 0%
src/orders/views.py OrderViewSet.create_from_shopping_bag 13 3 0 77%
src/orders/views.py (no function) 15 0 0 100%
src/products/__init__.py (no function) 0 0 0 100%
src/products/admin.py StoneListFilter.lookups 1 1 0 0%
src/products/admin.py StoneListFilter.queryset 1 1 0 0%
src/products/admin.py ColorListFilter.lookups 1 1 0 0%
src/products/admin.py ColorListFilter.queryset 1 1 0 0%
src/products/admin.py BaseProductAdmin.first_picture 1 1 0 0%
src/products/admin.py BaseProductAdmin.second_picture 1 1 0 0%
src/products/admin.py ReviewAdmin.product_link 3 3 0 0%
src/products/admin.py ReviewAdmin.has_add_permission 1 1 0 0%
src/products/admin.py ReviewAdmin.has_delete_permission 1 1 0 0%
src/products/admin.py (no function) 80 0 0 100%
src/products/apps.py ProductsConfig.ready 1 0 0 100%
src/products/apps.py (no function) 5 0 0 100%
src/products/constants.py (no function) 12 0 0 100%
src/products/management/__init__.py (no function) 0 0 0 100%
src/products/management/commands/__init__.py (no function) 0 0 0 100%
src/products/management/commands/create_products.py Command.handle 5 5 0 0%
src/products/management/commands/create_products.py Command.initialize_data 6 6 0 0%
src/products/management/commands/create_products.py (no function) 11 11 0 0%
src/products/management/commands/create_reviews.py Command.handle 6 6 0 0%
src/products/management/commands/create_reviews.py Command.create_fake_users 14 14 0 0%
src/products/management/commands/create_reviews.py Command.create_fake_reviews 23 23 0 0%
src/products/management/commands/create_reviews.py (no function) 16 16 0 0%
src/products/management/commands/generate_boutique_info.py Command.add_arguments 1 1 0 0%
src/products/management/commands/generate_boutique_info.py Command.handle 23 23 0 0%
src/products/management/commands/generate_boutique_info.py (no function) 10 10 0 0%
src/products/management/commands/generate_product_catalog.py Command.add_arguments 1 1 0 0%
src/products/management/commands/generate_product_catalog.py Command.handle 30 30 0 0%
src/products/management/commands/generate_product_catalog.py (no function) 13 13 0 0%
src/products/management/products_data.py (no function) 1 1 0 0%
src/products/managers/__init__.py (no function) 1 0 0 100%
src/products/managers/base.py BaseProductManager.get_product_item 1 1 0 0%
src/products/managers/base.py BaseProductManager.get_product_list 3 3 0 0%
src/products/managers/base.py BaseProductManager._get_raw_products 3 3 0 0%
src/products/managers/base.py BaseAttributesManager.get_attributes_count 4 4 0 0%
src/products/managers/base.py (no function) 8 0 0 100%
src/products/managers/product.py (no function) 21 0 0 100%
src/products/migrations/0001_initial.py (no function) 8 0 0 100%
src/products/migrations/__init__.py (no function) 0 0 0 100%
src/products/mixins.py NameFieldMixin.__str__ 1 0 0 100%
src/products/mixins.py FilterMixin._get_params 1 0 0 100%
src/products/mixins.py FilterMixin._build_filters 5 0 0 100%
src/products/mixins.py FilterMixin._get_filters_for_attributes 3 0 0 100%
src/products/mixins.py FilterMixin._get_filters_for_product 3 0 0 100%
src/products/mixins.py (no function) 14 0 0 100%
src/products/models/__init__.py (no function) 3 0 0 100%
src/products/models/base.py BaseProduct.__str__ 1 1 0 0%
src/products/models/base.py (no function) 23 0 0 100%
src/products/models/inventory.py Inventory.__str__ 1 1 0 0%
src/products/models/inventory.py (no function) 18 0 0 100%
src/products/models/product.py (no function) 23 0 0 100%
src/products/models/review.py Review.__str__ 1 1 0 0%
src/products/models/review.py (no function) 22 0 0 100%
src/products/serializers/__init__.py (no function) 2 0 0 100%
src/products/serializers/base.py AverageRatingField.to_representation 2 2 0 0%
src/products/serializers/base.py BaseProductItemSerializer.get_review 5 5 0 0%
src/products/serializers/base.py BaseProductItemSerializer.get_related_collection_products 7 7 0 0%
src/products/serializers/base.py BaseProductItemSerializer.get_related_products 12 12 0 0%
src/products/serializers/base.py BaseProductItemSerializer.get_related_products.serialize_products_of_type 9 9 0 0%
src/products/serializers/base.py (no function) 39 0 0 100%
src/products/serializers/inventory.py InventorySerializer.get_content_type 2 2 0 0%
src/products/serializers/inventory.py InventorySerializer.get_object_id 1 1 0 0%
src/products/serializers/inventory.py (no function) 12 0 0 100%
src/products/serializers/product.py (no function) 50 0 0 100%
src/products/serializers/review.py ReviewSerializer.get_photo_url 6 6 0 0%
src/products/serializers/review.py ReviewSerializer.get_user_full_name 6 6 0 0%
src/products/serializers/review.py ReviewSerializer.validate_comment 3 3 0 0%
src/products/serializers/review.py ReviewSerializer.validate_rating 3 3 0 0%
src/products/serializers/review.py (no function) 16 0 0 100%
src/products/serializers/review_management.py ReviewManagementSerializer.to_representation 3 3 0 0%
src/products/serializers/review_management.py (no function) 8 0 0 100%
src/products/signals.py send_approval_email_notification 4 3 0 25%
src/products/signals.py (no function) 9 0 0 100%
src/products/urls.py (no function) 8 0 0 100%
src/products/utils.py get_valid_categories 5 5 0 0%
src/products/utils.py (no function) 3 0 0 100%
src/products/views/__init__.py (no function) 2 0 0 100%
src/products/views/base.py BaseProductListView.list 8 8 0 0%
src/products/views/base.py BaseProductListView._get_products_data 3 3 0 0%
src/products/views/base.py BaseProductItemView.get 4 4 0 0%
src/products/views/base.py BaseAttributeView.get 18 18 0 0%
src/products/views/base.py (no function) 21 0 0 100%
src/products/views/product.py ProductAllReviewsView.get 12 12 0 0%
src/products/views/product.py catalog_page 1 1 0 0%
src/products/views/product.py generate_catalog 16 16 0 0%
src/products/views/product.py download_catalog 1 1 0 0%
src/products/views/product.py (no function) 72 0 0 100%
src/products/views/review.py ReviewViewSet.get_serializer_class 3 3 0 0%
src/products/views/review.py ReviewViewSet.get_queryset 3 3 0 0%
src/products/views/review.py ReviewViewSet.create 10 10 0 0%
src/products/views/review.py ReviewViewSet.update 8 8 0 0%
src/products/views/review.py ReviewViewSet.destroy 1 1 0 0%
src/products/views/review.py ReviewViewSet.get_user_review 11 11 0 0%
src/products/views/review.py ReviewViewSet.approve 7 7 0 0%
src/products/views/review.py ReviewViewSet.unapprove 7 7 0 0%
src/products/views/review.py ReviewViewSet.pending 3 3 0 0%
src/products/views/review.py (no function) 27 0 0 100%
src/settings.py (no function) 77 0 0 100%
src/shopping_bags/__init__.py (no function) 0 0 0 100%
src/shopping_bags/admin.py ShoppingBagAdmin.product_display 6 6 0 0%
src/shopping_bags/admin.py ShoppingBagAdmin.product_info 9 9 0 0%
src/shopping_bags/admin.py (no function) 16 0 0 100%
src/shopping_bags/apps.py (no function) 4 0 0 100%
src/shopping_bags/constants.py (no function) 4 0 0 100%
src/shopping_bags/migrations/0001_initial.py (no function) 7 0 0 100%
src/shopping_bags/migrations/__init__.py (no function) 0 0 0 100%
src/shopping_bags/models.py (no function) 11 0 0 100%
src/shopping_bags/serializers.py ShoppingBagSerializer.get_product_info 1 0 0 100%
src/shopping_bags/serializers.py ShoppingBagSerializer.get_total_price 1 0 0 100%
src/shopping_bags/serializers.py (no function) 15 0 0 100%
src/shopping_bags/services.py ShoppingBagService.get_user_identifier 1 0 0 100%
src/shopping_bags/services.py ShoppingBagService.validate_inventory_quantity 2 1 0 50%
src/shopping_bags/services.py ShoppingBagService.get_or_create_bag_item 1 0 0 100%
src/shopping_bags/services.py (no function) 11 0 0 100%
src/shopping_bags/urls.py (no function) 5 0 0 100%
src/shopping_bags/views.py ShoppingBagViewSet.get_queryset 5 2 0 60%
src/shopping_bags/views.py ShoppingBagViewSet.perform_create 13 0 0 100%
src/shopping_bags/views.py ShoppingBagViewSet.perform_update 9 0 0 100%
src/shopping_bags/views.py ShoppingBagViewSet.perform_destroy 1 0 0 100%
src/shopping_bags/views.py ShoppingBagViewSet.get_bag_count 6 2 0 67%
src/shopping_bags/views.py ShoppingBagViewSet.get_total_price 8 4 0 50%
src/shopping_bags/views.py (no function) 23 0 0 100%
src/unfold.py (no function) 4 0 0 100%
src/urls.py (no function) 5 0 0 100%
src/wishlists/__init__.py (no function) 0 0 0 100%
src/wishlists/admin.py WishlistAdmin.product_display 3 3 0 0%
src/wishlists/admin.py WishlistAdmin.product_info 6 6 0 0%
src/wishlists/admin.py (no function) 16 0 0 100%
src/wishlists/apps.py (no function) 4 0 0 100%
src/wishlists/constants.py (no function) 5 0 0 100%
src/wishlists/migrations/0001_initial.py (no function) 7 0 0 100%
src/wishlists/migrations/__init__.py (no function) 0 0 0 100%
src/wishlists/models.py Wishlist.__str__ 2 2 0 0%
src/wishlists/models.py (no function) 15 0 0 100%
src/wishlists/serializers.py WishlistSerializer.get_product_info 10 1 0 90%
src/wishlists/serializers.py (no function) 12 0 0 100%
src/wishlists/services.py WishlistService.get_user_identifier 1 0 0 100%
src/wishlists/services.py WishlistService.get_product_object 4 2 0 50%
src/wishlists/services.py WishlistService.check_item_exists 1 0 0 100%
src/wishlists/services.py WishlistService.create_wishlist_item 5 0 0 100%
src/wishlists/services.py WishlistService.get_wishlist_item 5 0 0 100%
src/wishlists/services.py WishlistService.delete_wishlist_item 3 0 0 100%
src/wishlists/services.py (no function) 17 0 0 100%
src/wishlists/urls.py (no function) 5 0 0 100%
src/wishlists/views.py WishlistViewSet.get_queryset 5 2 0 60%
src/wishlists/views.py WishlistViewSet.create 11 11 0 0%
src/wishlists/views.py WishlistViewSet.remove_item 11 11 0 0%
src/wishlists/views.py WishlistViewSet.get_wishlist_count 6 6 0 0%
src/wishlists/views.py (no function) 17 0 0 100%
src/wsgi.py (no function) 4 4 0 0%
Total   2756 830 0 70%

No items found using the specified filter.