← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~salgado/launchpad/refactor-blueprints-tests into lp:launchpad

 

Guilherme Salgado has proposed merging lp:~salgado/launchpad/refactor-blueprints-tests into lp:launchpad.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)


Some of the webservice tests for blueprints that were created in my previous
branch were thoroughly testing model code because it was not tested anywhere.
This branch moves such tests to another file and make them exercise the model
code directly rather than through the webservice.
-- 
https://code.launchpad.net/~salgado/launchpad/refactor-blueprints-tests/+merge/42139
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~salgado/launchpad/refactor-blueprints-tests into lp:launchpad.
=== added file 'lib/lp/blueprints/tests/test_hasspecifications.py'
--- lib/lp/blueprints/tests/test_hasspecifications.py	1970-01-01 00:00:00 +0000
+++ lib/lp/blueprints/tests/test_hasspecifications.py	2010-11-29 16:20:54 +0000
@@ -0,0 +1,180 @@
+# Copyright 2010 Canonical Ltd.  This software is licensed under the
+# GNU Affero General Public License version 3 (see the file LICENSE).
+
+"""Unit tests for objects implementing IHasSpecifications."""
+
+__metaclass__ = type
+
+
+from canonical.testing.layers import DatabaseFunctionalLayer
+from lp.blueprints.interfaces.specification import (
+    SpecificationDefinitionStatus,
+    )
+from lp.testing import TestCaseWithFactory
+
+
+class HasSpecificationsTests(TestCaseWithFactory):
+
+    layer = DatabaseFunctionalLayer
+
+    def assertNamesOfSpecificationsAre(self, expected_names, specifications):
+        names = [s.name for s in specifications]
+        self.assertEqual(sorted(expected_names), sorted(names))
+
+    def test_product_all_specifications(self):
+        product = self.factory.makeProduct()
+        self.factory.makeSpecification(product=product, name="spec1")
+        self.factory.makeSpecification(product=product, name="spec2")
+        self.assertNamesOfSpecificationsAre(
+            ["spec1", "spec2"], product.all_specifications)
+
+    def test_product_valid_specifications(self):
+        product = self.factory.makeProduct()
+        self.factory.makeSpecification(product=product, name="spec1")
+        self.factory.makeSpecification(
+            product=product, name="spec2",
+            status=SpecificationDefinitionStatus.OBSOLETE)
+        self.assertNamesOfSpecificationsAre(
+            ["spec1"], product.valid_specifications)
+
+    def test_distribution_all_specifications(self):
+        distribution = self.factory.makeDistribution()
+        self.factory.makeSpecification(
+            distribution=distribution, name="spec1")
+        self.factory.makeSpecification(
+            distribution=distribution, name="spec2")
+        self.assertNamesOfSpecificationsAre(
+            ["spec1", "spec2"], distribution.all_specifications)
+
+    def test_distribution_valid_specifications(self):
+        distribution = self.factory.makeDistribution()
+        self.factory.makeSpecification(
+            distribution=distribution, name="spec1")
+        self.factory.makeSpecification(
+            distribution=distribution, name="spec2",
+            status=SpecificationDefinitionStatus.OBSOLETE)
+        self.assertNamesOfSpecificationsAre(
+            ["spec1"], distribution.valid_specifications)
+
+    def test_distroseries_all_specifications(self):
+        distroseries = self.factory.makeDistroSeries(name='maudlin')
+        distribution = distroseries.distribution
+        self.factory.makeSpecification(
+            distribution=distribution, name="spec1",
+            goal=distroseries)
+        self.factory.makeSpecification(
+            distribution=distribution, name="spec2",
+            goal=distroseries)
+        self.factory.makeSpecification(
+            distribution=distribution, name="spec3")
+        self.assertNamesOfSpecificationsAre(
+            ["spec1", "spec2"],
+            distroseries.all_specifications)
+
+    # XXX: salgado, 2010-11-25, bug=681432: Test disabled because
+    # DistroSeries.valid_specifications is broken.
+    def disabled_test_distroseries_valid_specifications(self):
+        distroseries = self.factory.makeDistroSeries(name='maudlin')
+        distribution = distroseries.distribution
+        self.factory.makeSpecification(
+            distribution=distribution, name="spec1",
+            goal=distroseries)
+        self.factory.makeSpecification(
+            distribution=distribution, name="spec2",
+            goal=distroseries)
+        self.factory.makeSpecification(
+            distribution=distribution, name="spec3",
+            goal=distroseries,
+            status=SpecificationDefinitionStatus.OBSOLETE)
+        self.factory.makeSpecification(
+            distribution=distribution, name="spec4")
+        self.assertNamesOfSpecificationsAre(
+            ["spec1", "spec2"],
+            distroseries.valid_specifications)
+
+    def test_productseries_all_specifications(self):
+        product = self.factory.makeProduct()
+        productseries = self.factory.makeProductSeries(
+            product=product, name="fooix-dev")
+        self.factory.makeSpecification(
+            product=product, name="spec1", goal=productseries)
+        self.factory.makeSpecification(
+            product=product, name="spec2", goal=productseries)
+        self.factory.makeSpecification(product=product, name="spec3")
+        self.assertNamesOfSpecificationsAre(
+            ["spec1", "spec2"], productseries.all_specifications)
+
+    def test_productseries_valid_specifications(self):
+        product = self.factory.makeProduct()
+        productseries = self.factory.makeProductSeries(
+            product=product, name="fooix-dev")
+        self.factory.makeSpecification(
+            product=product, name="spec1", goal=productseries)
+        self.factory.makeSpecification(
+            product=product, name="spec2", goal=productseries)
+        self.factory.makeSpecification(
+            product=product, name="spec3", goal=productseries,
+            status=SpecificationDefinitionStatus.OBSOLETE)
+        self.factory.makeSpecification(product=product, name="spec4")
+        self.assertNamesOfSpecificationsAre(
+            ["spec1", "spec2"], productseries.valid_specifications)
+
+    def test_projectgroup_all_specifications(self):
+        projectgroup = self.factory.makeProject()
+        other_projectgroup = self.factory.makeProject()
+        product1 = self.factory.makeProduct(project=projectgroup)
+        product2 = self.factory.makeProduct(project=projectgroup)
+        product3 = self.factory.makeProduct(project=other_projectgroup)
+        self.factory.makeSpecification(
+            product=product1, name="spec1")
+        self.factory.makeSpecification(
+            product=product2, name="spec2",
+            status=SpecificationDefinitionStatus.OBSOLETE)
+        self.factory.makeSpecification(
+            product=product3, name="spec3")
+        self.assertNamesOfSpecificationsAre(
+            ["spec1", "spec2"],
+            projectgroup.all_specifications)
+
+    def test_projectgroup_valid_specifications(self):
+        projectgroup = self.factory.makeProject()
+        other_projectgroup = self.factory.makeProject()
+        product1 = self.factory.makeProduct(project=projectgroup)
+        product2 = self.factory.makeProduct(project=projectgroup)
+        product3 = self.factory.makeProduct(project=other_projectgroup)
+        self.factory.makeSpecification(
+            product=product1, name="spec1")
+        self.factory.makeSpecification(
+            product=product2, name="spec2",
+            status=SpecificationDefinitionStatus.OBSOLETE)
+        self.factory.makeSpecification(
+            product=product3, name="spec3")
+        self.assertNamesOfSpecificationsAre(
+            ["spec1", "spec2"],
+            projectgroup.valid_specifications)
+
+    def test_person_all_specifications(self):
+        person = self.factory.makePerson(name="james-w")
+        product = self.factory.makeProduct()
+        self.factory.makeSpecification(
+            product=product, name="spec1", drafter=person)
+        self.factory.makeSpecification(
+            product=product, name="spec2", approver=person,
+            status=SpecificationDefinitionStatus.OBSOLETE)
+        self.factory.makeSpecification(
+            product=product, name="spec3")
+        self.assertNamesOfSpecificationsAre(
+            ["spec1", "spec2"], person.all_specifications)
+
+    def test_person_valid_specifications(self):
+        person = self.factory.makePerson(name="james-w")
+        product = self.factory.makeProduct()
+        self.factory.makeSpecification(
+            product=product, name="spec1", drafter=person)
+        self.factory.makeSpecification(
+            product=product, name="spec2", approver=person,
+            status=SpecificationDefinitionStatus.OBSOLETE)
+        self.factory.makeSpecification(
+            product=product, name="spec3")
+        self.assertNamesOfSpecificationsAre(
+            ["spec1"], person.valid_specifications)

