All of lore.kernel.org
 help / color / mirror / Atom feed
* [review request] [PATCH 00/11] ed/toaster/fix-orm-tests
@ 2015-08-06  7:27 Ed Bartosh
  2015-08-06  7:27 ` [PATCH 01/11] toaster: remove prints from the test code Ed Bartosh
                   ` (10 more replies)
  0 siblings, 11 replies; 13+ messages in thread
From: Ed Bartosh @ 2015-08-06  7:27 UTC (permalink / raw)
  To: toaster

Hi,

This patchset contains fixes and code cleanups for Toaster ORM tests.
Some tests were completely rewritten.

Now all 7 test cases are passed and pylint score is 10.

The following changes since commit a8b723498c9a7106210db140452886894494b4d6:

  bitbake: cooker: Resolve file monitoring race issues when using memres bitbake (2015-08-03 07:36:25 +0100)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib ed/toaster/fix-orm-tests
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=ed/toaster/fix-orm-tests

Ed Bartosh (11):
  toaster: remove prints from the test code
  toaster: fix test_build_layerversion test case
  toaster: rewrite test for LayerSource model
  toaster: rewrite LILSUpdateTestCase
  toaster: reformat LayerVersionEquivalenceTestCase
  toaster: reuse common code
  toaster: remove duplicated code
  toaster: simplify testcase code
  toaster: add header to orm/test.py
  toaster: remove ProjectLVSelectionTestCase
  toaster: move code from setup_lv_tests to setUp

 bitbake/lib/toaster/orm/tests.py | 272 ++++++++++++++++++++-------------------
 1 file changed, 143 insertions(+), 129 deletions(-)

--
Regards,
Ed



^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 01/11] toaster: remove prints from the test code
  2015-08-06  7:27 [review request] [PATCH 00/11] ed/toaster/fix-orm-tests Ed Bartosh
@ 2015-08-06  7:27 ` Ed Bartosh
  2015-08-06  7:27 ` [PATCH 02/11] toaster: fix test_build_layerversion test case Ed Bartosh
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Ed Bartosh @ 2015-08-06  7:27 UTC (permalink / raw)
  To: toaster

Removed prints as they make test output harder to understand.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
---
 bitbake/lib/toaster/orm/tests.py | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/bitbake/lib/toaster/orm/tests.py b/bitbake/lib/toaster/orm/tests.py
index d4d97ee..df9a2a9 100644
--- a/bitbake/lib/toaster/orm/tests.py
+++ b/bitbake/lib/toaster/orm/tests.py
@@ -18,9 +18,6 @@ class LayerSourceVerifyInheritanceSaveLoad(TestCase):
         lils = LayerSource.objects.create(name = "a2", sourcetype = LayerSource.TYPE_LAYERINDEX, apiurl = "")
         imls = LayerSource.objects.create(name = "a3", sourcetype = LayerSource.TYPE_IMPORTED, apiurl = "")
 
-        import pprint
-        pprint.pprint([(x.__class__,vars(x)) for x in LayerSource.objects.all()])
-
         self.assertTrue(True in map(lambda x: isinstance(x, LocalLayerSource), LayerSource.objects.all()))
         self.assertTrue(True in map(lambda x: isinstance(x, LayerIndexLayerSource), LayerSource.objects.all()))
         self.assertTrue(True in map(lambda x: isinstance(x, ImportedLayerSource), LayerSource.objects.all()))
@@ -42,7 +39,6 @@ class LILSUpdateTestCase(TransactionTestCase):
     def test_update(self):
         layer_index_url = os.getenv("TTS_LAYER_INDEX")
         if layer_index_url == None:
