Coverage report: 74%

Files Functions Classes

coverage.py v7.9.2, created at 2025-08-04 12:59 +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) 37 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/0002_alter_userphoto_photo.py (no function) 6 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 PasswordChangeSerializer.validate_current_password 4 4 0 0%
src/accounts/serializers/user_credential.py PasswordChangeSerializer.validate_new_password 2 2 0 0%
src/accounts/serializers/user_credential.py PasswordChangeSerializer.validate 3 3 0 0%
src/accounts/serializers/user_credential.py PasswordChangeSerializer.save 4 4 0 0%
src/accounts/serializers/user_credential.py PasswordResetRequestSerializer.save 11 11 0 0%
src/accounts/serializers/user_credential.py PasswordResetConfirmSerializer.validate 11 3 0 73%
src/accounts/serializers/user_credential.py PasswordResetConfirmSerializer.save 7 0 0 100%
src/accounts/serializers/user_credential.py (no function) 51 0 0 100%
src/accounts/serializers/user_photo.py PhotoSerializer.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 2 0 0%
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 2 0 0%
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 2 0 0%
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 2 0 0%
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 3 0 0%
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 PasswordChangeView.patch 5 5 0 0%
src/accounts/views/user_credential.py UserDeleteView.get_object 1 1 0 0%
src/accounts/views/user_credential.py PasswordResetRequestView.post 5 5 0 0%
src/accounts/views/user_credential.py PasswordResetConfirmView.post 5 5 0 0%
src/accounts/views/user_credential.py (no function) 32 0 0 100%
src/accounts/views/user_photo.py PhotoUploadView.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/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 (no function) 3 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 (no function) 20 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) 73 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 19 19 0 0%
src/products/management/commands/create_reviews.py (no function) 15 15 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) 17 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) 17 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) 20 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 9 9 0 0%
src/products/serializers/base.py BaseProductItemSerializer.get_related_products.serialize_products_of_type 7 7 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) 38 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 15 15 0 0%
src/products/views/base.py (no function) 20 0 0 100%
src/products/views/product.py ProductAllReviewsView.get 13 13 0 0%
src/products/views/product.py (no function) 51 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) 63 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.get_inventory_object 4 4 0 0%
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) 14 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) 4 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   2170 568 0 74%

No items found using the specified filter.