[javapackages/big-refactoring] Move xmvn_config and xmvn_resolve to xmvn subpackage
by Michal Srb
commit 44e2188549267e8cd249576c50b430d0af830ddd
Author: Michal Srb <msrb(a)redhat.com>
Date: Fri Jun 6 15:40:42 2014 +0200
Move xmvn_config and xmvn_resolve to xmvn subpackage
python/javapackages/{ => xmvn}/xmvn_config.py | 0
python/javapackages/{ => xmvn}/xmvn_resolve.py | 0
2 files changed, 0 insertions(+), 0 deletions(-)
---
diff --git a/python/javapackages/xmvn_config.py b/python/javapackages/xmvn/xmvn_config.py
similarity index 100%
rename from python/javapackages/xmvn_config.py
rename to python/javapackages/xmvn/xmvn_config.py
diff --git a/python/javapackages/xmvn_resolve.py b/python/javapackages/xmvn/xmvn_resolve.py
similarity index 100%
rename from python/javapackages/xmvn_resolve.py
rename to python/javapackages/xmvn/xmvn_resolve.py
10 years
[javapackages/big-refactoring] [pom] Remember path
by Michal Srb
commit 9ee8f0476ba6ac0d1d0e898036639d93f14ea459
Author: Michal Srb <msrb(a)redhat.com>
Date: Fri Jun 6 15:33:30 2014 +0200
[pom] Remember path
python/javapackages/maven/pom.py | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
---
diff --git a/python/javapackages/maven/pom.py b/python/javapackages/maven/pom.py
index 6042688..99c6e22 100644
--- a/python/javapackages/maven/pom.py
+++ b/python/javapackages/maven/pom.py
@@ -44,6 +44,7 @@ class POM(object):
"""
def __init__(self, path):
self.__doc = POMReader.load(path)
+ self._path = path
def __str__(self):
return ":".join([self.groupId, self.artifactId, self.version])
10 years
[javapackages/big-refactoring] [test] Add some tests related to interpolation of properties
by Michal Srb
commit ef2136c292484362425eef68d09ea0a029361627
Author: Michal Srb <msrb(a)redhat.com>
Date: Fri Jun 6 15:27:47 2014 +0200
[test] Add some tests related to interpolation of properties
python/test/artifact_test.py | 37 +++++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)
---
diff --git a/python/test/artifact_test.py b/python/test/artifact_test.py
index e82207b..94b9961 100644
--- a/python/test/artifact_test.py
+++ b/python/test/artifact_test.py
@@ -358,5 +358,42 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.classifier, "")
self.assertEqual(a.version, "")
+ def test_interpolation1(self):
+ a = Artifact.from_mvn_str("${gid}:a1")
+ props = {"gid": "g1"}
+ res = a.interpolate(props)
+
+ self.assertEqual(len(res), 0)
+ self.assertEqual(a.groupId, "g1")
+ self.assertEqual(a.artifactId, "a1")
+ self.assertEqual(a.extension, "")
+ self.assertEqual(a.classifier, "")
+ self.assertEqual(a.version, "")
+
+ def test_interpolation2(self):
+ a = Artifact.from_mvn_str("${gid}:a1:${v.major}.${v.minor}")
+ props = {"gid": "g1", "v.major": "4", "v.minor": "11"}
+ res = a.interpolate(props)
+
+ self.assertEqual(len(res), 0)
+ self.assertEqual(a.groupId, "g1")
+ self.assertEqual(a.artifactId, "a1")
+ self.assertEqual(a.extension, "")
+ self.assertEqual(a.classifier, "")
+ self.assertEqual(a.version, "4.11")
+
+ def test_interpolation3(self):
+ a = Artifact.from_mvn_str("${gid}:a1")
+ props = {"v.minor": "11"}
+ res = a.interpolate(props)
+
+ self.assertEqual(len(res), 1)
+ self.assertEqual(res[0], "gid")
+ self.assertEqual(a.groupId, "${gid}")
+ self.assertEqual(a.artifactId, "a1")
+ self.assertEqual(a.extension, "")
+ self.assertEqual(a.classifier, "")
+ self.assertEqual(a.version, "")
+
if __name__ == '__main__':
unittest.main()
10 years
[javapackages/big-refactoring] [artifact] Initial code for interpolation of properties
by Michal Srb
commit 87c7b48a3e9b94a1fb4938b395cde5717108fa55
Author: Michal Srb <msrb(a)redhat.com>
Date: Fri Jun 6 15:16:22 2014 +0200
[artifact] Initial code for interpolation of properties
python/javapackages/maven/artifact.py | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
---
diff --git a/python/javapackages/maven/artifact.py b/python/javapackages/maven/artifact.py
index c3b932d..2ee6ac2 100644
--- a/python/javapackages/maven/artifact.py
+++ b/python/javapackages/maven/artifact.py
@@ -33,6 +33,7 @@
# Michal Srb <msrb(a)redhat.com>
import sys
+import re
from pomreader import POMReader
from printer import Printer
@@ -155,6 +156,24 @@ class AbstractArtifact(object):
return True
return False
+ def interpolate(self, properties):
+ leftovers = []
+ for member in self.__dict__:
+ if (not member.startswith('_')
+ and getattr(self, member)
+ and type(member) == str):
+ curr_value = getattr(self, member)
+ prog = re.compile("\$\{([^}]+)\}")
+ props = prog.findall(curr_value)
+ for key in props:
+ try:
+ prop_value = properties[key]
+ curr_value = curr_value.replace("${{{prop}}}".format(prop=key), prop_value)
+ setattr(self, member, curr_value)
+ except KeyError:
+ leftovers.append(key)
+ return leftovers
+
def __unicode__(self):
return unicode(self.get_mvn_str())
10 years
[javapackages/big-refactoring] [test] More tests for merging artifacts
by Michal Srb
commit 84d1882a3fbc7bb9e651a342ee11d6853d4c33f8
Author: Michal Srb <msrb(a)redhat.com>
Date: Fri Jun 6 13:56:23 2014 +0200
[test] More tests for merging artifacts
python/test/artifact_test.py | 46 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 45 insertions(+), 1 deletions(-)
---
diff --git a/python/test/artifact_test.py b/python/test/artifact_test.py
index 25b6ad2..e82207b 100644
--- a/python/test/artifact_test.py
+++ b/python/test/artifact_test.py
@@ -302,7 +302,30 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.classifier, "c")
self.assertEqual(a.version, "v")
- def test_merge(self):
+ def test_merge1(self):
+ a = Artifact.from_mvn_str("g1:a1:v1")
+ b = Artifact.from_mvn_str("g1:a1")
+ a.merge_with(b)
+
+ self.assertEqual(a.groupId, "g1")
+ self.assertEqual(a.artifactId, "a1")
+ self.assertEqual(a.extension, "")
+ self.assertEqual(a.classifier, "")
+ self.assertEqual(a.version, "v1")
+
+ def test_merge2(self):
+ a = Artifact.from_mvn_str("g1:a1:v1")
+ b = Artifact.from_mvn_str("g1:a1:v2")
+ a.merge_with(b)
+
+ self.assertEqual(a.groupId, "g1")
+ self.assertEqual(a.artifactId, "a1")
+ self.assertEqual(a.extension, "")
+ self.assertEqual(a.classifier, "")
+ self.assertEqual(a.version, "v1")
+
+ def test_merge3(self):
+ # different artifacts won't be merged
a = Artifact.from_mvn_str("g1:a1:v1")
b = Artifact.from_mvn_str("g2:a2:e2::")
a.merge_with(b)
@@ -313,6 +336,27 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.classifier, "")
self.assertEqual(a.version, "v1")
+ def test_merge4(self):
+ a = Artifact.from_mvn_str("g1:a1")
+ b = Artifact.from_mvn_str("g1:a1:v1")
+ a.merge_with(b)
+
+ self.assertEqual(a.groupId, "g1")
+ self.assertEqual(a.artifactId, "a1")
+ self.assertEqual(a.extension, "")
+ self.assertEqual(a.classifier, "")
+ self.assertEqual(a.version, "v1")
+
+ def test_merge5(self):
+ a = Artifact.from_mvn_str("g1:a1:war::")
+ b = Artifact.from_mvn_str("g1:a1:v1")
+ a.merge_with(b)
+
+ self.assertEqual(a.groupId, "g1")
+ self.assertEqual(a.artifactId, "a1")
+ self.assertEqual(a.extension, "war")
+ self.assertEqual(a.classifier, "")
+ self.assertEqual(a.version, "")
if __name__ == '__main__':
unittest.main()
10 years
[javapackages/big-refactoring] [artifact] Check if both artifacts are same before merging
by Michal Srb
commit 6403a87b066c7a5a49ea9771d4a9e04f794ea4ad
Author: Michal Srb <msrb(a)redhat.com>
Date: Fri Jun 6 13:28:02 2014 +0200
[artifact] Check if both artifacts are same before merging
python/javapackages/maven/artifact.py | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/python/javapackages/maven/artifact.py b/python/javapackages/maven/artifact.py
index 2a6323a..c3b932d 100644
--- a/python/javapackages/maven/artifact.py
+++ b/python/javapackages/maven/artifact.py
@@ -133,9 +133,9 @@ class AbstractArtifact(object):
"{this} cannot be merged with {other}"
.format(this=type(self), other=type(artifact)))
- for member in self.__dict__:
- if not member.startswith('_') and not getattr(self, member):
- if member not in self.__get_significant_members(ignore_version=True):
+ if self.compare_to(artifact):
+ for member in self.__dict__:
+ if not member.startswith('_') and not getattr(self, member):
setattr(self, member, getattr(artifact, member))
def update_from(self, artifact):
10 years
[javapackages/big-refactoring] [test] Reflect changes in "artifact" code to tests
by Michal Srb
commit 89a566cfa075a7530a24c5abb708049983091fea
Author: Michal Srb <msrb(a)redhat.com>
Date: Fri Jun 6 13:14:40 2014 +0200
[test] Reflect changes in "artifact" code to tests
python/test/artifact_test.py | 82 ++++++-----------------------------------
1 files changed, 12 insertions(+), 70 deletions(-)
---
diff --git a/python/test/artifact_test.py b/python/test/artifact_test.py
index 80f5989..25b6ad2 100644
--- a/python/test/artifact_test.py
+++ b/python/test/artifact_test.py
@@ -2,7 +2,7 @@ import os
import unittest
from lxml.etree import fromstring, parse
-from javapackages.artifact import Artifact, ArtifactFormatException
+from javapackages.maven.artifact import Artifact, ArtifactFormatException
from misc import exception_expected
@@ -26,7 +26,6 @@ class TestArtifact(unittest.TestCase):
self.gaevArtifact = Artifact(' g', 'a', ' e', ' ', ' v')
self.gacvArtifact = Artifact(' g', 'a', ' ', 'c', ' v')
self.fullArtifact = Artifact(' g', ' a', ' e', ' c', ' v')
- self.namespaceArtifact = Artifact(' g', ' a', ' e', ' c', ' v', ' n')
def test_artifact_init(self):
a = self.gaArtifact
@@ -35,7 +34,6 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.classifier, '')
self.assertEqual(a.extension, '')
self.assertEqual(a.version, '')
- self.assertEqual(a.namespace, '')
a = self.fullArtifact
self.assertEqual(a.groupId, 'g')
@@ -43,23 +41,13 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.classifier, 'c')
self.assertEqual(a.extension, 'e')
self.assertEqual(a.version, 'v')
- self.assertEqual(a.namespace, '')
-
- a = self.namespaceArtifact
- self.assertEqual(a.groupId, 'g')
- self.assertEqual(a.artifactId, 'a')
- self.assertEqual(a.classifier, 'c')
- self.assertEqual(a.extension, 'e')
- self.assertEqual(a.version, 'v')
- self.assertEqual(a.namespace, 'n')
def test_str(self):
- self.assertEqual(str(self.gaArtifact), "g:a:::")
- self.assertEqual(str(self.gavArtifact), "g:a:::v")
+ self.assertEqual(str(self.gaArtifact), "g:a")
+ self.assertEqual(str(self.gavArtifact), "g:a:v")
self.assertEqual(str(self.gacArtifact), "g:a::c:")
self.assertEqual(str(self.gacvArtifact), "g:a::c:v")
self.assertEqual(str(self.fullArtifact), "g:a:e:c:v")
- self.assertEqual(str(self.namespaceArtifact), "g:a:e:c:v")
def test_rpm_str(self):
self.assertEqual(self.gaArtifact.get_rpm_str(), "mvn(g:a)")
@@ -69,7 +57,6 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(self.gaeArtifact.get_rpm_str(), "mvn(g:a:e:)")
self.assertEqual(self.gaevArtifact.get_rpm_str(), "mvn(g:a:e:)")
self.assertEqual(self.fullArtifact.get_rpm_str(), "mvn(g:a:e:c:)")
- self.assertEqual(self.namespaceArtifact.get_rpm_str(), "n-mvn(g:a:e:c:)")
def test_xml_str_ga(self):
doc = fromstring(self.gaArtifact.get_xml_str())
@@ -200,29 +187,6 @@ class TestArtifact(unittest.TestCase):
self.assertNotEqual(item, None)
self.assertEquals(item.text, 'v')
- def test_xml_str_namespace(self):
- doc = fromstring(self.namespaceArtifact.get_xml_str())
- self.assertNotEqual(doc, None)
- self.assertEqual(len(doc), 6)
- item = doc.find('./groupId')
- self.assertNotEqual(item, None)
- self.assertEquals(item.text, 'g')
- item = doc.find('./artifactId')
- self.assertNotEqual(item, None)
- self.assertEquals(item.text, 'a')
- item = doc.find('./extension')
- self.assertNotEqual(item, None)
- self.assertEquals(item.text, 'e')
- item = doc.find('./classifier')
- self.assertNotEqual(item, None)
- self.assertEquals(item.text, 'c')
- item = doc.find('./version')
- self.assertNotEqual(item, None)
- self.assertEquals(item.text, 'v')
- item = doc.find('./namespace')
- self.assertNotEqual(item, None)
- self.assertEquals(item.text, 'n')
-
@exception_expected(ArtifactFormatException)
@artifactfile("artifact-empty.xml")
def test_from_xml_empty(self, doc):
@@ -246,7 +210,6 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.extension, "")
self.assertEqual(a.classifier, "")
self.assertEqual(a.version, "")
- self.assertEqual(a.namespace, "")
@artifactfile("artifactgav.xml")
def test_from_xml_gav(self, doc):
@@ -256,7 +219,6 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.extension, "")
self.assertEqual(a.classifier, "")
self.assertEqual(a.version, "v")
- self.assertEqual(a.namespace, "")
@artifactfile("artifactfull.xml")
def test_from_xml_full(self, doc):
@@ -266,7 +228,6 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.extension, "e")
self.assertEqual(a.classifier, "c")
self.assertEqual(a.version, "v")
- self.assertEqual(a.namespace, "n")
@artifactfile("artifact-whitespace.xml")
def test_from_xml_whitespace(self, doc):
@@ -276,7 +237,6 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.extension, "e")
self.assertEqual(a.classifier, "c")
self.assertEqual(a.version, "v")
- self.assertEqual(a.namespace, "n")
def test_from_mvn_str_ga(self):
a = Artifact.from_mvn_str("g:a")
@@ -285,7 +245,6 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.extension, "")
self.assertEqual(a.classifier, "")
self.assertEqual(a.version, "")
- self.assertEqual(a.namespace, "")
def test_from_mvn_str_gav(self):
a = Artifact.from_mvn_str("g:a:v")
@@ -294,7 +253,6 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.extension, "")
self.assertEqual(a.classifier, "")
self.assertEqual(a.version, "v")
- self.assertEqual(a.namespace, "")
def test_from_mvn_str_gae(self):
a = Artifact.from_mvn_str("g:a:e:")
@@ -303,7 +261,6 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.extension, "e")
self.assertEqual(a.classifier, "")
self.assertEqual(a.version, "")
- self.assertEqual(a.namespace, "")
def test_from_mvn_str_gaev(self):
a = Artifact.from_mvn_str("g:a:e:v")
@@ -312,7 +269,6 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.extension, "e")
self.assertEqual(a.classifier, "")
self.assertEqual(a.version, "v")
- self.assertEqual(a.namespace, "")
def test_from_mvn_str_gac(self):
a = Artifact.from_mvn_str("g:a::c:")
@@ -321,7 +277,6 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.extension, "")
self.assertEqual(a.classifier, "c")
self.assertEqual(a.version, "")
- self.assertEqual(a.namespace, "")
def test_from_mvn_str_gacv(self):
a = Artifact.from_mvn_str("g:a::c:v")
@@ -330,7 +285,6 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.extension, "")
self.assertEqual(a.classifier, "c")
self.assertEqual(a.version, "v")
- self.assertEqual(a.namespace, "")
def test_from_mvn_str_gaec(self):
a = Artifact.from_mvn_str("g:a:e:c:")
@@ -339,7 +293,6 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.extension, "e")
self.assertEqual(a.classifier, "c")
self.assertEqual(a.version, "")
- self.assertEqual(a.namespace, "")
def test_from_mvn_str_full(self):
a = Artifact.from_mvn_str("g:a:e:c:v")
@@ -348,28 +301,17 @@ class TestArtifact(unittest.TestCase):
self.assertEqual(a.extension, "e")
self.assertEqual(a.classifier, "c")
self.assertEqual(a.version, "v")
- self.assertEqual(a.namespace, "")
-
- def test_from_mvn_str_namespace(self):
- a = Artifact.from_mvn_str("g:a:e:c:v", 'n')
- self.assertEqual(a.groupId, "g")
- self.assertEqual(a.artifactId, "a")
- self.assertEqual(a.extension, "e")
- self.assertEqual(a.classifier, "c")
- 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")
+ a = Artifact.from_mvn_str("g1:a1:v1")
+ b = Artifact.from_mvn_str("g2:a2:e2::")
+ a.merge_with(b)
+
+ self.assertEqual(a.groupId, "g1")
+ self.assertEqual(a.artifactId, "a1")
+ self.assertEqual(a.extension, "")
+ self.assertEqual(a.classifier, "")
+ self.assertEqual(a.version, "v1")
if __name__ == '__main__':
10 years
[javapackages/big-refactoring] [artifact] Ignore significant members when merging artifacts
by Michal Srb
commit 8f6a21786d62e26bce81ac82d80e4eda74f578e1
Author: Michal Srb <msrb(a)redhat.com>
Date: Fri Jun 6 12:53:48 2014 +0200
[artifact] Ignore significant members when merging artifacts
python/javapackages/maven/artifact.py | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/python/javapackages/maven/artifact.py b/python/javapackages/maven/artifact.py
index 4de3dbe..2a6323a 100644
--- a/python/javapackages/maven/artifact.py
+++ b/python/javapackages/maven/artifact.py
@@ -135,8 +135,8 @@ class AbstractArtifact(object):
for member in self.__dict__:
if not member.startswith('_') and not getattr(self, member):
- setattr(self, member, getattr(artifact, member))
- return True
+ if member not in self.__get_significant_members(ignore_version=True):
+ setattr(self, member, getattr(artifact, member))
def update_from(self, artifact):
if self.compare_to(artifact):
10 years
[javapackages/big-refactoring] [artifact] Simplify compare_to() method
by Michal Srb
commit cf858829cb0258c90895c905f7ec4329e1369662
Author: Michal Srb <msrb(a)redhat.com>
Date: Fri Jun 6 12:22:15 2014 +0200
[artifact] Simplify compare_to() method
python/javapackages/maven/artifact.py | 10 ++--------
1 files changed, 2 insertions(+), 8 deletions(-)
---
diff --git a/python/javapackages/maven/artifact.py b/python/javapackages/maven/artifact.py
index 9124c48..4de3dbe 100644
--- a/python/javapackages/maven/artifact.py
+++ b/python/javapackages/maven/artifact.py
@@ -149,14 +149,8 @@ class AbstractArtifact(object):
def compare_to(self, artifact):
if type(self) != type(artifact):
return False
- this = self.__get_significant_members()
- other = artifact.__get_significant_members()
- try:
- del this['version']
- del other['version']
- except KeyError:
- pass
-
+ this = self.__get_significant_members(ignore_version=True)
+ other = artifact.__get_significant_members(ignore_version=True)
if this == other:
return True
return False
10 years
[javapackages/big-refactoring] [artifact] Add ability to ignore version when working with significant artifact members
by Michal Srb
commit 60f0588636923faab32c9776279acf8f07eb4d89
Author: Michal Srb <msrb(a)redhat.com>
Date: Fri Jun 6 12:13:11 2014 +0200
[artifact] Add ability to ignore version when working with significant artifact members
python/javapackages/maven/artifact.py | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/python/javapackages/maven/artifact.py b/python/javapackages/maven/artifact.py
index de6fd9f..9124c48 100644
--- a/python/javapackages/maven/artifact.py
+++ b/python/javapackages/maven/artifact.py
@@ -182,11 +182,13 @@ class AbstractArtifact(object):
result += var.__hash__()
return result
- def __get_significant_members(self):
+ def __get_significant_members(self, ignore_version=False):
m = {}
- for mname in ["groupId", "artifactId", "extension", "classifier", "version"]:
+ for mname in ["groupId", "artifactId", "extension", "classifier"]:
if hasattr(self, mname):
m[mname] = getattr(self, mname)
+ if not ignore_version and hasattr(self, "version"):
+ m["version"] = getattr(self, "version")
return m
def __get_members(self):
10 years