def test_config_default_report(): jobs, _ = config.parse_config_string(""" defaults: onFailure: report: mail: from: [email protected] to: [email protected] smtpHost: 127.0.0.1 smtpPort: 10025 jobs: - name: test-03 command: foo schedule: minute: "*" captureStderr: true """) assert len(jobs) == 1 job = jobs[0] assert job.onFailure == ({ "report": { "mail": { "from": "*****@*****.**", "smtpHost": "127.0.0.1", "smtpPort": 10025, "to": "*****@*****.**", "body": (config.DEFAULT_CONFIG["onFailure"]["report"]["mail"]["body"]), "subject": (config.DEFAULT_CONFIG["onFailure"]["report"] ["mail"]["subject"]), "username": None, "password": { "fromEnvVar": None, "fromFile": None, "value": None, }, "tls": False, "starttls": False, }, "sentry": (config.DEFAULT_CONFIG["onFailure"]["report"]["sentry"]), }, "retry": { "backoffMultiplier": 2, "initialDelay": 1, "maximumDelay": 300, "maximumRetries": 0, }, })
def test_config_default_report_override(): # even if the default says send email on error, it should be possible for # specific jobs to override the default and disable sending email. jobs = config.parse_config_string(''' defaults: onFailure: report: mail: from: [email protected] to: [email protected] smtpHost: 127.0.0.1 smtpPort: 10025 jobs: - name: test-03 command: foo schedule: minute: "*" captureStderr: true onFailure: report: mail: to: from: ''') assert len(jobs) == 1 job = jobs[0] assert job.onFailure == ({ 'report': { 'mail': { 'from': None, 'smtpHost': '127.0.0.1', 'smtpPort': 10025, 'to': None, 'body': (config.DEFAULT_CONFIG['onFailure']['report']['mail']['body']), 'subject': (config.DEFAULT_CONFIG['onFailure']['report'] ['mail']['subject']), }, 'sentry': (config.DEFAULT_CONFIG['onFailure']['report']['sentry']), }, 'retry': { 'backoffMultiplier': 2, 'initialDelay': 1, 'maximumDelay': 300, 'maximumRetries': 0 } })
def test_config_default_report_override(): # even if the default says send email on error, it should be possible for # specific jobs to override the default and disable sending email. jobs, _ = config.parse_config_string(""" defaults: onFailure: report: mail: from: [email protected] to: [email protected] smtpHost: 127.0.0.1 smtpPort: 10025 jobs: - name: test-03 command: foo schedule: minute: "*" captureStderr: true onFailure: report: mail: to: from: """) assert len(jobs) == 1 job = jobs[0] assert job.onFailure == ({ "report": { "mail": { "from": None, "smtpHost": "127.0.0.1", "smtpPort": 10025, "to": None, "body": (config.DEFAULT_CONFIG["onFailure"]["report"]["mail"]["body"]), "subject": (config.DEFAULT_CONFIG["onFailure"]["report"] ["mail"]["subject"]), }, "sentry": (config.DEFAULT_CONFIG["onFailure"]["report"]["sentry"]), }, "retry": { "backoffMultiplier": 2, "initialDelay": 1, "maximumDelay": 300, "maximumRetries": 0, }, })
def test_config_default_report(): jobs = config.parse_config_string(''' defaults: onFailure: report: mail: from: [email protected] to: [email protected] smtpHost: 127.0.0.1 smtpPort: 10025 jobs: - name: test-03 command: foo schedule: minute: "*" captureStderr: true ''') assert len(jobs) == 1 job = jobs[0] assert job.onFailure == ({ 'report': { 'mail': { 'from': '*****@*****.**', 'smtpHost': '127.0.0.1', 'smtpPort': 10025, 'to': '*****@*****.**', 'body': (config.DEFAULT_CONFIG['onFailure']['report']['mail']['body']), 'subject': (config.DEFAULT_CONFIG['onFailure']['report'] ['mail']['subject']), }, 'sentry': (config.DEFAULT_CONFIG['onFailure']['report']['sentry']), }, 'retry': { 'backoffMultiplier': 2, 'initialDelay': 1, 'maximumDelay': 300, 'maximumRetries': 0 } })
def test_config_default_report(): jobs = config.parse_config_string(''' defaults: onFailure: report: mail: from: [email protected] to: [email protected] smtpHost: 127.0.0.1 smtpPort: 10025 jobs: - name: test-03 command: foo schedule: minute: "*" captureStderr: true ''') assert len(jobs) == 1 job = jobs[0] assert job.onFailure == ({ 'report': { 'mail': { 'from': '*****@*****.**', 'smtpHost': '127.0.0.1', 'smtpPort': 10025, 'smtp_host': None, 'smtp_port': 25, 'to': '*****@*****.**' }, 'sentry': { 'dsn': { 'fromEnvVar': None, 'fromFile': None, 'value': None } } }, 'retry': { 'backoffMultiplier': 2, 'initialDelay': 1, 'maximumDelay': 300, 'maximumRetries': 0 } })
def __init__(self, config_arg: Optional[str], *, config_yaml: Optional[str]=None ) -> None: # list of cron jobs we /want/ to run self.cron_jobs = OrderedDict() # type: Dict[str, JobConfig] # list of cron jobs already running # name -> list of RunningJob self.running_jobs = \ defaultdict(list) # type: Dict[str, List[RunningJob]] self.config_arg = config_arg if config_arg is not None: self.update_config() if config_yaml is not None: # config_yaml is for unit testing config = parse_config_string(config_yaml) self.cron_jobs = OrderedDict((job.name, job) for job in config) self._wait_for_running_jobs_task = None # type: Optional[asyncio.Task] self._stop_event = asyncio.Event() self._jobs_running = asyncio.Event() self.retry_state = {} # type: Dict[str, JobRetryState]
def test_empty_config1(): jobs = config.parse_config_string('') assert len(jobs) == 0
def test_empty_config1(): jobs, web_config = config.parse_config_string("") assert len(jobs) == 0 assert web_config is None