##// 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 Mandatory parameters comes first, then the advisory ones.
114 Mandatory parameters comes first, then the advisory ones.
115
115
116 Each parameter's key MUST be unique within the part.
117
116 :payload:
118 :payload:
117
119
118 payload is a series of `<chunksize><chunkdata>`.
120 payload is a series of `<chunksize><chunkdata>`.
@@ -570,6 +572,12 b' class bundlepart(object):'
570 self._data = data
572 self._data = data
571 self._mandatoryparams = list(mandatoryparams)
573 self._mandatoryparams = list(mandatoryparams)
572 self._advisoryparams = list(advisoryparams)
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 # status of the part's generation:
581 # status of the part's generation:
574 # - None: not started,
582 # - None: not started,
575 # - False: currently generated,
583 # - False: currently generated,
@@ -598,6 +606,9 b' class bundlepart(object):'
598 def addparam(self, name, value='', mandatory=True):
606 def addparam(self, name, value='', mandatory=True):
599 if self._generated is not None:
607 if self._generated is not None:
600 raise ReadOnlyPartError('part is being generated')
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 params = self._advisoryparams
612 params = self._advisoryparams
602 if mandatory:
613 if mandatory:
603 params = self._mandatoryparams
614 params = self._mandatoryparams
General Comments 0
You need to be logged in to leave comments. Login now