示例#1
0
class test_AppLoader(Case):

    def setUp(self):
        self.app = app_or_default()
        self.loader = AppLoader(app=self.app)

    def test_config_from_envvar(self, key='CELERY_HARNESS_CFG1'):
        self.assertFalse(self.loader.config_from_envvar('HDSAJIHWIQHEWQU',
                                                        silent=True))
        with self.assertRaises(ImproperlyConfigured):
            self.loader.config_from_envvar('HDSAJIHWIQHEWQU', silent=False)
        os.environ[key] = __name__ + '.object_config'
        self.assertTrue(self.loader.config_from_envvar(key))
        self.assertEqual(self.loader.conf['FOO'], 1)
        self.assertEqual(self.loader.conf['BAR'], 2)

        os.environ[key] = 'unknown_asdwqe.asdwqewqe'
        with self.assertRaises(ImportError):
            self.loader.config_from_envvar(key, silent=False)
        self.assertFalse(self.loader.config_from_envvar(key, silent=True))

        os.environ[key] = __name__ + '.dict_config'
        self.assertTrue(self.loader.config_from_envvar(key))
        self.assertEqual(self.loader.conf['FOO'], 10)
        self.assertEqual(self.loader.conf['BAR'], 20)

    def test_on_worker_init(self):
        prev, self.app.conf.CELERY_IMPORTS = \
                self.app.conf.CELERY_IMPORTS, ('subprocess', )
        try:
            sys.modules.pop('subprocess', None)
            self.loader.init_worker()
            self.assertIn('subprocess', sys.modules)
        finally:
            self.app.conf.CELERY_IMPORTS = prev
示例#2
0
class test_AppLoader(Case):
    def setUp(self):
        self.app = app_or_default()
        self.loader = AppLoader(app=self.app)

    def test_config_from_envvar(self, key="CELERY_HARNESS_CFG1"):
        self.assertFalse(self.loader.config_from_envvar("HDSAJIHWIQHEWQU", silent=True))
        with self.assertRaises(ImproperlyConfigured):
            self.loader.config_from_envvar("HDSAJIHWIQHEWQU", silent=False)
        os.environ[key] = __name__ + ".object_config"
        self.assertTrue(self.loader.config_from_envvar(key))
        self.assertEqual(self.loader.conf["FOO"], 1)
        self.assertEqual(self.loader.conf["BAR"], 2)

        os.environ[key] = "unknown_asdwqe.asdwqewqe"
        with self.assertRaises(ImportError):
            self.loader.config_from_envvar(key, silent=False)
        self.assertFalse(self.loader.config_from_envvar(key, silent=True))

        os.environ[key] = __name__ + ".dict_config"
        self.assertTrue(self.loader.config_from_envvar(key))
        self.assertEqual(self.loader.conf["FOO"], 10)
        self.assertEqual(self.loader.conf["BAR"], 20)

    def test_on_worker_init(self):
        self.loader.conf["CELERY_IMPORTS"] = ("subprocess",)
        sys.modules.pop("subprocess", None)
        self.loader.on_worker_init()
        self.assertIn("subprocess", sys.modules)
示例#3
0
class test_AppLoader(Case):
    def setUp(self):
        self.app = app_or_default()
        self.loader = AppLoader(app=self.app)

    def test_config_from_envvar(self, key="CELERY_HARNESS_CFG1"):
        self.assertFalse(
            self.loader.config_from_envvar("HDSAJIHWIQHEWQU", silent=True))
        with self.assertRaises(ImproperlyConfigured):
            self.loader.config_from_envvar("HDSAJIHWIQHEWQU", silent=False)
        os.environ[key] = __name__ + ".object_config"
        self.assertTrue(self.loader.config_from_envvar(key))
        self.assertEqual(self.loader.conf["FOO"], 1)
        self.assertEqual(self.loader.conf["BAR"], 2)

        os.environ[key] = "unknown_asdwqe.asdwqewqe"
        with self.assertRaises(ImportError):
            self.loader.config_from_envvar(key, silent=False)
        self.assertFalse(self.loader.config_from_envvar(key, silent=True))

        os.environ[key] = __name__ + ".dict_config"
        self.assertTrue(self.loader.config_from_envvar(key))
        self.assertEqual(self.loader.conf["FOO"], 10)
        self.assertEqual(self.loader.conf["BAR"], 20)

    def test_on_worker_init(self):
        self.loader.conf["CELERY_IMPORTS"] = ("subprocess", )
        sys.modules.pop("subprocess", None)
        self.loader.init_worker()
        self.assertIn("subprocess", sys.modules)
