Coverage report: 95.2%

Files Functions Classes

coverage.py v7.15.2, created at 2026-08-30 21:28 +0200

      Statements   Branches   Total
File class   coverage statements missing excluded   coverage branches partial   coverage
api\authentication.py UsersJWTAuthentication   92.3% 13 1 0   75.0% 4 1   88.2%
api\authentication.py (no class)   100.0% 7 0 0   100.0% 0 0   100.0%
api\base_models.py BaseModel   100.0% 0 0 0   100.0% 0 0   100.0%
api\base_models.py BaseModel.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\base_models.py (no class)   100.0% 8 0 0   100.0% 0 0   100.0%
api\catalog_admin.py CatalogAdmin   100.0% 6 0 0   75.0% 4 1   90.0%
api\catalog_admin.py (no class)   100.0% 8 0 0   100.0% 0 0   100.0%
api\client_ip.py (no class)   91.7% 12 1 0   75.0% 4 1   87.5%
api\docs_access.py (no class)   100.0% 10 0 0   100.0% 2 0   100.0%
api\errors.py ErrorCodes   100.0% 0 0 0   100.0% 0 0   100.0%
api\errors.py (no class)   100.0% 46 0 0   100.0% 0 0   100.0%
api\exception_handler.py (no class)   92.6% 68 5 0   83.3% 42 7   89.1%
api\exceptions.py CustomAPIException   100.0% 4 0 0   100.0% 2 0   100.0%
api\exceptions.py (no class)   100.0% 4 0 0   100.0% 0 0   100.0%
api\honeypot.py (no class)   91.1% 45 4 0   100.0% 10 0   92.7%
api\ownership.py OwnedQuerysetMixin   90.0% 10 1 0   83.3% 6 1   87.5%
api\ownership.py OwnedCreateMixin   75.0% 4 1 0   50.0% 2 1   66.7%
api\ownership.py (no class)   100.0% 7 0 0   100.0% 0 0   100.0%
api\serializers\base.py AuditFieldsMixin   100.0% 5 0 0   75.0% 4 1   88.9%
api\serializers\base.py (no class)   100.0% 3 0 0   100.0% 0 0   100.0%
api\serializers\chat_serializer.py ChatMessageSerializer   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\chat_serializer.py ChatMessageSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\chat_serializer.py (no class)   100.0% 9 0 0   100.0% 0 0   100.0%
api\serializers\login_serializer.py CustomTokenObtainPairSerializer   86.1% 36 5 0   78.6% 14 3   84.0%
api\serializers\login_serializer.py CustomTokenRefreshSerializer   87.5% 16 2 0   83.3% 6 1   86.4%
api\serializers\login_serializer.py (no class)   100.0% 22 0 0   100.0% 0 0   100.0%
api\serializers\travel_serializer.py TravelSerializer   98.0% 49 1 0   92.3% 26 2   96.0%
api\serializers\travel_serializer.py TravelSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\travel_serializer.py TravelStatesSerializer   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\travel_serializer.py TravelStatesSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\travel_serializer.py RequestTravelsSerializer   100.0% 4 0 0   100.0% 2 0   100.0%
api\serializers\travel_serializer.py RequestTravelsSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\travel_serializer.py RequestStatesSerializer   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\travel_serializer.py RequestStatesSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\travel_serializer.py PickUpPointSerializer   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\travel_serializer.py PickUpPointSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\travel_serializer.py UsersDeniedSerializer   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\travel_serializer.py UsersDeniedSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\travel_serializer.py (no class)   100.0% 50 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py UserSerializer   81.2% 16 3 0   75.0% 8 2   79.2%
api\serializers\user_serializer.py UserSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py PublicUserSerializer   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py PublicUserSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py UserRegistrationSerializer   90.5% 21 2 0   100.0% 2 0   91.3%
api\serializers\user_serializer.py UserRegistrationSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py ProfilePicSerializer   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py ProfilePicSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py UserTypeSerializer   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py UserTypeSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py NotificationsSerializer   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py NotificationsSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py DeviceSerializer   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py DeviceSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py PrefTypesSerializer   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py PrefTypesSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py PreferencesSerializer   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py PreferencesSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py CriteriaSerializer   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py CriteriaSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py DriverRatingsSerializer   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py DriverRatingsSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py EnvTypesSerializer   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py EnvTypesSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py VehicleSerializer   100.0% 12 0 0   100.0% 6 0   100.0%
api\serializers\user_serializer.py VehicleSerializer.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
api\serializers\user_serializer.py (no class)   100.0% 77 0 0   100.0% 0 0   100.0%
api\soft_delete.py SoftDeleteQuerysetMixin   100.0% 5 0 0   100.0% 0 0   100.0%
api\soft_delete.py (no class)   100.0% 4 0 0   100.0% 0 0   100.0%
api\urls.py (no class)   100.0% 29 0 0   100.0% 0 0   100.0%
api\views\auth_views.py OAuthThrottle   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\auth_views.py RegisterThrottle   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\auth_views.py CustomTokenObtainPairView   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\auth_views.py CustomTokenRefreshView   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\auth_views.py (no class)   95.7% 93 4 0   90.0% 10 1   95.1%
api\views\catalog_views.py CatalogViewSet   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\catalog_views.py UserTypeViewSet   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\catalog_views.py PrefTypesViewSet   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\catalog_views.py CriteriaViewSet   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\catalog_views.py EnvTypesViewSet   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\catalog_views.py TravelStatesViewSet   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\catalog_views.py RequestStatesViewSet   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\catalog_views.py (no class)   100.0% 27 0 0   100.0% 0 0   100.0%
api\views\chat_views.py ChatViewSet   88.5% 61 7 0   65.0% 20 7   82.7%
api\views\chat_views.py (no class)   100.0% 27 0 0   100.0% 0 0   100.0%
api\views\media_views.py (no class)   90.6% 32 3 0   87.5% 8 1   90.0%
api\views\travel_views.py TravelViewSet   98.0% 198 4 0   96.2% 26 1   97.8%
api\views\travel_views.py RequestTravelsViewSet   97.4% 39 1 0   87.5% 8 1   95.7%
api\views\travel_views.py TravelChildViewSet   100.0% 23 0 0   100.0% 0 0   100.0%
api\views\travel_views.py PickUpPointsViewSet   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\travel_views.py UsersDeniedViewSet   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\travel_views.py (no class)   96.3% 82 3 0   50.0% 2 1   95.2%
api\views\user_data_views.py OwnedDataViewSet   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\user_data_views.py NotificationsViewSet   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\user_data_views.py PreferencesViewSet   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\user_data_views.py DriverRatingsViewSet   100.0% 0 0 0   100.0% 0 0   100.0%
api\views\user_data_views.py DeviceViewSet   100.0% 6 0 0   100.0% 2 0   100.0%
api\views\user_data_views.py VehiclesViewSet   100.0% 35 0 0   100.0% 4 0   100.0%
api\views\user_data_views.py (no class)   100.0% 36 0 0   100.0% 0 0   100.0%
api\views\user_views.py UsersViewSet   92.4% 291 22 0   90.6% 32 3   92.3%
api\views\user_views.py (no class)   100.0% 79 0 0   100.0% 0 0   100.0%
chats\__init__.py (no class)   100.0% 0 0 0   100.0% 0 0   100.0%
chats\apps.py ChatsConfig   100.0% 0 0 0   100.0% 0 0   100.0%
chats\apps.py (no class)   100.0% 4 0 0   100.0% 0 0   100.0%
chats\consumers.py ChatConsumer   96.4% 55 2 0   83.3% 18 3   93.2%
chats\consumers.py (no class)   100.0% 24 0 0   100.0% 0 0   100.0%
chats\middleware.py JWTAuthMiddleware   100.0% 11 0 0   100.0% 2 0   100.0%
chats\middleware.py (no class)   100.0% 21 0 0   100.0% 4 0   100.0%
chats\models.py Chat   33.3% 6 4 0   100.0% 0 0   33.3%
chats\models.py Chat.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
chats\models.py ChatMessage   0.0% 1 1 0   100.0% 0 0   0.0%
chats\models.py ChatMessage.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
chats\models.py ChatMembership   0.0% 1 1 0   100.0% 0 0   0.0%
chats\models.py ChatMembership.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
chats\models.py (no class)   100.0% 58 0 0   100.0% 4 0   100.0%
chats\routing.py (no class)   100.0% 3 0 0   100.0% 0 0   100.0%
chats\services\__init__.py (no class)   100.0% 0 0 0   100.0% 0 0   100.0%
chats\services\chat_service.py ChatService   100.0% 59 0 0   100.0% 14 0   100.0%
chats\services\chat_service.py (no class)   100.0% 29 0 0   100.0% 0 0   100.0%
chats\services\exceptions.py ChatDomainError   100.0% 0 0 0   100.0% 0 0   100.0%
chats\services\exceptions.py DriverCannotLeaveError   100.0% 0 0 0   100.0% 0 0   100.0%
chats\services\exceptions.py (no class)   100.0% 4 0 0   100.0% 0 0   100.0%
services\email\email_service.py Email   77.8% 18 4 0   100.0% 0 0   77.8%
services\email\email_service.py (no class)   100.0% 10 0 0   100.0% 0 0   100.0%
services\push\push_service.py PushNotification   84.2% 19 3 0   100.0% 4 0   87.0%
services\push\push_service.py (no class)   78.6% 14 3 0   0.0% 2 0   68.8%
travels\__init__.py (no class)   100.0% 0 0 0   100.0% 0 0   100.0%
travels\admin.py TravelStatesAdmin   100.0% 0 0 0   100.0% 0 0   100.0%
travels\admin.py RequestStatesAdmin   100.0% 0 0 0   100.0% 0 0   100.0%
travels\admin.py (no class)   100.0% 11 0 0   100.0% 0 0   100.0%
travels\apps.py TravelsConfig   100.0% 0 0 0   100.0% 0 0   100.0%
travels\apps.py (no class)   100.0% 3 0 0   100.0% 0 0   100.0%
travels\management\__init__.py (no class)   100.0% 0 0 0   100.0% 0 0   100.0%
travels\management\commands\__init__.py (no class)   100.0% 0 0 0   100.0% 0 0   100.0%
travels\management\commands\finish_travels.py Command   77.8% 9 2 0   100.0% 2 0   81.8%
travels\management\commands\finish_travels.py (no class)   100.0% 8 0 0   100.0% 0 0   100.0%
travels\models.py TravelStates   0.0% 1 1 0   100.0% 0 0   0.0%
travels\models.py TravelStates.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
travels\models.py Travel   76.9% 13 3 0   70.0% 10 3   73.9%
travels\models.py Travel.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
travels\models.py PickUpPoints   100.0% 0 0 0   100.0% 0 0   100.0%
travels\models.py PickUpPoints.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
travels\models.py UsersDenied   100.0% 0 0 0   100.0% 0 0   100.0%
travels\models.py UsersDenied.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
travels\models.py RequestStates   0.0% 1 1 0   100.0% 0 0   0.0%
travels\models.py RequestStates.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
travels\models.py RequestTravels   100.0% 0 0 0   100.0% 0 0   100.0%
travels\models.py RequestTravels.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
travels\models.py (no class)   100.0% 73 0 0   100.0% 0 0   100.0%
travels\services\__init__.py (no class)   100.0% 0 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py TravelDomainError   100.0% 0 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py SeatsFullError   100.0% 2 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py RequestOwnTravelError   100.0% 0 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py AlreadyRequestedError   100.0% 0 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py InvalidRequestStatusError   100.0% 2 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py InvalidStatusTransitionError   100.0% 3 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py StatusNotRequestableError   100.0% 3 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py PassengerNotFoundError   100.0% 2 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py PassengerNotInTravelError   100.0% 2 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py InvalidValidationCodeError   100.0% 2 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py PassengerAlreadyValidatedError   100.0% 2 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py PassengerNotAcceptedError   100.0% 2 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py TravelIsNotPunctualError   100.0% 0 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py PeriodicSeatsReductionError   100.0% 0 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py PeriodicDeniedUsersError   100.0% 0 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py PickUpPointNotFoundError   100.0% 2 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py NotTravelOwnerError   100.0% 2 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py SeatsBelowOccupiedError   100.0% 3 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py DateChangeWithOccupiedSeatsError   100.0% 0 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py VehicleNotFoundError   100.0% 0 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py VehicleSeatsInsufficientError   100.0% 0 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py SeriesVehicleSeatsInsufficientError   100.0% 0 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py EndDateRequiredError   100.0% 0 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py InvalidPeriodicIntervalError   100.0% 0 0 0   100.0% 0 0   100.0%
travels\services\exceptions.py (no class)   100.0% 49 0 0   100.0% 0 0   100.0%
travels\services\travel_service.py TravelService   98.1% 375 7 0   93.4% 166 11   96.7%
travels\services\travel_service.py (no class)   100.0% 64 0 0   100.0% 0 0   100.0%
users\__init__.py (no class)   100.0% 0 0 0   100.0% 0 0   100.0%
users\admin.py UserTypeAdmin   100.0% 0 0 0   100.0% 0 0   100.0%
users\admin.py PrefTypesAdmin   100.0% 0 0 0   100.0% 0 0   100.0%
users\admin.py CriteriaAdmin   100.0% 0 0 0   100.0% 0 0   100.0%
users\admin.py EnvTypesAdmin   100.0% 0 0 0   100.0% 0 0   100.0%
users\admin.py (no class)   100.0% 19 0 0   100.0% 0 0   100.0%
users\apps.py UsersConfig   100.0% 1 0 0   100.0% 0 0   100.0%
users\apps.py (no class)   100.0% 5 0 0   100.0% 0 0   100.0%
users\management\__init__.py (no class)   100.0% 0 0 0   100.0% 0 0   100.0%
users\management\commands\__init__.py (no class)   100.0% 0 0 0   100.0% 0 0   100.0%
users\management\commands\hash_passwords.py Command   0.0% 10 10 0   0.0% 4 0   0.0%
users\management\commands\hash_passwords.py (no class)   0.0% 5 5 0   100.0% 0 0   0.0%
users\models.py UserType   100.0% 1 0 0   100.0% 0 0   100.0%
users\models.py UserType.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
users\models.py Users   100.0% 11 0 0   100.0% 4 0   100.0%
users\models.py Users.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
users\models.py Notifications   0.0% 1 1 0   100.0% 0 0   0.0%
users\models.py Notifications.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
users\models.py Device   0.0% 1 1 0   100.0% 0 0   0.0%
users\models.py Device.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
users\models.py PrefTypes   0.0% 1 1 0   100.0% 0 0   0.0%
users\models.py PrefTypes.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
users\models.py Preferences   100.0% 0 0 0   100.0% 0 0   100.0%
users\models.py Preferences.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
users\models.py Criteria   0.0% 1 1 0   100.0% 0 0   0.0%
users\models.py Criteria.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
users\models.py DriverRatings   100.0% 0 0 0   100.0% 0 0   100.0%
users\models.py DriverRatings.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
users\models.py EnvTypes   0.0% 1 1 0   100.0% 0 0   0.0%
users\models.py EnvTypes.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
users\models.py Vehicles   0.0% 1 1 0   100.0% 0 0   0.0%
users\models.py Vehicles.Meta   100.0% 0 0 0   100.0% 0 0   100.0%
users\models.py (no class)   98.5% 134 2 0   75.0% 8 2   97.2%
users\services\__init__.py (no class)   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\auth_service.py AuthService   100.0% 180 0 0   100.0% 74 0   100.0%
users\services\auth_service.py (no class)   100.0% 82 0 0   100.0% 0 0   100.0%
users\services\exceptions.py UserDomainError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py UserNotFoundError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py IncorrectPasswordError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py NoUpcomingTravelsError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py RequestTravelNotValidatedError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py RequestStatusMissingError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py VehicleSeatsInsufficientError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py VehicleHasActiveTravelsError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py AuthDomainError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py InvalidTokenError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py TokenExpiredError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py EmailDeliveryError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py InvalidGoogleTokenError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py GoogleEmailMissingError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py UnverifiedEmailError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py EmailAlreadyRegisteredError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py EmailDomainNotAllowedError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py UsernameAlreadyTakenError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py InvalidUsernameError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py InvalidUserTypeError   100.0% 0 0 0   100.0% 0 0   100.0%
users\services\exceptions.py (no class)   100.0% 40 0 0   100.0% 0 0   100.0%
users\services\user_service.py UserService   98.4% 128 2 0   98.0% 50 1   98.3%
users\services\user_service.py (no class)   100.0% 50 0 0   100.0% 0 0   100.0%
users\signals.py (no class)   96.4% 28 1 0   90.0% 10 1   94.7%
Total     96.1% 3310 128 0   90.0% 632 57   95.2%

No items found using the specified filter.