##// END OF EJS Templates
bundle2: forbid duplicate parameter keys...
Pierre-Yves David -
r21607:054fa517 default
parent child Browse files
Show More
@@ -113,6 +113,8 b' Binary format is as follow'
113 113
114 114 Mandatory parameters comes first, then the advisory ones.
115 115
116 Each parameter's key MUST be unique within the part.
117
116 118 :payload:
117 119
118 120 payload is a series of `<chunksize><chunkdata>`.
@@ -570,6 +572,12 b' class bundlepart(object):'
570 572 self._data = data
571 573 self._mandatoryparams = list(mandatoryparams)
572 574 self._advisoryparams = list(advisoryparams)
575 # checking for duplicated entries
576 self._seenparams = set()
577 for pname, __ in self._mandatoryparams + self._advisoryparams:
578 if pname in self._seenparams:
579 raise RuntimeError('duplicated params: %s' % pname)
580 self._seenparams.add(pname)
573 581 # status of the part's generation:
574 582 # - None: not started,
575 583 # - False: currently generated,
@@ -598,6 +606,9 b' class bundlepart(object):'
598 606 def addparam(self, name, value='', mandatory=True):
599 607 if self._generated is not None:
600 608 raise ReadOnlyPartError('part is being generated')
609 if name in self._seenparams:
610 raise ValueError('duplicated params: %s' % name)
611 self._seenparams.add(name)
601 612 params = self._advisoryparams
602 613 if mandatory:
603 614 params = self._mandatoryparams
General Comments 0
You need to be logged in to leave comments. Login now