-            print "Using layers.openembedded.org for layer index. override with TTS_LAYER_INDEX enviroment variable"
             layer_index_url = "http://layers.openembedded.org/"
 
         lils = LayerSource.objects.create(name = "b1", sourcetype = LayerSource.TYPE_LAYERINDEX, apiurl = layer_index_url + "layerindex/api/")
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 02/11] toaster: fix test_build_layerversion test case
  2015-08-06  7:27 [review request] [PATCH 00/11] ed/toaster/fix-orm-tests Ed Bartosh
  2015-08-06  7:27 ` [PATCH 01/11] toaster: remove prints from the test code Ed Bartosh
@ 2015-08-06  7:27 ` Ed Bartosh
  2015-08-06  7:27 ` [PATCH 03/11] toaster: rewrite test for LayerSource model Ed Bartosh
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Ed Bartosh @ 2015-08-06  7:27 UTC (permalink / raw)
  To: toaster

The reason of test failure is that Django querysets are
different even if they contain the same objects.

Fixed by converting querysets into lists.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
---
 bitbake/lib/toaster/orm/tests.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bitbake/lib/toaster/orm/tests.py b/bitbake/lib/toaster/orm/tests.py
index df9a2a9..8bb5dec 100644
--- a/bitbake/lib/toaster/orm/tests.py
+++ b/bitbake/lib/toaster/orm/tests.py
@@ -117,7 +117,7 @@ class LayerVersionEquivalenceTestCase(TestCase):
         # getting the build layerversion equivalent list must return the same list as the original layer
         build_equivalent_list = self.layerversion_build.get_equivalents_wpriority(self.project)
 
-        self.assertTrue(equivalent_list == build_equivalent_list, "%s is not %s" % (equivalent_list, build_equivalent_list))
+        self.assertEqual(list(equivalent_list), list(build_equivalent_list))
 
 class ProjectLVSelectionTestCase(TestCase):
     def setUp(self):
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 03/11] toaster: rewrite test for LayerSource model
  2015-08-06  7:27 [review request] [PATCH 00/11] ed/toaster/fix-orm-tests Ed Bartosh
  2015-08-06  7:27 ` [PATCH 01/11] toaster: remove prints from the test code Ed Bartosh
  2015-08-06  7:27 ` [PATCH 02/11] toaster: fix test_build_layerversion test case Ed Bartosh
@ 2015-08-06  7:27 ` Ed Bartosh
  2015-08-06  7:27 ` [PATCH 04/11] toaster: rewrite LILSUpdateTestCase Ed Bartosh
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Ed Bartosh @ 2015-08-06  7:27 UTC (permalink / raw)
  To: toaster

Rewritten LayerSourceVerifyInheritanceSaveLoad class from scratch.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
---
 bitbake/lib/toaster/orm/tests.py | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/bitbake/lib/toaster/orm/tests.py b/bitbake/lib/toaster/orm/tests.py
index 8bb5dec..b0c01db 100644
--- a/bitbake/lib/toaster/orm/tests.py
+++ b/bitbake/lib/toaster/orm/tests.py
@@ -6,28 +6,34 @@ from orm.models import Project, Build, Layer, Layer_Version, Branch, ProjectLaye
 from orm.models import Release, ReleaseLayerSourcePriority, BitbakeVersion
 
 from django.utils import timezone
+from django.db import IntegrityError
 
 import os
 
 # set TTS_LAYER_INDEX to the base url to use a different instance of the layer index
 
-# tests to verify inheritance for the LayerSource proxy-inheritance classes
 class LayerSourceVerifyInheritanceSaveLoad(TestCase):
+    """
+    Tests to verify inheritance for the LayerSource proxy-inheritance classes.
+    """
     def test_object_creation(self):
-        lls = LayerSource.objects.create(name = "a1", sourcetype = LayerSource.TYPE_LOCAL, apiurl = "")
-        lils = LayerSource.objects.create(name = "a2", sourcetype = LayerSource.TYPE_LAYERINDEX, apiurl = "")
-        imls = LayerSource.objects.create(name = "a3", sourcetype = LayerSource.TYPE_IMPORTED, apiurl = "")
+        """Test LayerSource object creation."""
+        for name, sourcetype in [("a1", LayerSource.TYPE_LOCAL),
+                                 ("a2", LayerSource.TYPE_LAYERINDEX),
+                                 ("a3", LayerSource.TYPE_IMPORTED)]:
+            LayerSource.objects.create(name=name, sourcetype=sourcetype)
 
-        self.assertTrue(True in map(lambda x: isinstance(x, LocalLayerSource), LayerSource.objects.all()))
-        self.assertTrue(True in map(lambda x: isinstance(x, LayerIndexLayerSource), LayerSource.objects.all()))
-        self.assertTrue(True in map(lambda x: isinstance(x, ImportedLayerSource), LayerSource.objects.all()))
+        objects = LayerSource.objects.all()
+        self.assertTrue(isinstance(objects[0], LocalLayerSource))
+        self.assertTrue(isinstance(objects[1], LayerIndexLayerSource))
+        self.assertTrue(isinstance(objects[2], ImportedLayerSource))
 
     def test_duplicate_error(self):
-        def duplicate():
-            LayerSource.objects.create(name = "a1", sourcetype = LayerSource.TYPE_LOCAL, apiurl = "")
-            LayerSource.objects.create(name = "a1", sourcetype = LayerSource.TYPE_LOCAL, apiurl = "")
-
-        self.assertRaises(Exception, duplicate)
+        """Test creation of duplicate LayerSource objects."""
+        stype = LayerSource.TYPE_LOCAL
+        LayerSource.objects.create(name="a1", sourcetype=stype)
+        with self.assertRaises(IntegrityError):
+            LayerSource.objects.create(name="a1", sourcetype=stype)
 
 
 class LILSUpdateTestCase(TransactionTestCase):
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 04/11] toaster: rewrite LILSUpdateTestCase
  2015-08-06  7:27 [review request] [PATCH 00/11] ed/toaster/fix-orm-tests Ed Bartosh
                   ` (2 preceding siblings ...)
  2015-08-06  7:27 ` [PATCH 03/11] toaster: rewrite test for LayerSource model Ed Bartosh
@ 2015-08-06  7:27 ` Ed Bartosh
  2015-08-06  7:27 ` [PATCH 05/11] toaster: reformat LayerVersionEquivalenceTestCase Ed Bartosh
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Ed Bartosh @ 2015-08-06  7:27 UTC (permalink / raw)
  To: toaster

Reformatted code. Added docstings.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
---
 bitbake/lib/toaster/orm/tests.py | 30 +++++++++++++++++-------------
 1 file changed, 17 insertions(+), 13 deletions(-)

diff --git a/bitbake/lib/toaster/orm/tests.py b/bitbake/lib/toaster/orm/tests.py
index b0c01db..3384f01 100644
--- a/bitbake/lib/toaster/orm/tests.py
+++ b/bitbake/lib/toaster/orm/tests.py
@@ -37,22 +37,26 @@ class LayerSourceVerifyInheritanceSaveLoad(TestCase):
 
 
 class LILSUpdateTestCase(TransactionTestCase):
+    """Test Layer Source update."""
+
     def setUp(self):
-        # create release
-        bbv = BitbakeVersion.objects.create(name="master", giturl="git://git.openembedded.org/bitbake")
-        release = Release.objects.create(name="default-release", bitbake_version = bbv, branch_name = "master")
+        """Create release."""
+        bbv = BitbakeVersion.objects.create(\
+                  name="master", giturl="git://git.openembedded.org/bitbake")
+        Release.objects.create(name="default-release", bitbake_version=bbv,
+                               branch_name="master")
 
     def test_update(self):
-        layer_index_url = os.getenv("TTS_LAYER_INDEX")
-        if layer_index_url == None:
-            layer_index_url = "http://layers.openembedded.org/"
-
-        lils = LayerSource.objects.create(name = "b1", sourcetype = LayerSource.TYPE_LAYERINDEX, apiurl = layer_index_url + "layerindex/api/")
-        lils.update()
-
-        # run asserts
-        self.assertTrue(lils.branch_set.all().count() > 0, "update() needs to fetch some branches")
-
+        """Check if LayerSource.update can fetch branches."""
+        url = os.getenv("TTS_LAYER_INDEX",
+                        default="http://layers.openembedded.org/")
+
+        lsobj = LayerSource.objects.create(\
+                    name="b1", sourcetype=LayerSource.TYPE_LAYERINDEX,
+                    apiurl=url + "layerindex/api/")
+        lsobj.update()
+        self.assertTrue(lsobj.branch_set.all().count() > 0,
+                        "no branches fetched")
 
 
 # tests to verify layer_version priority selection
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 05/11] toaster: reformat LayerVersionEquivalenceTestCase
  2015-08-06  7:27 [review request] [PATCH 00/11] ed/toaster/fix-orm-tests Ed Bartosh
                   ` (3 preceding siblings ...)
  2015-08-06  7:27 ` [PATCH 04/11] toaster: rewrite LILSUpdateTestCase Ed Bartosh
@ 2015-08-06  7:27 ` Ed Bartosh
  2015-08-06  7:27 ` [PATCH 06/11] toaster: reuse common code Ed Bartosh
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Ed Bartosh @ 2015-08-06  7:27 UTC (permalink / raw)
  To: toaster

Reformatted to increase readability and satisfy pylint.
Added docstings.
Shortened variable names.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
---
 bitbake/lib/toaster/orm/tests.py | 124 +++++++++++++++++++++++----------------
 1 file changed, 74 insertions(+), 50 deletions(-)

diff --git a/bitbake/lib/toaster/orm/tests.py b/bitbake/lib/toaster/orm/tests.py
index 3384f01..75783ce 100644
--- a/bitbake/lib/toaster/orm/tests.py
+++ b/bitbake/lib/toaster/orm/tests.py
@@ -59,75 +59,99 @@ class LILSUpdateTestCase(TransactionTestCase):
                         "no branches fetched")
 
 
-# tests to verify layer_version priority selection
 class LayerVersionEquivalenceTestCase(TestCase):
-    def setUp(self):
-        # create layer sources
-        ls = LayerSource.objects.create(name = "dummy-layersource", sourcetype = LayerSource.TYPE_LOCAL)
+    """Verify Layer_Version priority selection."""
 
-        # create bitbake version
-        bbv = BitbakeVersion.objects.create(name="master", giturl="git://git.openembedded.org/bitbake")
+    def setUp(self):
+        """Create required objects."""
+        # create layer source
+        lsrc = LayerSource.objects.create(name="dummy-layersource",
+                                          sourcetype=LayerSource.TYPE_LOCAL)
         # create release
-        release = Release.objects.create(name="default-release", bitbake_version = bbv, branch_name = "master")
+        bbv = BitbakeVersion.objects.create(\
+                  name="master", giturl="git://git.openembedded.org/bitbake")
+        self.release = Release.objects.create(name="default-release",
+                                              bitbake_version=bbv,
+                                              branch_name="master")
         # attach layer source to release
-        ReleaseLayerSourcePriority.objects.create(release = release, layer_source = ls, priority = 1)
+        ReleaseLayerSourcePriority.objects.create(\
+            release=self.release, layer_source=lsrc, priority=1)
 
-
-        # create layer attach
-        self.layer = Layer.objects.create(name="meta-testlayer", layer_source = ls)
-        # create branch
-        self.branch = Branch.objects.create(name="master", layer_source = ls)
-
-        # set a layer version for the layer on the specified branch
-        self.layerversion = Layer_Version.objects.create(layer = self.layer, layer_source = ls, up_branch = self.branch)
+        # create a layer version for the layer on the specified branch
+        self.layer = Layer.objects.create(name="meta-testlayer",
+                                          layer_source=lsrc)
+        self.branch = Branch.objects.create(name="master", layer_source=lsrc)
+        self.lver = Layer_Version.objects.create(\
+            layer=self.layer, layer_source=lsrc, up_branch=self.branch)
 
         # create spoof layer that should not appear in the search results
-        Layer_Version.objects.create(layer = Layer.objects.create(name="meta-notvalid", layer_source = ls), layer_source = ls, up_branch = self.branch)
+        layer = Layer.objects.create(name="meta-notvalid", layer_source=lsrc)
+        Layer_Version.objects.create(layer=layer, layer_source=lsrc,
+                                     up_branch=self.branch)
 
-
-        # create a project ...
-        self.project = Project.objects.create_project(name="test-project", release = release)
-        # ... and set it up with a single layer version
-        ProjectLayer.objects.create(project=  self.project, layercommit = self.layerversion)
+        # create project and project layer
+        self.project = Project.objects.create_project(name="test-project",
+                                                      release=self.release)
+        ProjectLayer.objects.create(project=self.project,
+                                    layercommit=self.lver)
 
     def test_single_layersource(self):
-        # when we have a single layer version, get_equivalents_wpriority() should return a list with just this layer_version
-        equivalent_list = self.layerversion.get_equivalents_wpriority(self.project)
-        self.assertTrue(len(equivalent_list) == 1)
-        self.assertTrue(equivalent_list[0] == self.layerversion)
+        """
+        When we have a single layer version,
+        get_equivalents_wpriority() should return a list with
+        just this layer_version.
+        """
+        equivqs = self.lver.get_equivalents_wpriority(self.project)
+        self.assertEqual(list(equivqs), [self.lver])
 
     def test_dual_layersource(self):
-        # if we have two layers with the same name, from different layer sources, we expect both layers in, in increasing priority of the layer source
-        ls2 = LayerSource.objects.create(name = "dummy-layersource2", sourcetype = LayerSource.TYPE_LOCAL, apiurl="test")
+        """
+        If we have two layers with the same name, from different layer sources,
+        we expect both layers in, in increasing priority of the layer source.
+        """
+        lsrc2 = LayerSource.objects.create(\
+                    name="dummy-layersource2",
+                    sourcetype=LayerSource.TYPE_LOCAL,
+                    apiurl="test")
 
         # assign a lower priority for the second layer source
-        Release.objects.get(name="default-release").releaselayersourcepriority_set.create(layer_source = ls2, priority = 2)
+        self.release.releaselayersourcepriority_set.create(layer_source=lsrc2,
+                                                           priority=2)
 
-        # create a new layer_version for a layer with the same name coming from the second layer source
-        self.layer2 = Layer.objects.create(name="meta-testlayer", layer_source = ls2)
-        self.layerversion2 = Layer_Version.objects.create(layer = self.layer2, layer_source = ls2, up_branch = self.branch)
+        # create a new layer_version for a layer with the same name
+        # coming from the second layer source
+        layer2 = Layer.objects.create(name="meta-testlayer",
+                                      layer_source=lsrc2)
+        lver2 = Layer_Version.objects.create(layer=layer2, layer_source=lsrc2,
+                                             up_branch=self.branch)
 
         # expect two layer versions, in the priority order
-        equivalent_list = self.layerversion.get_equivalents_wpriority(self.project)
-        self.assertTrue(len(equivalent_list) == 2)
-        self.assertTrue(equivalent_list[0] == self.layerversion2)
-        self.assertTrue(equivalent_list[1] == self.layerversion)
+        equivqs = self.lver.get_equivalents_wpriority(self.project)
+        self.assertEqual(list(equivqs), [lver2, self.lver])
 
     def test_build_layerversion(self):
-        # any layer version coming from the build should show up before any layer version coming from upstream
-        build = Build.objects.create(project = self.project, started_on = timezone.now(), completed_on = timezone.now())
-        self.layerversion_build = Layer_Version.objects.create(layer = self.layer, build = build, commit = "deadbeef")
-
-        # a build layerversion must be in the equivalence list for the original layerversion
-        equivalent_list = self.layerversion.get_equivalents_wpriority(self.project)
-        self.assertTrue(len(equivalent_list) == 2)
-        self.assertTrue(equivalent_list[0] == self.layerversion)
-        self.assertTrue(equivalent_list[1] == self.layerversion_build)
-
-        # getting the build layerversion equivalent list must return the same list as the original layer
-        build_equivalent_list = self.layerversion_build.get_equivalents_wpriority(self.project)
-
-        self.assertEqual(list(equivalent_list), list(build_equivalent_list))
+        """
+        Any layer version coming from the build should show up
+        before any layer version coming from upstream
+        """
+        build = Build.objects.create(project=self.project,
+                                     started_on=timezone.now(),
+                                     completed_on=timezone.now())
+        lvb = Layer_Version.objects.create(layer=self.layer, build=build,
+                                           commit="deadbeef")
+
+        # a build layerversion must be in the equivalence
+        # list for the original layerversion
+        equivqs = self.lver.get_equivalents_wpriority(self.project)
+        self.assertTrue(len(equivqs) == 2)
+        self.assertTrue(equivqs[0] == self.lver)
+        self.assertTrue(equivqs[1] == lvb)
+
+        # getting the build layerversion equivalent list must
+        # return the same list as the original layer
+        bequivqs = lvb.get_equivalents_wpriority(self.project)
+
+        self.assertEqual(list(equivqs), list(bequivqs))
 
 class ProjectLVSelectionTestCase(TestCase):
     def setUp(self):
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 06/11] toaster: reuse common code
  2015-08-06  7:27 [review request] [PATCH 00/11] ed/toaster/fix-orm-tests Ed Bartosh
                   ` (4 preceding siblings ...)
  2015-08-06  7:27 ` [PATCH 05/11] toaster: reformat LayerVersionEquivalenceTestCase Ed Bartosh
@ 2015-08-06  7:27 ` Ed Bartosh
  2015-08-06  7:27 ` [PATCH 07/11] toaster: remove duplicated code Ed Bartosh
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Ed Bartosh @ 2015-08-06  7:27 UTC (permalink / raw)
  To: toaster

Moved setup code of LayerVersion tests to a function
and call it from setUp methods of 2 classes.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
---
 bitbake/lib/toaster/orm/tests.py | 90 ++++++++++++++++------------------------
 1 file changed, 36 insertions(+), 54 deletions(-)

diff --git a/bitbake/lib/toaster/orm/tests.py b/bitbake/lib/toaster/orm/tests.py
index 75783ce..168bafa 100644
--- a/bitbake/lib/toaster/orm/tests.py
+++ b/bitbake/lib/toaster/orm/tests.py
@@ -59,42 +59,45 @@ class LILSUpdateTestCase(TransactionTestCase):
                         "no branches fetched")
 
 
+def setup_lv_tests(self):
+    """Create required objects."""
+    # create layer source
+    self.lsrc = LayerSource.objects.create(name="dummy-layersource",
+                                           sourcetype=LayerSource.TYPE_LOCAL)
+    # create release
+    bbv = BitbakeVersion.objects.create(\
+              name="master", giturl="git://git.openembedded.org/bitbake")
+    self.release = Release.objects.create(name="default-release",
+                                          bitbake_version=bbv,
+                                          branch_name="master")
+    # attach layer source to release
+    ReleaseLayerSourcePriority.objects.create(\
+        release=self.release, layer_source=self.lsrc, priority=1)
+
+    # create a layer version for the layer on the specified branch
+    self.layer = Layer.objects.create(name="meta-testlayer",
+                                      layer_source=self.lsrc)
+    self.branch = Branch.objects.create(name="master", layer_source=self.lsrc)
+    self.lver = Layer_Version.objects.create(\
+        layer=self.layer, layer_source=self.lsrc, up_branch=self.branch)
+
+    # create project and project layer
+    self.project = Project.objects.create_project(name="test-project",
+                                                  release=self.release)
+    ProjectLayer.objects.create(project=self.project,
+                                layercommit=self.lver)
+
 class LayerVersionEquivalenceTestCase(TestCase):
     """Verify Layer_Version priority selection."""
 
     def setUp(self):
-        """Create required objects."""
-        # create layer source
-        lsrc = LayerSource.objects.create(name="dummy-layersource",
-                                          sourcetype=LayerSource.TYPE_LOCAL)
-        # create release
-        bbv = BitbakeVersion.objects.create(\
-                  name="master", giturl="git://git.openembedded.org/bitbake")
-        self.release = Release.objects.create(name="default-release",
-                                              bitbake_version=bbv,
-                                              branch_name="master")
-        # attach layer source to release
-        ReleaseLayerSourcePriority.objects.create(\
-            release=self.release, layer_source=lsrc, priority=1)
-
-        # create a layer version for the layer on the specified branch
-        self.layer = Layer.objects.create(name="meta-testlayer",
-                                          layer_source=lsrc)
-        self.branch = Branch.objects.create(name="master", layer_source=lsrc)
-        self.lver = Layer_Version.objects.create(\
-            layer=self.layer, layer_source=lsrc, up_branch=self.branch)
-
+        setup_lv_tests(self)
         # create spoof layer that should not appear in the search results
-        layer = Layer.objects.create(name="meta-notvalid", layer_source=lsrc)
-        Layer_Version.objects.create(layer=layer, layer_source=lsrc,
+        layer = Layer.objects.create(name="meta-notvalid",
+                                     layer_source=self.lsrc)
+        Layer_Version.objects.create(layer=layer, layer_source=self.lsrc,
                                      up_branch=self.branch)
 
-        # create project and project layer
-        self.project = Project.objects.create_project(name="test-project",
-                                                      release=self.release)
-        ProjectLayer.objects.create(project=self.project,
-                                    layercommit=self.lver)
-
     def test_single_layersource(self):
         """
         When we have a single layer version,
@@ -154,35 +157,14 @@ class LayerVersionEquivalenceTestCase(TestCase):
         self.assertEqual(list(equivqs), list(bequivqs))
 
 class ProjectLVSelectionTestCase(TestCase):
-    def setUp(self):
-        # create layer sources
-        ls = LayerSource.objects.create(name = "dummy-layersource", sourcetype = LayerSource.TYPE_LOCAL)
 
-        # create bitbake version
-        bbv = BitbakeVersion.objects.create(name="master", giturl="git://git.openembedded.org/bitbake")
-        # create release
-        release = Release.objects.create(name="default-release", bitbake_version = bbv, branch_name="master")
-        # attach layer source to release
-        ReleaseLayerSourcePriority.objects.create(release = release, layer_source = ls, priority = 1)
-
-        # create layer attach
-        self.layer = Layer.objects.create(name="meta-testlayer", layer_source = ls)
-        # create branch
-        self.branch = Branch.objects.create(name="master", layer_source = ls)
-
-        # set a layer version for the layer on the specified branch
-        self.layerversion = Layer_Version.objects.create(layer = self.layer, layer_source = ls, up_branch = self.branch)
-
-
-        # create a project ...
-        self.project = Project.objects.create_project(name="test-project", release = release)
-        # ... and set it up with a single layer version
-        ProjectLayer.objects.create(project=  self.project, layercommit = self.layerversion)
+    def setUp(self):
+        setup_lv_tests(self)
 
     def test_single_layersource(self):
         compatible_layerversions = self.project.compatible_layerversions()
         self.assertTrue(len(compatible_layerversions) == 1)
-        self.assertTrue(compatible_layerversions[0] == self.layerversion)
+        self.assertTrue(compatible_layerversions[0] == self.lver)
 
 
     def test_dual_layersource(self):
@@ -200,4 +182,4 @@ class ProjectLVSelectionTestCase(TestCase):
         equivalent_list = self.project.compatible_layerversions()
         self.assertTrue(len(equivalent_list) == 2)
         self.assertTrue(equivalent_list[0] == self.layerversion2)
-        self.assertTrue(equivalent_list[1] == self.layerversion)
+        self.assertTrue(equivalent_list[1] == self.lver)
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 07/11] toaster: remove duplicated code
  2015-08-06  7:27 [review request] [PATCH 00/11] ed/toaster/fix-orm-tests Ed Bartosh
                   ` (5 preceding siblings ...)
  2015-08-06  7:27 ` [PATCH 06/11] toaster: reuse common code Ed Bartosh
@ 2015-08-06  7:27 ` Ed Bartosh
  2015-08-06  7:27 ` [PATCH 08/11] toaster: simplify testcase code Ed Bartosh
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Ed Bartosh @ 2015-08-06  7:27 UTC (permalink / raw)
  To: toaster

Removed test_dual_layersource method from ProjectLVSelectionTestCase
as identical method presents in LayerVersionEquivalenceTestCase.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
---
 bitbake/lib/toaster/orm/tests.py | 17 -----------------
 1 file changed, 17 deletions(-)

diff --git a/bitbake/lib/toaster/orm/tests.py b/bitbake/lib/toaster/orm/tests.py
index 168bafa..6837038 100644
--- a/bitbake/lib/toaster/orm/tests.py
+++ b/bitbake/lib/toaster/orm/tests.py
@@ -166,20 +166,3 @@ class ProjectLVSelectionTestCase(TestCase):
         self.assertTrue(len(compatible_layerversions) == 1)
         self.assertTrue(compatible_layerversions[0] == self.lver)
 
-
-    def test_dual_layersource(self):
-         # if we have two layers with the same name, from different layer sources, we expect both layers in, in increasing priority of the layer source
-        ls2 = LayerSource.objects.create(name = "dummy-layersource2", sourcetype = LayerSource.TYPE_LOCAL, apiurl="testing")
-
-        # assign a lower priority for the second layer source
-        Release.objects.get(name="default-release").releaselayersourcepriority_set.create(layer_source = ls2, priority = 2)
-
-        # create a new layer_version for a layer with the same name coming from the second layer source
-        self.layer2 = Layer.objects.create(name="meta-testlayer", layer_source = ls2)
-        self.layerversion2 = Layer_Version.objects.create(layer = self.layer2, layer_source = ls2, up_branch = self.branch)
-
-         # expect two layer versions, in the priority order
-        equivalent_list = self.project.compatible_layerversions()
-        self.assertTrue(len(equivalent_list) == 2)
-        self.assertTrue(equivalent_list[0] == self.layerversion2)
-        self.assertTrue(equivalent_list[1] == self.lver)
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 08/11] toaster: simplify testcase code
  2015-08-06  7:27 [review request] [PATCH 00/11] ed/toaster/fix-orm-tests Ed Bartosh
                   ` (6 preceding siblings ...)
  2015-08-06  7:27 ` [PATCH 07/11] toaster: remove duplicated code Ed Bartosh
@ 2015-08-06  7:27 ` Ed Bartosh
  2015-08-06  7:27 ` [PATCH 09/11] toaster: add header to orm/test.py Ed Bartosh
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Ed Bartosh @ 2015-08-06  7:27 UTC (permalink / raw)
  To: toaster

Replaced 2 asserts with one in test_single_layersource method
of ProjectLVSelectionTestCase.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
---
 bitbake/lib/toaster/orm/tests.py | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/bitbake/lib/toaster/orm/tests.py b/bitbake/lib/toaster/orm/tests.py
index 6837038..a57a62c 100644
--- a/bitbake/lib/toaster/orm/tests.py
+++ b/bitbake/lib/toaster/orm/tests.py
@@ -162,7 +162,6 @@ class ProjectLVSelectionTestCase(TestCase):
         setup_lv_tests(self)
 
     def test_single_layersource(self):
-        compatible_layerversions = self.project.compatible_layerversions()
-        self.assertTrue(len(compatible_layerversions) == 1)
-        self.assertTrue(compatible_layerversions[0] == self.lver)
+        compat_lv = self.project.compatible_layerversions()
+        self.assertEqual(list(compat_lv), [self.lver])
 
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 09/11] toaster: add header to orm/test.py
  2015-08-06  7:27 [review request] [PATCH 00/11] ed/toaster/fix-orm-tests Ed Bartosh
                   ` (7 preceding siblings ...)
  2015-08-06  7:27 ` [PATCH 08/11] toaster: simplify testcase code Ed Bartosh
@ 2015-08-06  7:27 ` Ed Bartosh
  2015-08-06  7:27 ` [PATCH 10/11] toaster: remove ProjectLVSelectionTestCase Ed Bartosh
  2015-08-06  7:27 ` [PATCH 11/11] toaster: move code from setup_lv_tests to setUp Ed Bartosh
  10 siblings, 0 replies; 13+ messages in thread
