Пример #1
0
 def test_parse(self):
     x = NamespacedOptionParser(['-c:1,3', '4'])
     self.assertEqual(x.namespaces.get('1,3'), {'-c': '4'})
     x = NamespacedOptionParser([
         '-c:jerry,elaine', '5', '--loglevel:kramer=DEBUG', '--flag',
         '--logfile=foo', '-Q', 'bar', 'a', 'b', '--',
         '.disable_rate_limits=1'
     ])
     self.assertEqual(x.options, {
         '--logfile': 'foo',
         '-Q': 'bar',
         '--flag': None
     })
     self.assertEqual(x.values, ['a', 'b'])
     self.assertEqual(x.namespaces.get('jerry,elaine'), {'-c': '5'})
     self.assertEqual(x.namespaces.get('kramer'), {'--loglevel': 'DEBUG'})
     self.assertEqual(x.passthrough, '-- .disable_rate_limits=1')
Пример #2
0
 def test_parse(self):
     x = NamespacedOptionParser(["-c:1,3", "4"])
     self.assertEqual(x.namespaces.get("1,3"), {"-c": "4"})
     x = NamespacedOptionParser([
         "-c:jerry,elaine", "5", "--loglevel:kramer=DEBUG", "--flag",
         "--logfile=foo", "-Q", "bar", "a", "b", "--",
         ".disable_rate_limits=1"
     ])
     self.assertEqual(x.options, {
         "--logfile": "foo",
         "-Q": "bar",
         "--flag": None
     })
     self.assertEqual(x.values, ["a", "b"])
     self.assertEqual(x.namespaces.get("jerry,elaine"), {"-c": "5"})
     self.assertEqual(x.namespaces.get("kramer"), {"--loglevel": "DEBUG"})
     self.assertEqual(x.passthrough, "-- .disable_rate_limits=1")
Пример #3
0
    def test_getpids(self, gethostname, Pidfile):
        gethostname.return_value = 'e.com'
        self.prepare_pidfile_for_getpids(Pidfile)
        callback = Mock()

        p = NamespacedOptionParser(['foo', 'bar', 'baz'])
        nodes = self.t.getpids(p, 'celeryd', callback=callback)
        self.assertEqual(nodes, [
            ('foo.e.com',
             ('celeryd', '[email protected]', '-n foo.e.com', ''), 10),
            ('bar.e.com',
             ('celeryd', '[email protected]', '-n bar.e.com', ''), 11),
        ])
        self.assertTrue(callback.called)
        callback.assert_called_with(
            'baz.e.com',
            ['celeryd', '[email protected]', '-n baz.e.com', ''],
            None,
        )
        self.assertIn('DOWN', self.fh.getvalue())

        # without callback, should work
        nodes = self.t.getpids(p, 'celeryd', callback=None)
Пример #4
0
    def test_parse(self, gethostname):
        p = NamespacedOptionParser([
            '-c:jerry,elaine', '5', '--loglevel:kramer=DEBUG', '--flag',
            '--logfile=foo', '-Q', 'bar', 'jerry', 'elaine', 'kramer', '--',
            '.disable_rate_limits=1'
        ])
        it = multi_args(p,
                        cmd='COMMAND',
                        append='*AP*',
                        prefix='*P*',
                        suffix='*S*')
        names = list(it)
        self.assertEqual(names[0][0:2], ('*P*jerry*S*', [
            'COMMAND',
            '-n *P*jerry*S*',
            '-Q bar',
            '-c 5',
            '--flag',
            '--logfile=foo',
            '-- .disable_rate_limits=1',
            '*AP*',
        ]))
        self.assertEqual(names[1][0:2], ('*P*elaine*S*', [
            'COMMAND',
            '-n *P*elaine*S*',
            '-Q bar',
            '-c 5',
            '--flag',
            '--logfile=foo',
            '-- .disable_rate_limits=1',
            '*AP*',
        ]))
        self.assertEqual(names[2][0:2], ('*P*kramer*S*', [
            'COMMAND',
            '--loglevel=DEBUG',
            '-n *P*kramer*S*',
            '-Q bar',
            '--flag',
            '--logfile=foo',
            '-- .disable_rate_limits=1',
            '*AP*',
        ]))
        expand = names[0][2]
        self.assertEqual(expand('%h'), '*P*jerry*S*')
        self.assertEqual(expand('%n'), 'jerry')
        names2 = list(
            multi_args(p, cmd='COMMAND', append='', prefix='*P*',
                       suffix='*S*'))
        self.assertEqual(names2[0][1][-1], '-- .disable_rate_limits=1')

        gethostname.return_value = 'example.com'
        p2 = NamespacedOptionParser(['10', '-c:1', '5'])
        names3 = list(multi_args(p2, cmd='COMMAND'))
        self.assertEqual(len(names3), 10)
        self.assertEqual(names3[0][0:2],
                         ('celery1.example.com',
                          ['COMMAND', '-n celery1.example.com', '-c 5', '']))
        for i, worker in enumerate(names3[1:]):
            self.assertEqual(worker[0:2], ('celery%s.example.com' % (i + 2), [
                'COMMAND', '-n celery%s.example.com' % (i + 2), ''
            ]))

        names4 = list(multi_args(p2, cmd='COMMAND', suffix='""'))
        self.assertEqual(len(names4), 10)
        self.assertEqual(names4[0][0:2],
                         ('celery1', ['COMMAND', '-n celery1', '-c 5', '']))

        p3 = NamespacedOptionParser(['foo', '-c:foo', '5'])
        names5 = list(multi_args(p3, cmd='COMMAND', suffix='""'))
        self.assertEqual(names5[0][0:2],
                         ('foo', ['COMMAND', '-n foo', '-c 5', '']))
Пример #5
0
    def test_parse(self, gethostname):
        p = NamespacedOptionParser([
            "-c:jerry,elaine", "5", "--loglevel:kramer=DEBUG", "--flag",
            "--logfile=foo", "-Q", "bar", "jerry", "elaine", "kramer", "--",
            ".disable_rate_limits=1"
        ])
        it = multi_args(p,
                        cmd="COMMAND",
                        append="*AP*",
                        prefix="*P*",
                        suffix="*S*")
        names = list(it)
        self.assertEqual(names[0][0:2], ('*P*jerry*S*', [
            'COMMAND',
            '-n *P*jerry*S*',
            '-Q bar',
            '-c 5',
            '--flag',
            '--logfile=foo',
            '-- .disable_rate_limits=1',
            '*AP*',
        ]))
        self.assertEqual(names[1][0:2], ('*P*elaine*S*', [
            'COMMAND',
            '-n *P*elaine*S*',
            '-Q bar',
            '-c 5',
            '--flag',
            '--logfile=foo',
            '-- .disable_rate_limits=1',
            '*AP*',
        ]))
        self.assertEqual(names[2][0:2], ('*P*kramer*S*', [
            'COMMAND',
            '--loglevel=DEBUG',
            '-n *P*kramer*S*',
            '-Q bar',
            '--flag',
            '--logfile=foo',
            '-- .disable_rate_limits=1',
            '*AP*',
        ]))
        expand = names[0][2]
        self.assertEqual(expand("%h"), "*P*jerry*S*")
        self.assertEqual(expand("%n"), "jerry")
        names2 = list(
            multi_args(p, cmd="COMMAND", append="", prefix="*P*",
                       suffix="*S*"))
        self.assertEqual(names2[0][1][-1], '-- .disable_rate_limits=1')

        gethostname.return_value = 'example.com'
        p2 = NamespacedOptionParser(["10", "-c:1", "5"])
        names3 = list(multi_args(p2, cmd="COMMAND"))
        self.assertEqual(len(names3), 10)
        self.assertEqual(names3[0][0:2],
                         ('celery1.example.com',
                          ['COMMAND', '-n celery1.example.com', '-c 5', '']))
        for i, worker in enumerate(names3[1:], 2):
            self.assertEqual(worker[0:2], ('celery%s.example.com' % i, [
                'COMMAND', '-n celery%s.example.com' % i, ''
            ]))

        names4 = list(multi_args(p2, cmd="COMMAND", suffix='""'))
        self.assertEqual(len(names4), 10)
        self.assertEqual(names4[0][0:2],
                         ('celery1', ['COMMAND', '-n celery1', '-c 5', '']))

        p3 = NamespacedOptionParser(["foo", "-c:foo", "5"])
        names5 = list(multi_args(p3, cmd="COMMAND", suffix='""'))
        self.assertEqual(names5[0][0:2],
                         ('foo', ['COMMAND', '-n foo', '-c 5', '']))