=== modified file 'lib/lp/blueprints/tests/test_webservice.py'
--- lib/lp/blueprints/tests/test_webservice.py	2010-11-26 18:04:53 +0000
+++ lib/lp/blueprints/tests/test_webservice.py	2010-11-29 16:20:54 +0000
@@ -214,26 +214,6 @@
         self.assertNamesOfSpecificationsAre(
             ["spec1", "spec2"], product_on_webservice.all_specifications)
 
-    def test_product_valid_specifications(self):
-        product = self.factory.makeProduct()
-        self.factory.makeSpecification(product=product, name="spec1")
-        self.factory.makeSpecification(
-            product=product, name="spec2",
-            status=SpecificationDefinitionStatus.OBSOLETE)
-        product_on_webservice = self.getPillarOnWebservice(product)
-        self.assertNamesOfSpecificationsAre(
-            ["spec1"], product_on_webservice.valid_specifications)
-
-    def test_distribution_all_specifications(self):
-        distribution = self.factory.makeDistribution()
-        self.factory.makeSpecification(
-            distribution=distribution, name="spec1")
-        self.factory.makeSpecification(
-            distribution=distribution, name="spec2")
-        distro_on_webservice = self.getPillarOnWebservice(distribution)
-        self.assertNamesOfSpecificationsAre(
-            ["spec1", "spec2"], distro_on_webservice.all_specifications)
-
     def test_distribution_valid_specifications(self):
         distribution = self.factory.makeDistribution()
         self.factory.makeSpecification(
@@ -244,152 +224,3 @@
         distro_on_webservice = self.getPillarOnWebservice(distribution)
         self.assertNamesOfSpecificationsAre(
             ["spec1"], distro_on_webservice.valid_specifications)
-
-    def test_distroseries_all_specifications(self):
-        distribution = self.factory.makeDistribution()
-        distroseries = self.factory.makeDistroSeries(
-            name='maudlin', distribution=distribution)
-        self.factory.makeSpecification(
-            distribution=distribution, name="spec1",
-            goal=distroseries)
-        self.factory.makeSpecification(
-            distribution=distribution, name="spec2",
-            goal=distroseries)
-        self.factory.makeSpecification(
-            distribution=distribution, name="spec3")
-        distro_on_webservice = self.getPillarOnWebservice(distribution)
-        distroseries_on_webservice = distro_on_webservice.getSeries(
-            name_or_version="maudlin")
-        self.assertNamesOfSpecificationsAre(
-            ["spec1", "spec2"],
-            distroseries_on_webservice.all_specifications)
-
-    # XXX: salgado, 2010-11-25, bug=681432: Test disabled because
-    # DistroSeries.valid_specifications is broken.
-    def disabled_test_distroseries_valid_specifications(self):
-        distribution = self.factory.makeDistribution()
-        distroseries = self.factory.makeDistroSeries(
-            name='maudlin', distribution=distribution)
-        self.factory.makeSpecification(
-            distribution=distribution, name="spec1",
-            goal=distroseries)
-        self.factory.makeSpecification(
-            distribution=distribution, name="spec2",
-            goal=distroseries)
-        self.factory.makeSpecification(
-            distribution=distribution, name="spec3",
-            goal=distroseries,
-            status=SpecificationDefinitionStatus.OBSOLETE)
-        self.factory.makeSpecification(
-            distribution=distribution, name="spec4")
-        distro_on_webservice = self.getPillarOnWebservice(distribution)
-        distroseries_on_webservice = distro_on_webservice.getSeries(
-            name_or_version="maudlin")
-        self.assertNamesOfSpecificationsAre(
-            ["spec1", "spec2"],
-            distroseries_on_webservice.valid_specifications)
-
-    def test_productseries_all_specifications(self):
-        product = self.factory.makeProduct()
-        productseries = self.factory.makeProductSeries(
-            product=product, name="fooix-dev")
-        self.factory.makeSpecification(
-            product=product, name="spec1", goal=productseries)
-        self.factory.makeSpecification(
-            product=product, name="spec2", goal=productseries)
-        self.factory.makeSpecification(product=product, name="spec3")
-        product_on_webservice = self.getPillarOnWebservice(product)
-        series_on_webservice = product_on_webservice.getSeries(
-            name="fooix-dev")
-        self.assertNamesOfSpecificationsAre(
-            ["spec1", "spec2"], series_on_webservice.all_specifications)
-
-    def test_productseries_valid_specifications(self):
-        product = self.factory.makeProduct()
-        productseries = self.factory.makeProductSeries(
-            product=product, name="fooix-dev")
-        self.factory.makeSpecification(
-            product=product, name="spec1", goal=productseries)
-        self.factory.makeSpecification(
-            product=product, name="spec2", goal=productseries)
-        self.factory.makeSpecification(
-            product=product, name="spec3", goal=productseries,
-            status=SpecificationDefinitionStatus.OBSOLETE)
-        self.factory.makeSpecification(product=product, name="spec4")
-        product_on_webservice = self.getPillarOnWebservice(product)
-        series_on_webservice = product_on_webservice.getSeries(
-            name="fooix-dev")
-        # Should this be different to the results for distroseries?
-        self.assertNamesOfSpecificationsAre(
-            ["spec1", "spec2"],
-            series_on_webservice.valid_specifications)
-
-    def test_projectgroup_all_specifications(self):
-        projectgroup = self.factory.makeProject()
-        other_projectgroup = self.factory.makeProject()
-        product1 = self.factory.makeProduct(project=projectgroup)
-        product2 = self.factory.makeProduct(project=projectgroup)
-        product3 = self.factory.makeProduct(project=other_projectgroup)
-        self.factory.makeSpecification(
-            product=product1, name="spec1")
-        self.factory.makeSpecification(
-            product=product2, name="spec2",
-            status=SpecificationDefinitionStatus.OBSOLETE)
-        self.factory.makeSpecification(
-            product=product3, name="spec3")
-        projectgroup_on_webservice = self.getPillarOnWebservice(projectgroup)
-        # Should this be different to the results for distroseries?
-        self.assertNamesOfSpecificationsAre(
-            ["spec1", "spec2"],
-            projectgroup_on_webservice.all_specifications)
-
-    def test_projectgroup_valid_specifications(self):
-        projectgroup = self.factory.makeProject()
-        other_projectgroup = self.factory.makeProject()
-        product1 = self.factory.makeProduct(project=projectgroup)
-        product2 = self.factory.makeProduct(project=projectgroup)
-        product3 = self.factory.makeProduct(project=other_projectgroup)
-        self.factory.makeSpecification(
-            product=product1, name="spec1")
-        self.factory.makeSpecification(
-            product=product2, name="spec2",
-            status=SpecificationDefinitionStatus.OBSOLETE)
-        self.factory.makeSpecification(
-            product=product3, name="spec3")
-        projectgroup_on_webservice = self.getPillarOnWebservice(projectgroup)
-        # Should this be different to the results for distroseries?
-        self.assertNamesOfSpecificationsAre(
-            ["spec1", "spec2"],
-            projectgroup_on_webservice.valid_specifications)
-
-    def test_person_all_specifications(self):
-        person = self.factory.makePerson(name="james-w")
-        product = self.factory.makeProduct()
-        self.factory.makeSpecification(
-            product=product, name="spec1", drafter=person)
-        self.factory.makeSpecification(
-            product=product, name="spec2", approver=person,
-            status=SpecificationDefinitionStatus.OBSOLETE)
-        self.factory.makeSpecification(
-            product=product, name="spec3")
-        launchpadlib = self.getLaunchpadlib()
-        person_on_webservice = launchpadlib.load(
-            str(launchpadlib._root_uri) + '/~james-w')
-        self.assertNamesOfSpecificationsAre(
-            ["spec1", "spec2"], person_on_webservice.all_specifications)
-
-    def test_person_valid_specifications(self):
-        person = self.factory.makePerson(name="james-w")
-        product = self.factory.makeProduct()
-        self.factory.makeSpecification(
-            product=product, name="spec1", drafter=person)
-        self.factory.makeSpecification(
-            product=product, name="spec2", approver=person,
-            status=SpecificationDefinitionStatus.OBSOLETE)
-        self.factory.makeSpecification(
-            product=product, name="spec3")
-        launchpadlib = self.getLaunchpadlib()
-        person_on_webservice = launchpadlib.load(
-            str(launchpadlib._root_uri) + '/~james-w')
-        self.assertNamesOfSpecificationsAre(
-            ["spec1"], person_on_webservice.valid_specifications)