示例#4
0
class test_AppLoader(Case):
    def setUp(self):
        self.app = app_or_default()
        self.loader = AppLoader(app=self.app)

    def test_config_from_envvar(self, key='CELERY_HARNESS_CFG1'):
        self.assertFalse(
            self.loader.config_from_envvar('HDSAJIHWIQHEWQU', silent=True))
        with self.assertRaises(ImproperlyConfigured):
            self.loader.config_from_envvar('HDSAJIHWIQHEWQU', silent=False)
        os.environ[key] = __name__ + '.object_config'
        self.assertTrue(self.loader.config_from_envvar(key))
        self.assertEqual(self.loader.conf['FOO'], 1)
        self.assertEqual(self.loader.conf['BAR'], 2)

        os.environ[key] = 'unknown_asdwqe.asdwqewqe'
        with self.assertRaises(ImportError):
            self.loader.config_from_envvar(key, silent=False)
        self.assertFalse(self.loader.config_from_envvar(key, silent=True))

        os.environ[key] = __name__ + '.dict_config'
        self.assertTrue(self.loader.config_from_envvar(key))
        self.assertEqual(self.loader.conf['FOO'], 10)
        self.assertEqual(self.loader.conf['BAR'], 20)

    def test_on_worker_init(self):
        prev, self.app.conf.CELERY_IMPORTS = (self.app.conf.CELERY_IMPORTS,
                                              ('subprocess', ))
        try:
            sys.modules.pop('subprocess', None)
            self.loader.init_worker()
            self.assertIn('subprocess', sys.modules)
        finally:
            self.app.conf.CELERY_IMPORTS = prev
示例#5
0
class test_AppLoader(AppCase):
    def setup(self):
        self.loader = AppLoader(app=self.app)

    def test_on_worker_init(self):
        self.app.conf.CELERY_IMPORTS = ('subprocess', )
        sys.modules.pop('subprocess', None)
        self.loader.init_worker()
        self.assertIn('subprocess', sys.modules)
示例#6
0
class test_AppLoader(AppCase):
    def setup(self):
        self.loader = AppLoader(app=self.app)

    def test_on_worker_init(self):
        self.app.conf.imports = ("subprocess",)
        sys.modules.pop("subprocess", None)
        self.loader.init_worker()
        self.assertIn("subprocess", sys.modules)
示例#7
0
class test_AppLoader:
    def setup(self):
        self.loader = AppLoader(app=self.app)

    def test_on_worker_init(self):
        self.app.conf.imports = ('subprocess', )
        sys.modules.pop('subprocess', None)
        self.loader.init_worker()
        assert 'subprocess' in sys.modules
示例#8
0
class test_AppLoader(AppCase):

    def setup(self):
        self.loader = AppLoader(app=self.app)

    def test_on_worker_init(self):
        self.app.conf.CELERY_IMPORTS = ('subprocess', )
        sys.modules.pop('subprocess', None)
        self.loader.init_worker()
        self.assertIn('subprocess', sys.modules)
示例#9
0
class test_AppLoader:

    def setup(self):
        self.loader = AppLoader(app=self.app)

    def test_on_worker_init(self):
        self.app.conf.imports = ('subprocess',)
        sys.modules.pop('subprocess', None)
        self.loader.init_worker()
        assert 'subprocess' in sys.modules
示例#10
0
class test_AppLoader(AppCase):
    def setup(self):
        self.loader = AppLoader(app=self.app)

    def test_on_worker_init(self):
        prev, self.app.conf.CELERY_IMPORTS = (self.app.conf.CELERY_IMPORTS, ("subprocess",))
        try:
            sys.modules.pop("subprocess", None)
            self.loader.init_worker()
            self.assertIn("subprocess", sys.modules)
        finally:
            self.app.conf.CELERY_IMPORTS = prev
示例#11
0
class test_AppLoader(Case):

    def setUp(self):
        self.app = app_or_default()
        self.loader = AppLoader(app=self.app)

    def test_on_worker_init(self):
        prev, self.app.conf.CELERY_IMPORTS = (
            self.app.conf.CELERY_IMPORTS, ('subprocess', ))
        try:
            sys.modules.pop('subprocess', None)
            self.loader.init_worker()
            self.assertIn('subprocess', sys.modules)
        finally:
            self.app.conf.CELERY_IMPORTS = prev
示例#12
0
class test_AppLoader(Case):

    def setUp(self):
        self.app = app_or_default()
        self.loader = AppLoader(app=self.app)

    def test_on_worker_init(self):
        prev, self.app.conf.CELERY_IMPORTS = (
            self.app.conf.CELERY_IMPORTS, ('subprocess', ))
        try:
            sys.modules.pop('subprocess', None)
            self.loader.init_worker()
            self.assertIn('subprocess', sys.modules)
        finally:
            self.app.conf.CELERY_IMPORTS = prev
示例#13
0
    def test_startup_info(self):
        worker = self.Worker(app=self.app)
        worker.on_start()
        self.assertTrue(worker.startup_info())
        worker.loglevel = logging.DEBUG
        self.assertTrue(worker.startup_info())
        worker.loglevel = logging.INFO
        self.assertTrue(worker.startup_info())
        worker.autoscale = 13, 10
        self.assertTrue(worker.startup_info())

        prev_loader = self.app.loader
        worker = self.Worker(app=self.app, queues='foo,bar,baz,xuzzy,do,re,mi')
        self.app.loader = Mock()
        self.app.loader.__module__ = 'acme.baked_beans'
        self.assertTrue(worker.startup_info())

        self.app.loader = Mock()
        self.app.loader.__module__ = 'celery.loaders.foo'
        self.assertTrue(worker.startup_info())

        from celery.loaders.app import AppLoader
        self.app.loader = AppLoader(app=self.app)
        self.assertTrue(worker.startup_info())

        self.app.loader = prev_loader
        worker.send_events = True
        self.assertTrue(worker.startup_info())

        # test when there are too few output lines
        # to draft the ascii art onto
        prev, cd.ARTLINES = cd.ARTLINES, ['the quick brown fox']
        self.assertTrue(worker.startup_info())
    def test_startup_info(self, stdout, stderr):
        worker = self.Worker(app=self.app)
        worker.on_start()
        self.assertTrue(worker.startup_info())
        worker.loglevel = logging.DEBUG
        self.assertTrue(worker.startup_info())
        worker.loglevel = logging.INFO
        self.assertTrue(worker.startup_info())

        prev_loader = self.app.loader
        worker = self.Worker(app=self.app, queues='foo,bar,baz,xuzzy,do,re,mi')
        with patch('celery.apps.worker.qualname') as qualname:
            qualname.return_value = 'acme.backed_beans.Loader'
            self.assertTrue(worker.startup_info())

        with patch('celery.apps.worker.qualname') as qualname:
            qualname.return_value = 'celery.loaders.Loader'
            self.assertTrue(worker.startup_info())

        from celery.loaders.app import AppLoader
        self.app.loader = AppLoader(app=self.app)
        self.assertTrue(worker.startup_info())

        self.app.loader = prev_loader
        worker.send_events = True
        self.assertTrue(worker.startup_info())

        # test when there are too few output lines
        # to draft the ascii art onto
        prev, cd.ARTLINES = cd.ARTLINES, ['the quick brown fox']
        try:
            self.assertTrue(worker.startup_info())
        finally:
            cd.ARTLINES = prev
