From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1STJbk-0006xB-5P for garchives@archives.gentoo.org; Sat, 12 May 2012 21:12:08 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 9E638E0B9C; Sat, 12 May 2012 21:11:54 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 5F346E0B8B for ; Sat, 12 May 2012 21:11:54 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 9A5161B400A for ; Sat, 12 May 2012 21:11:53 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 929B9E542D for ; Sat, 12 May 2012 21:11:51 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <1336857092.ae95697010a331a98fe112bdac565c3dcbcd3160.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/tests/util/ X-VCS-Repository: proj/portage X-VCS-Files: pym/portage/tests/util/test_digraph.py X-VCS-Directories: pym/portage/tests/util/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: ae95697010a331a98fe112bdac565c3dcbcd3160 X-VCS-Branch: master Date: Sat, 12 May 2012 21:11:51 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 21851a2d-1919-4849-8eab-42ace619eac4 X-Archives-Hash: 287a3da9400eb3c3949b7eeefb894d74 commit: ae95697010a331a98fe112bdac565c3dcbcd3160 Author: Zac Medico gentoo org> AuthorDate: Sat May 12 21:11:32 2012 +0000 Commit: Zac Medico gentoo org> CommitDate: Sat May 12 21:11:32 2012 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3Dae956970 test_digraph: fix bfs for PYTHONHASHSEED=3Drandom --- pym/portage/tests/util/test_digraph.py | 43 ++++++++++++++++++++++++++= +++--- 1 files changed, 39 insertions(+), 4 deletions(-) diff --git a/pym/portage/tests/util/test_digraph.py b/pym/portage/tests/u= til/test_digraph.py index b65c0b1..4fb1f95 100644 --- a/pym/portage/tests/util/test_digraph.py +++ b/pym/portage/tests/util/test_digraph.py @@ -1,4 +1,4 @@ -# Copyright 2010-2011 Gentoo Foundation +# Copyright 2010-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 =20 from portage.tests import TestCase @@ -8,6 +8,41 @@ import portage.util =20 class DigraphTest(TestCase): =20 + def _assertBFSEqual(self, result, expected): + result_stack =3D list(result) + result_stack.reverse() + expected_stack =3D list(reversed(expected)) + result_compared =3D [] + expected_compared =3D [] + while result_stack: + if not expected_stack: + result_compared.append(result_stack.pop()) + self.assertEqual(result_compared, expected_compared) + expected_set =3D expected_stack.pop() + if not isinstance(expected_set, list): + expected_set =3D [expected_set] + expected_set =3D set(expected_set) + while expected_set: + if not result_stack: + expected_compared.extend(expected_set) + self.assertEqual(result_compared, expected_compared) + obj =3D result_stack.pop() + try: + expected_set.remove(obj) + except KeyError: + expected_compared.extend(expected_set) + result_compared.append(obj) + self.assertEqual(result_compared, expected_compared) + else: + expected_compared.append(obj) + result_compared.append(obj) + if expected_stack: + expected_set =3D expected_stack.pop() + if not isinstance(expected_set, list): + expected_set =3D [expected_set] + expected_compared.extend(expected_set) + self.assertEqual(result_compared, expected_compared) + def testBackwardCompatibility(self): g =3D digraph() f =3D g.copy() @@ -71,7 +106,7 @@ class DigraphTest(TestCase): self.assertEqual(x.parent_nodes("A", ignore_priority=3D-2), ["B"]) self.assertEqual(x.parent_nodes("A", ignore_priority=3D-1), []) self.assertEqual(x.hasallzeros(), False) - self.assertEqual(list(x.bfs("A")), [(None, "A"), ("A", "D"), ("D", "C= "), ("C", "B")]) + self._assertBFSEqual(x.bfs("A"), [(None, "A"), ("A", "D"), ("D", "C")= , ("C", "B")]) self.assertEqual(x.shortest_path("A", "D"), ["A", "D"]) self.assertEqual(x.shortest_path("D", "A"), ["D", "C", "B", "A"]) self.assertEqual(x.shortest_path("A", "D", ignore_priority=3D2), None= ) @@ -115,7 +150,7 @@ class DigraphTest(TestCase): self.assertEqual(x.parent_nodes("B", ignore_priority=3D-2), ["A"]) self.assertEqual(x.parent_nodes("B", ignore_priority=3D-1), []) self.assertEqual(x.hasallzeros(), False) - self.assertEqual(list(x.bfs("A")), [(None, "A"), ("A", "C"), ("A", "B= "), ("C", "E"), ("C", "D")]) + self._assertBFSEqual(x.bfs("A"), [(None, "A"), [("A", "C"), ("A", "B"= )], [("C", "E"), ("C", "D")]]) self.assertEqual(x.shortest_path("A", "D"), ["A", "C", "D"]) self.assertEqual(x.shortest_path("D", "A"), None) self.assertEqual(x.shortest_path("A", "D", ignore_priority=3D2), None= ) @@ -158,7 +193,7 @@ class DigraphTest(TestCase): self.assertEqual(x.parent_nodes("A", ignore_priority=3D0), ["C"]) self.assertEqual(x.parent_nodes("A", ignore_priority=3D1), []) self.assertEqual(x.hasallzeros(), False) - self.assertEqual(list(x.bfs("A")), [(None, "A"), ("A", "C"), ("A", "B= ")]) + self._assertBFSEqual(x.bfs("A"), [(None, "A"), [("A", "C"), ("A", "B"= )]]) self.assertEqual(x.shortest_path("A", "C"), ["A", "C"]) self.assertEqual(x.shortest_path("C", "A"), ["C", "A"]) self.assertEqual(x.shortest_path("A", "C", ignore_priority=3D0), ["A"= , "B", "C"])