summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/testresources/__init__.py34
-rw-r--r--lib/testresources/tests/TestUtil.py2
-rw-r--r--lib/testresources/tests/test_resource_graph.py4
-rw-r--r--lib/testresources/tests/test_test_resource.py3
4 files changed, 30 insertions, 13 deletions
diff --git a/lib/testresources/__init__.py b/lib/testresources/__init__.py
index 22f11e6..b1ea0ce 100644
--- a/lib/testresources/__init__.py
+++ b/lib/testresources/__init__.py
@@ -21,6 +21,20 @@ import heapq
import inspect
import unittest
+# same format as sys.version_info: "A tuple containing the five components of
+# the version number: major, minor, micro, releaselevel, and serial. All
+# values except releaselevel are integers; the release level is 'alpha',
+# 'beta', 'candidate', or 'final'. The version_info value corresponding to the
+# Python version 2.0 is (2, 0, 0, 'final', 0)." Additionally we use a
+# releaselevel of 'dev' for unreleased under-development code.
+#
+# If the releaselevel is 'alpha' then the major/minor/micro components are not
+# established at this point, and setup.py will use a version of next-$(revno).
+# If the releaselevel is 'final', then the tarball will be major.minor.micro.
+# Otherwise it is major.minor.micro~$(revno).
+
+__version__ = (0, 2, 6, 'final', 0)
+
def test_suite():
import testresources.tests
@@ -40,12 +54,12 @@ def _digraph_to_graph(digraph, prime_node_mapping):
No other edges are created.
"""
result = {}
- for from_node, from_prime_node in prime_node_mapping.iteritems():
+ for from_node, from_prime_node in prime_node_mapping.items():
result[from_node] = {from_prime_node: 0}
result[from_prime_node] = {from_node: 0}
- for from_node, to_nodes in digraph.iteritems():
+ for from_node, to_nodes in digraph.items():
from_prime = prime_node_mapping[from_node]
- for to_node, value in to_nodes.iteritems():
+ for to_node, value in to_nodes.items():
to_prime = prime_node_mapping[to_node]
result[from_prime][to_node] = value
result[to_node][from_prime] = value
@@ -71,8 +85,8 @@ def _kruskals_graph_MST(graph):
# collect edges: every edge is present twice (due to the graph
# representation), so normalise.
edges = set()
- for from_node, to_nodes in graph.iteritems():
- for to_node, value in to_nodes.iteritems():
+ for from_node, to_nodes in graph.items():
+ for to_node, value in to_nodes.items():
edge = (value,) + tuple(sorted([from_node, to_node]))
edges.add(edge)
edges = list(edges)
@@ -86,7 +100,7 @@ def _kruskals_graph_MST(graph):
continue # already joined
# combine g1 and g2 into g1
graphs -= 1
- for from_node, to_nodes in g2.iteritems():
+ for from_node, to_nodes in g2.items():
#remember its symmetric, don't need to do 'to'.
forest[from_node] = g1
g1.setdefault(from_node, {}).update(to_nodes)
@@ -95,10 +109,10 @@ def _kruskals_graph_MST(graph):
g1[edge[2]][edge[1]] = edge[0]
# union the remaining graphs
_, result = forest.popitem()
- for _, g2 in forest.iteritems():
+ for _, g2 in forest.items():
if g2 is result: # common case
continue
- for from_node, to_nodes in g2.iteritems():
+ for from_node, to_nodes in g2.items():
result.setdefault(from_node, {}).update(to_nodes)
return result
@@ -119,7 +133,7 @@ def _resource_graph(resource_sets):
for resource in resource_set:
edges.setdefault(resource, []).append(node)
# populate the adjacent members of nodes
- for node, connected in nodes.iteritems():
+ for node, connected in nodes.items():
for resource in node:
connected.update(edges[resource])
connected.discard(node)
@@ -364,7 +378,7 @@ class OptimisingTestSuite(unittest.TestSuite):
node = root
cycle = [node]
steps = 2 * (len(mst) - 1)
- for step in xrange(steps):
+ for step in range(steps):
found = False
outgoing = None # For clearer debugging.
for outgoing in mst[node]:
diff --git a/lib/testresources/tests/TestUtil.py b/lib/testresources/tests/TestUtil.py
index a55dea7..b6621c2 100644
--- a/lib/testresources/tests/TestUtil.py
+++ b/lib/testresources/tests/TestUtil.py
@@ -56,7 +56,7 @@ def visitTests(suite, visitor):
visitor.visitSuite(test)
visitTests(test, visitor)
else:
- print "unvisitable non-unittest.TestCase element %r (%r)" % (test, test.__class__)
+ print("unvisitable non-unittest.TestCase element %r (%r)" % (test, test.__class__))
class TestSuite(unittest.TestSuite):
diff --git a/lib/testresources/tests/test_resource_graph.py b/lib/testresources/tests/test_resource_graph.py
index ec39300..86a3a49 100644
--- a/lib/testresources/tests/test_resource_graph.py
+++ b/lib/testresources/tests/test_resource_graph.py
@@ -132,8 +132,8 @@ class TestKruskalsMST(testtools.TestCase):
F:{ D:6},
G:{ E:9}}
result = testresources._kruskals_graph_MST(graph)
- e_weight = sum(sum(row.itervalues()) for row in expected.itervalues())
- r_weight = sum(sum(row.itervalues()) for row in result.itervalues())
+ e_weight = sum(sum(row.values()) for row in expected.values())
+ r_weight = sum(sum(row.values()) for row in result.values())
self.assertEqual(e_weight, r_weight)
self.assertEqual(expected,
testresources._kruskals_graph_MST(graph))
diff --git a/lib/testresources/tests/test_test_resource.py b/lib/testresources/tests/test_test_resource.py
index 7cde13b..fbc883b 100644
--- a/lib/testresources/tests/test_test_resource.py
+++ b/lib/testresources/tests/test_test_resource.py
@@ -36,6 +36,9 @@ class MockResourceInstance(object):
def __init__(self, name):
self._name = name
+ def __eq__(self, other):
+ return self.__dict__ == other.__dict__
+
def __cmp__(self, other):
return cmp(self.__dict__, other.__dict__)