[PATCH pykickstart] (v2) Add lang --addsupport option
Radek Vykydal
rvykydal at redhat.com
Mon Mar 25 14:48:35 UTC 2013
---
pykickstart/commands/lang.py | 34 ++++++++++++++++++++++++++++++++++
pykickstart/handlers/control.py | 2 +-
tests/commands/lang.py | 17 +++++++++++++++++
3 files changed, 52 insertions(+), 1 deletion(-)
diff --git a/pykickstart/commands/lang.py b/pykickstart/commands/lang.py
index dbdc852..b44bc82 100644
--- a/pykickstart/commands/lang.py
+++ b/pykickstart/commands/lang.py
@@ -52,3 +52,37 @@ class FC3_Lang(KickstartCommand):
self.lang = extra[0]
return self
+
+class F19_Lang(FC3_Lang):
+ removedKeywords = FC3_Lang.removedKeywords
+ removedAttrs = FC3_Lang.removedAttrs
+
+ def __init__(self, writePriority=0, *args, **kwargs):
+ FC3_Lang.__init__(self, writePriority, *args, **kwargs)
+ self.addsupport = kwargs.get("addsupport", [])
+
+ self.op = self._getParser()
+
+ def __str__(self):
+ s = FC3_Lang.__str__(self)
+ if s and self.addsupport:
+ s = s.rstrip()
+ s += " --addsupport=%s\n" % ",".join(self.addsupport)
+ return s
+
+ def _getParser(self):
+ def list_cb (option, opt_str, value, parser):
+ for item in value.split(','):
+ if item:
+ parser.values.ensure_value(option.dest, []).append(item)
+
+ op = FC3_Lang._getParser(self)
+ op.add_option("--addsupport", dest="addsupport", action="callback",
+ callback=list_cb, nargs=1, type="string")
+ return op
+
+ def parse(self, args):
+ FC3_Lang.parse(self, args)
+ (opts, extra) = self.op.parse_args(args=args, lineno=self.lineno)
+ self._setToSelf(self.op, opts)
+ return self
diff --git a/pykickstart/handlers/control.py b/pykickstart/handlers/control.py
index 52b0a94..113de2d 100644
--- a/pykickstart/handlers/control.py
+++ b/pykickstart/handlers/control.py
@@ -971,7 +971,7 @@ commandMap = {
"iscsi": iscsi.F17_Iscsi,
"iscsiname": iscsiname.FC6_IscsiName,
"keyboard": keyboard.F18_Keyboard,
- "lang": lang.FC3_Lang,
+ "lang": lang.F19_Lang,
"logging": logging.FC6_Logging,
"logvol": logvol.F18_LogVol,
"mediacheck": mediacheck.FC4_MediaCheck,
diff --git a/tests/commands/lang.py b/tests/commands/lang.py
index b78e4da..d5352e4 100644
--- a/tests/commands/lang.py
+++ b/tests/commands/lang.py
@@ -17,5 +17,22 @@ class FC3_TestCase(CommandTest):
self.assert_parse_error("lang", KickstartValueError)
self.assert_parse_error("lang en_US en_CA", KickstartValueError)
+class F19_TestCase(FC3_TestCase):
+ command = "lang"
+
+ def runTest(self):
+
+ # pass
+ self.assert_parse("lang en_US")
+ self.assert_parse("lang en_US --addsupport=cs_CZ")
+ self.assert_parse("lang en_US --addsupport=sr_RS.UTF-8 at latin")
+ self.assert_parse("lang en_US --addsupport=cs_CZ,fr_FR")
+
+ # fail
+ # Fail if less than or more than one argument is specified
+ self.assert_parse_error("lang", KickstartValueError)
+ self.assert_parse_error("lang en_US en_CA", KickstartValueError)
+ self.assert_parse_error("lang --addsupport=en_US", KickstartValueError)
+
if __name__ == "__main__":
unittest.main()
--
1.7.11.7
More information about the anaconda-patches
mailing list