Selaa lähdekoodia

Merge pull request #3218 from ChillarAnand/bug

Use correct namespace when FQN are given
Ask Solem 8 vuotta sitten
vanhempi
commit
f9c66a92b4
2 muutettua tiedostoa jossa 22 lisäystä ja 1 poistoa
  1. 6 1
      celery/bin/multi.py
  2. 16 0
      celery/tests/bin/test_multi.py

+ 6 - 1
celery/bin/multi.py

@@ -458,9 +458,14 @@ def _args_for_node(p, name, prefix, suffix, cmd, append, options):
     name, nodename, expand = _get_nodename(
         name, prefix, suffix, options)
 
+    if nodename in p.namespaces:
+        ns = nodename
+    else:
+        ns = name
+
     argv = ([expand(cmd)] +
             [format_opt(opt, expand(value))
-                for opt, value in items(p.optmerge(name, options))] +
+                for opt, value in items(p.optmerge(ns, options))] +
             [p.passthrough])
     if append:
         argv.append(expand(append))

+ 16 - 0
celery/tests/bin/test_multi.py

@@ -149,6 +149,22 @@ class test_multi_args(AppCase):
              ['COMMAND', '-n foo@', '-c 5', '']),
         )
 
+        p4 = NamespacedOptionParser(['foo', '-Q:1', 'test'])
+        names6 = list(multi_args(p4, cmd='COMMAND', suffix='""'))
+        self.assertEqual(
+            names6[0][0:2],
+            ('foo@',
+             ['COMMAND', '-n foo@', '-Q test', '']),
+        )
+
+        p5 = NamespacedOptionParser(['foo@bar', '-Q:1', 'test'])
+        names7 = list(multi_args(p5, cmd='COMMAND', suffix='""'))
+        self.assertEqual(
+            names7[0][0:2],
+            ('foo@bar',
+             ['COMMAND', '-n foo@bar', '-Q test', '']),
+        )
+
 
 class test_MultiTool(AppCase):