diff options
Diffstat (limited to 'manifest_xml.py')
| -rw-r--r-- | manifest_xml.py | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/manifest_xml.py b/manifest_xml.py index d16f1a98..a3e78fe9 100644 --- a/manifest_xml.py +++ b/manifest_xml.py | |||
| @@ -54,6 +54,12 @@ class _XmlRemote(object): | |||
| 54 | self.reviewUrl = review | 54 | self.reviewUrl = review |
| 55 | self.resolvedFetchUrl = self._resolveFetchUrl() | 55 | self.resolvedFetchUrl = self._resolveFetchUrl() |
| 56 | 56 | ||
| 57 | def __eq__(self, other): | ||
| 58 | return self.__dict__ == other.__dict__ | ||
| 59 | |||
| 60 | def __ne__(self, other): | ||
| 61 | return self.__dict__ != other.__dict__ | ||
| 62 | |||
| 57 | def _resolveFetchUrl(self): | 63 | def _resolveFetchUrl(self): |
| 58 | url = self.fetchUrl.rstrip('/') | 64 | url = self.fetchUrl.rstrip('/') |
| 59 | manifestUrl = self.manifestUrl.rstrip('/') | 65 | manifestUrl = self.manifestUrl.rstrip('/') |
| @@ -365,11 +371,14 @@ class XmlManifest(object): | |||
| 365 | for node in itertools.chain(*node_list): | 371 | for node in itertools.chain(*node_list): |
| 366 | if node.nodeName == 'remote': | 372 | if node.nodeName == 'remote': |
| 367 | remote = self._ParseRemote(node) | 373 | remote = self._ParseRemote(node) |
| 368 | if self._remotes.get(remote.name): | 374 | if remote: |
| 369 | raise ManifestParseError( | 375 | if remote.name in self._remotes: |
| 370 | 'duplicate remote %s in %s' % | 376 | if remote != self._remotes[remote.name]: |
| 371 | (remote.name, self.manifestFile)) | 377 | raise ManifestParseError( |
| 372 | self._remotes[remote.name] = remote | 378 | 'remote %s already exists with different attributes' % |
| 379 | (remote.name)) | ||
| 380 | else: | ||
| 381 | self._remotes[remote.name] = remote | ||
| 373 | 382 | ||
| 374 | for node in itertools.chain(*node_list): | 383 | for node in itertools.chain(*node_list): |
| 375 | if node.nodeName == 'default': | 384 | if node.nodeName == 'default': |
