diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/testresources/__init__.py | 34 | ||||
| -rw-r--r-- | lib/testresources/tests/TestUtil.py | 2 | ||||
| -rw-r--r-- | lib/testresources/tests/test_resource_graph.py | 4 | ||||
| -rw-r--r-- | lib/testresources/tests/test_test_resource.py | 3 |
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__) |
