[java-sig-commits] [javapackages] Add merge_artifacts function
Stanislav Ochotnicky
sochotni at fedoraproject.org
Tue Sep 10 11:34:06 UTC 2013
commit 2ed702e7432e060ce3d8820b0209d31334344821
Author: Stanislav Ochotnicky <sochotnicky at redhat.com>
Date: Tue Sep 10 11:22:54 2013 +0200
Add merge_artifacts function
python/javapackages/artifact.py | 14 ++++++++++++++
python/test/artifact_test.py | 13 +++++++++++++
2 files changed, 27 insertions(+), 0 deletions(-)
---
diff --git a/python/javapackages/artifact.py b/python/javapackages/artifact.py
index 09bc6dc..500124e 100644
--- a/python/javapackages/artifact.py
+++ b/python/javapackages/artifact.py
@@ -125,6 +125,20 @@ class Artifact(object):
return tostring(root, pretty_print=True)
@classmethod
+ def merge_artifacts(cls, dominant, recessive):
+ """
+ Merge two artifacts into one. Information missing in dominant artifact will
+ be copied from recessive artifact. Returns new merged artifact
+ """
+ ret = cls(dominant.groupId, dominant.artifactId, dominant.extension,
+ dominant.classifier, dominant.version, dominant.namespace)
+ for key in ("artifactId", "groupId", "extension", "version",
+ "classifier", "namespace"):
+ if not getattr(ret, key):
+ setattr(ret, key, getattr(recessive, key))
+ return ret
+
+ @classmethod
def from_xml_element(cls, xmlnode, namespace=""):
"""
Create Artifact from xml.etree.ElementTree.Element as contained
diff --git a/python/test/artifact_test.py b/python/test/artifact_test.py
index 14bd63e..4626e29 100644
--- a/python/test/artifact_test.py
+++ b/python/test/artifact_test.py
@@ -370,5 +370,18 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.version, "v")
self.assertEqual(a.namespace, "n")
+ def test_merge(self):
+ a = Artifact.from_mvn_str("g1:a1:v1", 'n')
+ b = Artifact.from_mvn_str("g2:a2:e2::", 'n2')
+ m = Artifact.merge_artifacts(a, b)
+
+ self.assertEqual(m.groupId, "g1")
+ self.assertEqual(m.artifactId, "a1")
+ self.assertEqual(m.extension, "e2")
+ self.assertEqual(m.classifier, "")
+ self.assertEqual(m.version, "v1")
+ self.assertEqual(m.namespace, "n")
+
+
if __name__ == '__main__':
unittest.main()
More information about the java-sig-commits
mailing list