コード例 #1
0
    def test_with_no_data(self):
        yaml = YamlConfigurationFile()
        self.assertIsNotNone(yaml)
        yaml.load_from_text("""
        bot:
        """, ConsoleConfiguration(), ".")

        bot_config = yaml.get_section("console")

        scheduler_config = SchedulerConfiguration()
        scheduler_config.load_config_section(yaml, bot_config, ".")

        self.assertIsNone(scheduler_config.name)
        self.assertEqual(0, scheduler_config.debug_level)
        self.assertFalse(scheduler_config.add_listeners)
        self.assertFalse(scheduler_config.remove_all_jobs)

        self.assertIsNone(scheduler_config.jobstore)
        self.assertIsNone(scheduler_config.threadpool)
        self.assertIsNone(scheduler_config.processpool)
        self.assertIsNone(scheduler_config.job_defaults)
コード例 #2
0
    def test_create_scheduler_config_redis(self):
        yaml = YamlConfigurationFile()
        self.assertIsNotNone(yaml)
        yaml.load_from_text(
            """
        console:
          scheduler:
            name: Scheduler1
            debug_level: 0
            add_listeners: True
            remove_all_jobs: True

            jobstore:
                name:   redis

                redis:
                    jobs_key: example.jobs
                    run_times_key: example.run_times

            threadpool:
                max_workers: 20

            processpool:
                max_workers: 5

            job_defaults:
                coalesce: False
                max_instances: 3

        """, ConsoleConfiguration(), ".")

        bot_config = yaml.get_section("console")

        scheduler_config = SchedulerConfiguration()
        scheduler_config.load_config_section(yaml, bot_config, ".")

        config = scheduler_config.create_scheduler_config()
        self.assertIsNotNone(config)
コード例 #3
0
    def test_defaults(self):
        config = SchedulerConfiguration()
        data = {}
        config.to_yaml(data, True)

        SchedulerConfigurationTests.assert_defaults(self, data)
コード例 #4
0
 def test_scheduled_unknown(self):
     client = MockClient()
     scheduler1 = ProgramyScheduler(client, SchedulerConfiguration())
     scheduler1.scheduled("user1", "client1", "UNKNOWN", "Hello")
     self.assertIsNone(client._response)
コード例 #5
0
 def test_scheduled_srai(self):
     client = MockClient()
     scheduler1 = ProgramyScheduler(client, SchedulerConfiguration())
     scheduler1.scheduled("user1", "client1", "SRAI", "Hello")
     self.assertEquals("Mock Response", client._response)
コード例 #6
0
 def test_scheduled_text(self):
     client = MockClient()
     scheduler1 = ProgramyScheduler(client, SchedulerConfiguration())
     scheduler1.scheduled("user1", "client1", "TEXT", "Hello")
     self.assertEquals("Hello", client._response)
コード例 #7
0
 def test_init_default_config(self):
     config = SchedulerConfiguration()
     self.assertIsNotNone(config)
     scheduler = ProgramyScheduler(self._test_client, config)
     self.assertIsNotNone(scheduler)
     self.assertIsInstance(scheduler._scheduler, BackgroundScheduler)
コード例 #8
0
    def test_with_data(self):
        yaml = YamlConfigurationFile()
        self.assertIsNotNone(yaml)
        yaml.load_from_text(
            """
        console:
          scheduler:
            name: Scheduler1
            debug_level: 0
            add_listeners: True
            remove_all_jobs: True

            jobstore:
                name:   mongo

                mongo:
                    collection: example_jobs

                redis:
                    jobs_key: example.jobs
                    run_times_key: example.run_times

                sqlalchemy:
                    url: sqlite:///jobs.sqlite

            threadpool:
                max_workers: 20

            processpool:
                max_workers: 5

            job_defaults:
                coalesce: False
                max_instances: 3

        """, ConsoleConfiguration(), ".")

        bot_config = yaml.get_section("console")

        scheduler_config = SchedulerConfiguration()
        scheduler_config.load_config_section(yaml, bot_config, ".")

        self.assertEqual("Scheduler1", scheduler_config.name)
        self.assertEqual(0, scheduler_config.debug_level)
        self.assertTrue(scheduler_config.add_listeners)
        self.assertTrue(scheduler_config.remove_all_jobs)

        self.assertIsNotNone(scheduler_config.jobstore)
        self.assertIsNotNone(scheduler_config.jobstore.jobstore)
        self.assertEqual("example_jobs",
                         scheduler_config.jobstore.jobstore.collection)

        self.assertIsNotNone(scheduler_config.threadpool)
        self.assertEqual(20, scheduler_config.threadpool.max_workers)

        self.assertIsNotNone(scheduler_config.processpool)
        self.assertEqual(5, scheduler_config.processpool.max_workers)

        self.assertIsNotNone(scheduler_config.job_defaults)
        self.assertEqual(False, scheduler_config.job_defaults.coalesce)
        self.assertEqual(3, scheduler_config.job_defaults.max_instances)