Coverage for functions \ flipdare \ task \ command \ default_command.py: 86%

14 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2026-05-08 12:22 +1000

1#!/usr/bin/env python 

2# Copyright (c) 2026 Flipdare Pty Ltd. All rights reserved. 

3# 

4# This file is part of Flipdare's proprietary software and contains 

5# confidential and copyrighted material. Unauthorised copying, 

6# modification, distribution, or use of this file is strictly 

7# prohibited without prior written permission from Flipdare Pty Ltd. 

8# 

9# This software includes third-party components licensed under MIT, 

10# BSD, and Apache 2.0 licences. See THIRD_PARTY_NOTICES for details. 

11# 

12 

13 

14from collections.abc import Callable 

15from flipdare.result.output_result import OutputResult 

16from flipdare.task.command._base_command import BaseCommand 

17from flipdare.backend.app_logger import AppLogger 

18from flipdare.mailer.admin.command_email import CommandEmail 

19from flipdare.mailer.admin_mailer import AdminMailer 

20from flipdare.generated.schema.email.body.admin.command_email_schema import CommandEmailSchema 

21from flipdare.generated.shared.backend.app_job_type import AppJobType 

22from flipdare.util.time_util import TimeUtil 

23 

24 

25class DefaultCommand(BaseCommand[CommandEmailSchema]): 

26 def __init__( 

27 self, 

28 job_type: AppJobType, 

29 command_callback: Callable[[], None | OutputResult], 

30 app_logger: AppLogger | None = None, 

31 mailer: AdminMailer | None = None, 

32 ) -> None: 

33 super().__init__( 

34 job_type=job_type, 

35 schema_class=CommandEmailSchema, 

36 command_callback=command_callback, 

37 email_callback=self._build_template, 

38 app_logger=app_logger, 

39 mailer=mailer, 

40 ) 

41 

42 def _build_template( 

43 self, 

44 message: str, 

45 ex_error: Exception | None, 

46 ) -> CommandEmail: 

47 return CommandEmail( 

48 command_date=TimeUtil.formatted_now(), 

49 command_name=self.command_name, 

50 description=self.command_description, 

51 message=message, 

52 ex_error=ex_error, 

53 )