示例#15
0
    def test_startup_info(self):
        worker = self.Worker()
        worker.on_start()
        self.assertTrue(worker.startup_info())
        worker.loglevel = logging.DEBUG
        self.assertTrue(worker.startup_info())
        worker.loglevel = logging.INFO
        self.assertTrue(worker.startup_info())
        worker.autoscale = 13, 10
        self.assertTrue(worker.startup_info())

        app = Celery(set_as_current=False)
        worker = self.Worker(app=app, queues='foo,bar,baz,xuzzy,do,re,mi')
        prev, app.loader = app.loader, Mock()
        try:
            app.loader.__module__ = 'acme.baked_beans'
            self.assertTrue(worker.startup_info())
        finally:
            app.loader = prev

        prev, app.loader = app.loader, Mock()
        try:
            app.loader.__module__ = 'celery.loaders.foo'
            self.assertTrue(worker.startup_info())
        finally:
            app.loader = prev

        from celery.loaders.app import AppLoader
        prev, app.loader = app.loader, AppLoader()
        try:
            self.assertTrue(worker.startup_info())
        finally:
            app.loader = prev

        worker.send_events = True
        self.assertTrue(worker.startup_info())

        # test when there are too few output lines
        # to draft the ascii art onto
        prev, cd.ARTLINES = (cd.ARTLINES,
            ['the quick brown fox'])
        self.assertTrue(worker.startup_info())
示例#16
0
    def test_startup_info(self):
        worker = self.Worker()
        worker.run()
        self.assertTrue(worker.startup_info())
        worker.loglevel = logging.DEBUG
        self.assertTrue(worker.startup_info())
        worker.loglevel = logging.INFO
        self.assertTrue(worker.startup_info())
        worker.autoscale = 13, 10
        self.assertTrue(worker.startup_info())

        worker = self.Worker(queues="foo,bar,baz,xuzzy,do,re,mi")
        app = worker.app
        prev, app.loader = app.loader, Mock()
        try:
            app.loader.__module__ = "acme.baked_beans"
            self.assertTrue(worker.startup_info())
        finally:
            app.loader = prev

        prev, app.loader = app.loader, Mock()
        try:
            app.loader.__module__ = "celery.loaders.foo"
            self.assertTrue(worker.startup_info())
        finally:
            app.loader = prev

        from celery.loaders.app import AppLoader
        prev, app.loader = app.loader, AppLoader()
        try:
            self.assertTrue(worker.startup_info())
        finally:
            app.loader = prev

        worker.send_events = True
        self.assertTrue(worker.startup_info())

        # test when there are too few output lines
        # to draft the ascii art onto
        prev, cd.ARTLINES = (cd.ARTLINES, ["the quick brown fox"])
        self.assertTrue(worker.startup_info())
    def test_startup_info(self):
        with mock.stdouts():
            worker = self.Worker(app=self.app)
            worker.on_start()
            assert worker.startup_info()
            worker.loglevel = logging.DEBUG
            assert worker.startup_info()
            worker.loglevel = logging.INFO
            assert worker.startup_info()
            worker.autoscale = 13, 10
            assert worker.startup_info()

            prev_loader = self.app.loader
            worker = self.Worker(
                app=self.app,
                queues='foo,bar,baz,xuzzy,do,re,mi',
            )
            with patch('celery.apps.worker.qualname') as qualname:
                qualname.return_value = 'acme.backed_beans.Loader'
                assert worker.startup_info()

            with patch('celery.apps.worker.qualname') as qualname:
                qualname.return_value = 'celery.loaders.Loader'
                assert worker.startup_info()

            from celery.loaders.app import AppLoader
            self.app.loader = AppLoader(app=self.app)
            assert worker.startup_info()

            self.app.loader = prev_loader
            worker.task_events = True
            assert worker.startup_info()

            # test when there are too few output lines
            # to draft the ascii art onto
            prev, cd.ARTLINES = cd.ARTLINES, ['the quick brown fox']
            try:
                assert worker.startup_info()
            finally:
                cd.ARTLINES = prev
示例#18
0
 def setup(self):
     self.loader = AppLoader(app=self.app)
示例#19
0
 def setUp(self):
     self.app = app_or_default()
     self.loader = AppLoader(app=self.app)
示例#20
0
 def setup(self):
     self.loader = AppLoader(app=self.app)