From: Ed Bartosh @ 2015-08-06  7:27 UTC (permalink / raw)
  To: toaster

Added header and module docstring.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
---
 bitbake/lib/toaster/orm/tests.py | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/bitbake/lib/toaster/orm/tests.py b/bitbake/lib/toaster/orm/tests.py
index a57a62c..99f4fa0 100644
--- a/bitbake/lib/toaster/orm/tests.py
+++ b/bitbake/lib/toaster/orm/tests.py
@@ -1,3 +1,26 @@
+#! /usr/bin/env python
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+#
+# BitBake Toaster Implementation
+#
+# Copyright (C) 2013-2015 Intel Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+"""Test cases for Toaster ORM."""
+
 from django.test import TestCase, TransactionTestCase
 from orm.models import LocalLayerSource, LayerIndexLayerSource, ImportedLayerSource, LayerSource
 from orm.models import Branch
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 10/11] toaster: remove ProjectLVSelectionTestCase
  2015-08-06  7:27 [review request] [PATCH 00/11] ed/toaster/fix-orm-tests Ed Bartosh
                   ` (8 preceding siblings ...)
  2015-08-06  7:27 ` [PATCH 09/11] toaster: add header to orm/test.py Ed Bartosh
@ 2015-08-06  7:27 ` Ed Bartosh
  2015-08-06  7:27 ` [PATCH 11/11] toaster: move code from setup_lv_tests to setUp Ed Bartosh
  10 siblings, 0 replies; 13+ messages in thread
