forked from ungleich-public/cdist
Merge branch 'feature/expand-require-separator' into 'master'
Expand and split by consecutive require delimiters Closes #832 See merge request ungleich-public/cdist!930
This commit is contained in:
commit
a4a3b98568
3 changed files with 17 additions and 2 deletions
|
@ -25,6 +25,7 @@ import argparse
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import re
|
||||||
|
|
||||||
import cdist
|
import cdist
|
||||||
from cdist import core
|
from cdist import core
|
||||||
|
@ -389,12 +390,15 @@ class Emulator:
|
||||||
if "require" in self.env:
|
if "require" in self.env:
|
||||||
requirements = self.env['require']
|
requirements = self.env['require']
|
||||||
self.log.debug("reqs = " + requirements)
|
self.log.debug("reqs = " + requirements)
|
||||||
for requirement in requirements.split(" "):
|
for requirement in self._parse_require(requirements):
|
||||||
# Ignore empty fields - probably the only field anyway
|
# Ignore empty fields - probably the only field anyway
|
||||||
if len(requirement) == 0:
|
if len(requirement) == 0:
|
||||||
continue
|
continue
|
||||||
self.record_requirement(requirement)
|
self.record_requirement(requirement)
|
||||||
|
|
||||||
|
def _parse_require(self, require):
|
||||||
|
return re.split(r'[ \t\n]+', require)
|
||||||
|
|
||||||
def record_auto_requirements(self):
|
def record_auto_requirements(self):
|
||||||
"""An object shall automatically depend on all objects that it
|
"""An object shall automatically depend on all objects that it
|
||||||
defined in it's type manifest.
|
defined in it's type manifest.
|
||||||
|
|
|
@ -685,6 +685,16 @@ class EmulatorAlreadyExistingRequirementsWarnTestCase(test.CdistTestCase):
|
||||||
self.env['require'] = '__directory/spam'
|
self.env['require'] = '__directory/spam'
|
||||||
emu = emulator.Emulator(argv, env=self.env)
|
emu = emulator.Emulator(argv, env=self.env)
|
||||||
|
|
||||||
|
def test_parse_require(self):
|
||||||
|
require = " \t \n \t\t\n\t\na\tb\nc d \te\t\nf\ng\t "
|
||||||
|
expected = ['', 'a', 'b', 'c', 'd', 'e', 'f', 'g', '', ]
|
||||||
|
|
||||||
|
argv = ['__directory', 'spam']
|
||||||
|
emu = emulator.Emulator(argv, env=self.env)
|
||||||
|
requirements = emu._parse_require(require)
|
||||||
|
|
||||||
|
self.assertEqual(expected, requirements)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
import unittest
|
import unittest
|
||||||
|
|
|
@ -95,7 +95,8 @@ Dependencies
|
||||||
------------
|
------------
|
||||||
If you want to describe that something requires something else, just
|
If you want to describe that something requires something else, just
|
||||||
setup the variable "require" to contain the requirements. Multiple
|
setup the variable "require" to contain the requirements. Multiple
|
||||||
requirements can be added white space separated.
|
requirements can be added separated with (optionally consecutive)
|
||||||
|
delimiters including space, tab and newline.
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue