Răsfoiți Sursa

qubespolicy: allow spaces in action arguments

This is natural to write space after coma.
Marek Marczykowski-Górecki 7 ani în urmă
părinte
comite
a937bb173a
2 a modificat fișierele cu 5 adăugiri și 4 ștergeri
  1. 2 2
      qubespolicy/__init__.py
  2. 3 2
      qubespolicy/tests/__init__.py

+ 2 - 2
qubespolicy/__init__.py

@@ -121,11 +121,11 @@ class PolicyRule(object):
         self.filename = filename
 
         try:
-            self.source, self.target, self.full_action = line.split()
+            self.source, self.target, self.full_action = line.split(maxsplit=2)
         except ValueError:
             raise PolicySyntaxError(filename, lineno, 'wrong number of fields')
 
-        (action, *params) = self.full_action.split(',')
+        (action, *params) = self.full_action.replace(' ', '').split(',')
         try:
             self.action = Action[action]
         except KeyError:

+ 3 - 2
qubespolicy/tests/__init__.py

@@ -155,15 +155,16 @@ class TC_00_PolicyRule(qubes.tests.QubesTestCase):
         self.assertIsNone(line.default_target)
 
     def test_021_line_simple(self):
+        # also check spaces in action field
         line = qubespolicy.PolicyRule(
-            '$tag:tag1 $type:AppVM ask,target=test-vm2,user=user',
+            '$tag:tag1 $type:AppVM ask, target=test-vm2, user=user',
             'filename', 12)
         self.assertEqual(line.filename, 'filename')
         self.assertEqual(line.lineno, 12)
         self.assertEqual(line.action, qubespolicy.Action.ask)
         self.assertEqual(line.source, '$tag:tag1')
         self.assertEqual(line.target, '$type:AppVM')
-        self.assertEqual(line.full_action, 'ask,target=test-vm2,user=user')
+        self.assertEqual(line.full_action, 'ask, target=test-vm2, user=user')
         self.assertEqual(line.override_target, 'test-vm2')
         self.assertEqual(line.override_user, 'user')
         self.assertIsNone(line.default_target)