From: Ed Bartosh @ 2015-08-06  7:27 UTC (permalink / raw)
  To: toaster

Moved code from ProjectLVSelectionTestCase.test_single_layersource to
LayerVersionEquivalenceTestCase.test_compatible_layerversions.

Removed ProjectLVSelectionTestCase.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
---
 bitbake/lib/toaster/orm/tests.py | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/bitbake/lib/toaster/orm/tests.py b/bitbake/lib/toaster/orm/tests.py
index 99f4fa0..5246909 100644
--- a/bitbake/lib/toaster/orm/tests.py
+++ b/bitbake/lib/toaster/orm/tests.py
@@ -118,8 +118,9 @@ class LayerVersionEquivalenceTestCase(TestCase):
         # create spoof layer that should not appear in the search results
         layer = Layer.objects.create(name="meta-notvalid",
                                      layer_source=self.lsrc)
-        Layer_Version.objects.create(layer=layer, layer_source=self.lsrc,
-                                     up_branch=self.branch)
+        self.lver2 = Layer_Version.objects.create(layer=layer,
+                                                  layer_source=self.lsrc,
+                                                  up_branch=self.branch)
 
     def test_single_layersource(self):
         """
@@ -179,12 +180,11 @@ class LayerVersionEquivalenceTestCase(TestCase):
 
         self.assertEqual(list(equivqs), list(bequivqs))
 
-class ProjectLVSelectionTestCase(TestCase):
-
-    def setUp(self):
-        setup_lv_tests(self)
-
-    def test_single_layersource(self):
+    def test_compatible_layerversions(self):
+        """
+        When we have a 2 layer versions, compatible_layerversions()
+        should return a queryset with both.
+        """
         compat_lv = self.project.compatible_layerversions()
-        self.assertEqual(list(compat_lv), [self.lver])
+        self.assertEqual(list(compat_lv), [self.lver, self.lver2])
 
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 11/11] toaster: move code from setup_lv_tests to setUp
  2015-08-06  7:27 [review request] [PATCH 00/11] ed/toaster/fix-orm-tests Ed Bartosh
                   ` (9 preceding siblings ...)
  2015-08-06  7:27 ` [PATCH 10/11] toaster: remove ProjectLVSelectionTestCase Ed Bartosh
@ 2015-08-06  7:27 ` Ed Bartosh
  2015-08-10 14:53   ` Michael Wood
  10 siblings, 1 reply; 13+ messages in thread
From: Ed Bartosh @ 2015-08-06  7:27 UTC (permalink / raw)
  To: toaster

As ProjectLVSelectionTestCase was removed there is no point
to keep this function. Moved code back to setUp method.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
---
 bitbake/lib/toaster/orm/tests.py | 57 +++++++++++++++++++---------------------
 1 file changed, 27 insertions(+), 30 deletions(-)

diff --git a/bitbake/lib/toaster/orm/tests.py b/bitbake/lib/toaster/orm/tests.py
index 5246909..783aea8 100644
--- a/bitbake/lib/toaster/orm/tests.py
+++ b/bitbake/lib/toaster/orm/tests.py
@@ -81,40 +81,37 @@ class LILSUpdateTestCase(TransactionTestCase):
         self.assertTrue(lsobj.branch_set.all().count() > 0,
                         "no branches fetched")
 
-
-def setup_lv_tests(self):
-    """Create required objects."""
-    # create layer source
-    self.lsrc = LayerSource.objects.create(name="dummy-layersource",
-                                           sourcetype=LayerSource.TYPE_LOCAL)
-    # create release
-    bbv = BitbakeVersion.objects.create(\
-              name="master", giturl="git://git.openembedded.org/bitbake")
-    self.release = Release.objects.create(name="default-release",
-                                          bitbake_version=bbv,
-                                          branch_name="master")
-    # attach layer source to release
-    ReleaseLayerSourcePriority.objects.create(\
-        release=self.release, layer_source=self.lsrc, priority=1)
-
-    # create a layer version for the layer on the specified branch
-    self.layer = Layer.objects.create(name="meta-testlayer",
-                                      layer_source=self.lsrc)
-    self.branch = Branch.objects.create(name="master", layer_source=self.lsrc)
-    self.lver = Layer_Version.objects.create(\
-        layer=self.layer, layer_source=self.lsrc, up_branch=self.branch)
-
-    # create project and project layer
-    self.project = Project.objects.create_project(name="test-project",
-                                                  release=self.release)
-    ProjectLayer.objects.create(project=self.project,
-                                layercommit=self.lver)
-
 class LayerVersionEquivalenceTestCase(TestCase):
     """Verify Layer_Version priority selection."""
 
     def setUp(self):
-        setup_lv_tests(self)
+        """Create required objects."""
+        # create layer source
+        self.lsrc = LayerSource.objects.create(name="dummy-layersource",
+                                               sourcetype=LayerSource.TYPE_LOCAL)
+        # create release
+        bbv = BitbakeVersion.objects.create(\
+                  name="master", giturl="git://git.openembedded.org/bitbake")
+        self.release = Release.objects.create(name="default-release",
+                                              bitbake_version=bbv,
+                                              branch_name="master")
+        # attach layer source to release
+        ReleaseLayerSourcePriority.objects.create(\
+            release=self.release, layer_source=self.lsrc, priority=1)
+
+        # create a layer version for the layer on the specified branch
+        self.layer = Layer.objects.create(name="meta-testlayer",
+                                          layer_source=self.lsrc)
+        self.branch = Branch.objects.create(name="master", layer_source=self.lsrc)
+        self.lver = Layer_Version.objects.create(\
+            layer=self.layer, layer_source=self.lsrc, up_branch=self.branch)
+
+        # create project and project layer
+        self.project = Project.objects.create_project(name="test-project",
+                                                      release=self.release)
+        ProjectLayer.objects.create(project=self.project,
+                                    layercommit=self.lver)
+
         # create spoof layer that should not appear in the search results
         layer = Layer.objects.create(name="meta-notvalid",
                                      layer_source=self.lsrc)
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH 11/11] toaster: move code from setup_lv_tests to setUp
  2015-08-06  7:27 ` [PATCH 11/11] toaster: move code from setup_lv_tests to setUp Ed Bartosh
@ 2015-08-10 14:53   ` Michael Wood
  0 siblings, 0 replies; 13+ messages in thread
From: Michael Wood @ 2015-08-10 14:53 UTC (permalink / raw)
  To: toaster

Thanks Submitted upstream to bitbake

On 06/08/15 08:27, Ed Bartosh wrote:
> As ProjectLVSelectionTestCase was removed there is no point
> to keep this function. Moved code back to setUp method.
>
> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
> ---
>   bitbake/lib/toaster/orm/tests.py | 57 +++++++++++++++++++---------------------
>   1 file changed, 27 insertions(+), 30 deletions(-)
>
> diff --git a/bitbake/lib/toaster/orm/tests.py b/bitbake/lib/toaster/orm/tests.py
> index 5246909..783aea8 100644
> --- a/bitbake/lib/toaster/orm/tests.py
> +++ b/bitbake/lib/toaster/orm/tests.py
> @@ -81,40 +81,37 @@ class LILSUpdateTestCase(TransactionTestCase):
>           self.assertTrue(lsobj.branch_set.all().count() > 0,
>                           "no branches fetched")
>   
> -
> -def setup_lv_tests(self):
> -    """Create required objects."""
> -    # create layer source
> -    self.lsrc = LayerSource.objects.create(name="dummy-layersource",
> -                                           sourcetype=LayerSource.TYPE_LOCAL)
> -    # create release
> -    bbv = BitbakeVersion.objects.create(\
> -              name="master", giturl="git://git.openembedded.org/bitbake")
> -    self.release = Release.objects.create(name="default-release",
> -                                          bitbake_version=bbv,
> -                                          branch_name="master")
> -    # attach layer source to release
> -    ReleaseLayerSourcePriority.objects.create(\
> -        release=self.release, layer_source=self.lsrc, priority=1)
> -
> -    # create a layer version for the layer on the specified branch
> -    self.layer = Layer.objects.create(name="meta-testlayer",
> -                                      layer_source=self.lsrc)
> -    self.branch = Branch.objects.create(name="master", layer_source=self.lsrc)
> -    self.lver = Layer_Version.objects.create(\
> -        layer=self.layer, layer_source=self.lsrc, up_branch=self.branch)
> -
> -    # create project and project layer
> -    self.project = Project.objects.create_project(name="test-project",
> -                                                  release=self.release)
> -    ProjectLayer.objects.create(project=self.project,
> -                                layercommit=self.lver)
> -
>   class LayerVersionEquivalenceTestCase(TestCase):
>       """Verify Layer_Version priority selection."""
>   
>       def setUp(self):
> -        setup_lv_tests(self)
> +        """Create required objects."""
> +        # create layer source
> +        self.lsrc = LayerSource.objects.create(name="dummy-layersource",
> +                                               sourcetype=LayerSource.TYPE_LOCAL)
> +        # create release
> +        bbv = BitbakeVersion.objects.create(\
> +                  name="master", giturl="git://git.openembedded.org/bitbake")
> +        self.release = Release.objects.create(name="default-release",
> +                                              bitbake_version=bbv,
> +                                              branch_name="master")
> +        # attach layer source to release
> +        ReleaseLayerSourcePriority.objects.create(\
> +            release=self.release, layer_source=self.lsrc, priority=1)
> +
> +        # create a layer version for the layer on the specified branch
> +        self.layer = Layer.objects.create(name="meta-testlayer",
> +                                          layer_source=self.lsrc)
> +        self.branch = Branch.objects.create(name="master", layer_source=self.lsrc)
> +        self.lver = Layer_Version.objects.create(\
> +            layer=self.layer, layer_source=self.lsrc, up_branch=self.branch)
> +
> +        # create project and project layer
> +        self.project = Project.objects.create_project(name="test-project",
> +                                                      release=self.release)
> +        ProjectLayer.objects.create(project=self.project,
> +                                    layercommit=self.lver)
> +
>           # create spoof layer that should not appear in the search results
>           layer = Layer.objects.create(name="meta-notvalid",
>                                        layer_source=self.lsrc)



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2015-08-10 14:53 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-06  7:27 [review request] [PATCH 00/11] ed/toaster/fix-orm-tests Ed Bartosh
2015-08-06  7:27 ` [PATCH 01/11] toaster: remove prints from the test code Ed Bartosh
2015-08-06  7:27 ` [PATCH 02/11] toaster: fix test_build_layerversion test case Ed Bartosh
2015-08-06  7:27 ` [PATCH 03/11] toaster: rewrite test for LayerSource model Ed Bartosh
2015-08-06  7:27 ` [PATCH 04/11] toaster: rewrite LILSUpdateTestCase Ed Bartosh
2015-08-06  7:27 ` [PATCH 05/11] toaster: reformat LayerVersionEquivalenceTestCase Ed Bartosh
2015-08-06  7:27 ` [PATCH 06/11] toaster: reuse common code Ed Bartosh
2015-08-06  7:27 ` [PATCH 07/11] toaster: remove duplicated code Ed Bartosh
2015-08-06  7:27 ` [PATCH 08/11] toaster: simplify testcase code Ed Bartosh
2015-08-06  7:27 ` [PATCH 09/11] toaster: add header to orm/test.py Ed Bartosh
2015-08-06  7:27 ` [PATCH 10/11] toaster: remove ProjectLVSelectionTestCase Ed Bartosh
2015-08-06  7:27 ` [PATCH 11/11] toaster: move code from setup_lv_tests to setUp Ed Bartosh
2015-08-10 14:53   ` Michael Wood

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.