* [PATCH 00/11] Fixes and clean ups for Toaster ORM unit tests
@ 2015-08-10 11:20 Michael Wood
2015-08-10 11:21 ` [PATCH 01/11] toaster: remove prints from the test code Michael Wood
` (10 more replies)
0 siblings, 11 replies; 12+ messages in thread
From: Michael Wood @ 2015-08-10 11:20 UTC (permalink / raw)
To: bitbake-devel
This patchset contains fixes and code cleanups for Toaster ORM tests.
Some tests were completely rewritten. Reviewed by Michael Wood.
The following changes since commit c75cefe8a382a63f625123c156137782db118f64:
libpam: Fix patch broken during upgrade (2015-08-09 15:15:33 -0700)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib michaelw/toaster/submit/ed/toaster/fix-orm-tests
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=michaelw/toaster/submit/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
lib/toaster/orm/tests.py | 272 +++++++++++++++++++++++++----------------------
1 file changed, 143 insertions(+), 129 deletions(-)
--
2.1.4
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 01/11] toaster: remove prints from the test code
2015-08-10 11:20 [PATCH 00/11] Fixes and clean ups for Toaster ORM unit tests Michael Wood
@ 2015-08-10 11:21 ` Michael Wood
2015-08-10 11:21 ` [PATCH 02/11] toaster: fix test_build_layerversion test case Michael Wood
` (9 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Michael Wood @ 2015-08-10 11:21 UTC (permalink / raw)
To: bitbake-devel
From: Ed Bartosh <ed.bartosh@linux.intel.com>
Removed prints as they make test output harder to understand.
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
---
lib/toaster/orm/tests.py | 4 ----
1 file changed, 4 deletions(-)
diff --git a/lib/toaster/orm/tests.py b/lib/toaster/orm/tests.py
index d4d97ee..df9a2a9 100644
--- a/lib/toaster/orm/tests.py
+++ b/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] 12+ messages in thread
* [PATCH 02/11] toaster: fix test_build_layerversion test case
2015-08-10 11:20 [PATCH 00/11] Fixes and clean ups for Toaster ORM unit tests Michael Wood
2015-08-10 11:21 ` [PATCH 01/11] toaster: remove prints from the test code Michael Wood
@ 2015-08-10 11:21 ` Michael Wood
2015-08-10 11:21 ` [PATCH 03/11] toaster: rewrite test for LayerSource model Michael Wood
` (8 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Michael Wood @ 2015-08-10 11:21 UTC (permalink / raw)
To: bitbake-devel
From: Ed Bartosh <ed.bartosh@linux.intel.com>
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>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
---
lib/toaster/orm/tests.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/toaster/orm/tests.py b/lib/toaster/orm/tests.py
index df9a2a9..8bb5dec 100644
--- a/lib/toaster/orm/tests.py
+++ b/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] 12+ messages in thread
* [PATCH 03/11] toaster: rewrite test for LayerSource model
2015-08-10 11:20 [PATCH 00/11] Fixes and clean ups for Toaster ORM unit tests Michael Wood
2015-08-10 11:21 ` [PATCH 01/11] toaster: remove prints from the test code Michael Wood
2015-08-10 11:21 ` [PATCH 02/11] toaster: fix test_build_layerversion test case Michael Wood
@ 2015-08-10 11:21 ` Michael Wood
2015-08-10 11:21 ` [PATCH 04/11] toaster: rewrite LILSUpdateTestCase Michael Wood
` (7 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Michael Wood @ 2015-08-10 11:21 UTC (permalink / raw)
To: bitbake-devel
From: Ed Bartosh <ed.bartosh@linux.intel.com>
Rewritten LayerSourceVerifyInheritanceSaveLoad class from scratch.
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
---
lib/toaster/orm/tests.py | 30 ++++++++++++++++++------------
1 file changed, 18 insertions(+), 12 deletions(-)
diff --git a/lib/toaster/orm/tests.py b/lib/toaster/orm/tests.py
index 8bb5dec..b0c01db 100644
--- a/lib/toaster/orm/tests.py
+++ b/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] 12+ messages in thread
* [PATCH 04/11] toaster: rewrite LILSUpdateTestCase
2015-08-10 11:20 [PATCH 00/11] Fixes and clean ups for Toaster ORM unit tests Michael Wood
` (2 preceding siblings ...)
2015-08-10 11:21 ` [PATCH 03/11] toaster: rewrite test for LayerSource model Michael Wood
@ 2015-08-10 11:21 ` Michael Wood
2015-08-10 11:21 ` [PATCH 05/11] toaster: reformat LayerVersionEquivalenceTestCase Michael Wood
` (6 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Michael Wood @ 2015-08-10 11:21 UTC (permalink / raw)
To: bitbake-devel
From: Ed Bartosh <ed.bartosh@linux.intel.com>
Reformatted code. Added docstings.
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
---
lib/toaster/orm/tests.py | 30 +++++++++++++++++-------------
1 file changed, 17 insertions(+), 13 deletions(-)
diff --git a/lib/toaster/orm/tests.py b/lib/toaster/orm/tests.py
index b0c01db..3384f01 100644
--- a/lib/toaster/orm/tests.py
+++ b/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] 12+ messages in thread
* [PATCH 05/11] toaster: reformat LayerVersionEquivalenceTestCase
2015-08-10 11:20 [PATCH 00/11] Fixes and clean ups for Toaster ORM unit tests Michael Wood
` (3 preceding siblings ...)
2015-08-10 11:21 ` [PATCH 04/11] toaster: rewrite LILSUpdateTestCase Michael Wood
@ 2015-08-10 11:21 ` Michael Wood
2015-08-10 11:21 ` [PATCH 06/11] toaster: reuse common code Michael Wood
` (5 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Michael Wood @ 2015-08-10 11:21 UTC (permalink / raw)
To: bitbake-devel
From: Ed Bartosh <ed.bartosh@linux.intel.com>
Reformatted to increase readability and satisfy pylint.
Added docstings.
Shortened variable names.
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
---
lib/toaster/orm/tests.py | 124 ++++++++++++++++++++++++++++-------------------
1 file changed, 74 insertions(+), 50 deletions(-)
diff --git a/lib/toaster/orm/tests.py b/lib/toaster/orm/tests.py
index 3384f01..75783ce 100644
--- a/lib/toaster/orm/tests.py
+++ b/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] 12+ messages in thread
* [PATCH 06/11] toaster: reuse common code
2015-08-10 11:20 [PATCH 00/11] Fixes and clean ups for Toaster ORM unit tests Michael Wood
` (4 preceding siblings ...)
2015-08-10 11:21 ` [PATCH 05/11] toaster: reformat LayerVersionEquivalenceTestCase Michael Wood
@ 2015-08-10 11:21 ` Michael Wood
2015-08-10 11:21 ` [PATCH 07/11] toaster: remove duplicated code Michael Wood
` (4 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Michael Wood @ 2015-08-10 11:21 UTC (permalink / raw)
To: bitbake-devel
From: Ed Bartosh <ed.bartosh@linux.intel.com>
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>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
---
lib/toaster/orm/tests.py | 90 +++++++++++++++++++-----------------------------
1 file changed, 36 insertions(+), 54 deletions(-)
diff --git a/lib/toaster/orm/tests.py b/lib/toaster/orm/tests.py
index 75783ce..168bafa 100644
--- a/lib/toaster/orm/tests.py
+++ b/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] 12+ messages in thread
* [PATCH 07/11] toaster: remove duplicated code
2015-08-10 11:20 [PATCH 00/11] Fixes and clean ups for Toaster ORM unit tests Michael Wood
` (5 preceding siblings ...)
2015-08-10 11:21 ` [PATCH 06/11] toaster: reuse common code Michael Wood
@ 2015-08-10 11:21 ` Michael Wood
2015-08-10 11:21 ` [PATCH 08/11] toaster: simplify testcase code Michael Wood
` (3 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Michael Wood @ 2015-08-10 11:21 UTC (permalink / raw)
To: bitbake-devel
From: Ed Bartosh <ed.bartosh@linux.intel.com>
Removed test_dual_layersource method from ProjectLVSelectionTestCase
as identical method presents in LayerVersionEquivalenceTestCase.
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
---
lib/toaster/orm/tests.py | 17 -----------------
1 file changed, 17 deletions(-)
diff --git a/lib/toaster/orm/tests.py b/lib/toaster/orm/tests.py
index 168bafa..6837038 100644
--- a/lib/toaster/orm/tests.py
+++ b/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] 12+ messages in thread
* [PATCH 08/11] toaster: simplify testcase code
2015-08-10 11:20 [PATCH 00/11] Fixes and clean ups for Toaster ORM unit tests Michael Wood
` (6 preceding siblings ...)
2015-08-10 11:21 ` [PATCH 07/11] toaster: remove duplicated code Michael Wood
@ 2015-08-10 11:21 ` Michael Wood
2015-08-10 11:21 ` [PATCH 09/11] toaster: add header to orm/test.py Michael Wood
` (2 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Michael Wood @ 2015-08-10 11:21 UTC (permalink / raw)
To: bitbake-devel
From: Ed Bartosh <ed.bartosh@linux.intel.com>
Replaced 2 asserts with one in test_single_layersource method
of ProjectLVSelectionTestCase.
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
---
lib/toaster/orm/tests.py | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/lib/toaster/orm/tests.py b/lib/toaster/orm/tests.py
index 6837038..a57a62c 100644
--- a/lib/toaster/orm/tests.py
+++ b/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] 12+ messages in thread
* [PATCH 09/11] toaster: add header to orm/test.py
2015-08-10 11:20 [PATCH 00/11] Fixes and clean ups for Toaster ORM unit tests Michael Wood
` (7 preceding siblings ...)
2015-08-10 11:21 ` [PATCH 08/11] toaster: simplify testcase code Michael Wood
@ 2015-08-10 11:21 ` Michael Wood
2015-08-10 11:21 ` [PATCH 10/11] toaster: remove ProjectLVSelectionTestCase Michael Wood
2015-08-10 11:21 ` [PATCH 11/11] toaster: move code from setup_lv_tests to setUp Michael Wood
10 siblings, 0 replies; 12+ messages in thread
From: Michael Wood @ 2015-08-10 11:21 UTC (permalink / raw)
To: bitbake-devel
From: Ed Bartosh <ed.bartosh@linux.intel.com>
Added header and module docstring.
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
---
lib/toaster/orm/tests.py | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/lib/toaster/orm/tests.py b/lib/toaster/orm/tests.py
index a57a62c..99f4fa0 100644
--- a/lib/toaster/orm/tests.py
+++ b/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] 12+ messages in thread
* [PATCH 10/11] toaster: remove ProjectLVSelectionTestCase
2015-08-10 11:20 [PATCH 00/11] Fixes and clean ups for Toaster ORM unit tests Michael Wood
` (8 preceding siblings ...)
2015-08-10 11:21 ` [PATCH 09/11] toaster: add header to orm/test.py Michael Wood
@ 2015-08-10 11:21 ` Michael Wood
2015-08-10 11:21 ` [PATCH 11/11] toaster: move code from setup_lv_tests to setUp Michael Wood
10 siblings, 0 replies; 12+ messages in thread
From: Michael Wood @ 2015-08-10 11:21 UTC (permalink / raw)
To: bitbake-devel
From: Ed Bartosh <ed.bartosh@linux.intel.com>
Moved code from ProjectLVSelectionTestCase.test_single_layersource to
LayerVersionEquivalenceTestCase.test_compatible_layerversions.
Removed ProjectLVSelectionTestCase.
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
---
lib/toaster/orm/tests.py | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/lib/toaster/orm/tests.py b/lib/toaster/orm/tests.py
index 99f4fa0..5246909 100644
--- a/lib/toaster/orm/tests.py
+++ b/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] 12+ messages in thread
* [PATCH 11/11] toaster: move code from setup_lv_tests to setUp
2015-08-10 11:20 [PATCH 00/11] Fixes and clean ups for Toaster ORM unit tests Michael Wood
` (9 preceding siblings ...)
2015-08-10 11:21 ` [PATCH 10/11] toaster: remove ProjectLVSelectionTestCase Michael Wood
@ 2015-08-10 11:21 ` Michael Wood
10 siblings, 0 replies; 12+ messages in thread
From: Michael Wood @ 2015-08-10 11:21 UTC (permalink / raw)
To: bitbake-devel
From: Ed Bartosh <ed.bartosh@linux.intel.com>
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>
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
---
lib/toaster/orm/tests.py | 57 +++++++++++++++++++++++-------------------------
1 file changed, 27 insertions(+), 30 deletions(-)
diff --git a/lib/toaster/orm/tests.py b/lib/toaster/orm/tests.py
index 5246909..783aea8 100644
--- a/lib/toaster/orm/tests.py
+++ b/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] 12+ messages in thread
end of thread, other threads:[~2015-08-10 11:21 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-10 11:20 [PATCH 00/11] Fixes and clean ups for Toaster ORM unit tests Michael Wood
2015-08-10 11:21 ` [PATCH 01/11] toaster: remove prints from the test code Michael Wood
2015-08-10 11:21 ` [PATCH 02/11] toaster: fix test_build_layerversion test case Michael Wood
2015-08-10 11:21 ` [PATCH 03/11] toaster: rewrite test for LayerSource model Michael Wood
2015-08-10 11:21 ` [PATCH 04/11] toaster: rewrite LILSUpdateTestCase Michael Wood
2015-08-10 11:21 ` [PATCH 05/11] toaster: reformat LayerVersionEquivalenceTestCase Michael Wood
2015-08-10 11:21 ` [PATCH 06/11] toaster: reuse common code Michael Wood
2015-08-10 11:21 ` [PATCH 07/11] toaster: remove duplicated code Michael Wood
2015-08-10 11:21 ` [PATCH 08/11] toaster: simplify testcase code Michael Wood
2015-08-10 11:21 ` [PATCH 09/11] toaster: add header to orm/test.py Michael Wood
2015-08-10 11:21 ` [PATCH 10/11] toaster: remove ProjectLVSelectionTestCase Michael Wood
2015-08-10 11:21 ` [PATCH 11/11] toaster: move code from setup_lv_tests to setUp 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.